라즈베리파이3

라즈베리파이에 iptime samba 폴더 마운트 시키기

타카스 류지 2018. 6. 12. 12:53


pi@raspberrypi:~ $ sudo apt-get install smbclient cifs-utils


pi@raspberrypi:~ $ sudo smbclient -L 192.168.0.1 -U 사용자ID -m SMB2

WARNING: The "syslog" option is deprecated

Enter mobile's password: 암호



Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.26]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (cjbox)
        HDD1            Disk   
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.26]

        Server               Comment
        ---------            -------
        CJBOX                cjbox

        Workgroup            Master
        ---------            -------
        WORKGROUP


pi@raspberrypi:~ $ sudo mkdir /media/exHDD
pi@raspberrypi:~ $ chmod 777 /media/exHDD

username <-> user
password <-> pass

마운트 시키기 1 : sudo mount -t cifs -o user=아이디,pass=암호 //192.168.0.1/HDD1 /media/exHDD -o vers=1.0

마운트 시키기 2 : sudo mount -t cifs //192.168.0.1/HDD1 /media/exHDD -o user=아이디,pass=암호,vers=1.0

마운트 시키기 3 : sudo mount -t cifs //CJBOX/HDD1 /media/exHDD -o user=아이디,pass=암호,workgroup=WORKGROUP,ip=192.168.0.1,iocharset=utf8,vers=1.0



■ 자동 마운팅 부분

/etc/fstab 이나 /etc/rc.local 에 등록해도 자동 마운팅이 안됨 -_- 왕 짜증



그래서 자동마운트 스크립트 작성함


간혹 마운트용 디렉토리를 만들었는데 사라지는 경우가 종종 발견됨 ;;;이유는 모르겠음 ;;;


automount.sh



--------------------------------------------------------------------------------------------

#!/bin/sh


# samba configuration

SAMBA_PATH='//192.168.0.1/HDD1' #<--IPTIME 공유기

MOUNT_PATH='/media/exHDD'     # <-- 마운트할 경로

USER="iptime"

PASS="1234"

#Remove [vers=1.0] from option when not connected  <- 연결안될시 vers=1.0 부분 삭제하거나 2.0 으로 변경

OPTION="user=$USER,password=$PASS,vers=1.0"


if mountpoint -q $MOUNT_PATH; then

    #echo "The folder is mounted. Path : $MOUNT_PATH"

else

    #echo "The folder is not mounted."

    

    if [ -d "$MOUNT_PATH" ]; then

        #echo "Directory exists."    

        mount -t cifs $SAMBA_PATH $MOUNT_PATH -o $OPTION

        #echo "Folder mounted. Path : $MOUNT_PATH"

    else

        #디렉토리가 없을시 생성해줌

        #echo "Directory does not exist."

        mkdir $MOUNT_PATH

        #echo "Create Directory."

        chmod 777 $MOUNT_PATH

        #echo "Permission settings."

        mount -t cifs $SAMBA_PATH $MOUNT_PATH -o $OPTION

        #echo "Folder mounted. Path : $MOUNT_PATH"

    fi

fi


exit 0

--------------------------------------------------------------------------------------------


sudo crontab -e

*/1 * * * * /root/sambamount.sh  1분에 한번씩 작동



끝!!



설정값모음 : sudo mount -t cifs -o username=계정이름,password=암호,uid=자신의uid,gid=자신의gid,,file_mode=0777,dir_mode=0777,iocharset=utf8,codepage=cp949 //컴퓨터이름(혹은 주소)/공유이름 /공유할/디렉토리


 하단 내용은 참고로 퍼온 겁니다.






설치

일단 smbclient 가 설치되어 있지 않으면 설치한다.

sudo apt-get install smbclient cifs-utils

사전조사

아래 명령어로 연결할 컴퓨터를 조사해본다. 주소는 접속할 컴퓨터의 주소.

smbclient -L 192.168.0.111 -U%   
Domain=[VASLORNET] OS=[Unix] Server=[Samba 4.1.18]

        Sharename       Type      Comment
        ---------       ----      -------
        music           Disk      System default shared folder
        photo           Disk      System default shared folder
        video           Disk      System default shared folder
        web             Disk      System default shared folder
        IPC$            IPC       IPC Service ()
Domain=[VASLORNET] OS=[Unix] Server=[Samba 4.1.18]

        Server               Comment
        ---------            -------
        BOX
        VASLOR               Sam

        Workgroup            Master
        ---------            -------
        VASLORNET            VASLOR

이와 비슷하게 나온다.

연결

아래 명령어로 마운트 할 수 있다.

sudo mount -t cifs //컴퓨터이름(혹은 주소)/공유이름 /공유할/디렉토리

공유할 디렉토리는 미리 만들어 놔야 한다.

  sudo mkdir /mnt/share 

하지만 몇 가지 문제가 있을 수 있다.

암호

아이디와 암호를 입력해야하는 공유 폴더라면 username 과 password 옵션을 추가해줘라.

    -o username=계정이름,password=암호

코드페이지

서버쪽이 Utf-8이 아니라서 한글이 깨져 나온다면 다음 옵션을 추가한다.

  -o iocharset=utf8,codepage=cp949

권한

폴더는 공유가 되었지만 마운트한 디렉토리는 root권한으로 접근이 가능하다면 다음 옵션을 추가한다.

    -o uid=자신의uid,gid=자신의gid

자신의 uid 와 gid 는 아래의 방법으로 알 수 있다. 아래 결과의 1000 1000 부분이 uid 와 gid 임.

cd ~
ls -n
합계 4
-rwxr-xr-x 1 1000 1000 125 2006-02-11 15:48 smbmount.sh

홈으로 가서 자신이 만든 파일들의 uid,gid를 보는 것이다.

최종

sudo mount -t cifs -o username=계정이름,password=암호,uid=자신의uid,gid=자신의gid,iocharset=utf8,codepage=cp949 //컴퓨터이름(혹은 주소)/공유이름 /공유할/디렉토리



출처 : https://openwiki.kr/tech/mount_cifs