ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [홈서버] 우분투에서 CIFS(SMB) 마운트
    홈서버 2021. 12. 29. 17:32
    반응형

     

     

    [홈서버구축] 홈네트워크 구성하기 (1)

    [홈서버] 디바이스, 기가바이트 브릭스 GB-BLCE-4105 [홈서버구축] 홈네트워크 구성하기 (1) 보통 가정용 인터넷을 신청하면 설치기사님이 모뎀과 공유기를 갖고 오신다. 통신사마다 다르지만 필자

    malchooni.name

      홈서버 및 사설망 네트워크를 구성하고 디바이스들 간에 공유디스크 필요성이 느껴졌다.  그래서 SMB로 공유디스크를 구성하였고 이를  우분투서버에 마운트 하려고 한다.

     

      첫 단계로 cifs-utils을 설치한다.  필자는 작업 편의를 위해 root 계정으로 진행하였다.

     

    $ apt-get install cifs-utils

     

      만약 apt를 통해 인스톨 시 404 not found 에러가 났다면 'apt-get update'를 실행해보는 것도 하나의 해결 방법이다.

      설치 이후 마운트 할 경로에 디렉터리를 생성한다.  /mnt/ghostdisk에 SMB 공유디스크를 마운트 하겠다.

     

    $ mkdir /mnt/ghostdisk

     

      디렉터리 생성 후 CIFS로 SMB 공유디스크 마운트를 위해 다음 명령어를 입력한다.

     

    $ mount -t cifs -o user=xxxx,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/
    mount error(2): No such file or directory
    Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

     

      마운트 명령어를 입력하였으나 No such file or directory라는 오류가 발생하여 검색을 시작하였다.

     

    우분투 SMB mount error(2): No such file or directory 오류

    우분투에서 cifs 마운트 중 다음과 같은 오류가 발생하였다. $ mount -t cifs -o user=xxxx,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/ mount error(2): No such file or directory Refer to the mount.cif..

    malchooni.name

      다시 옵션 값에 버전 정보를 명령어에 넣은 후 실행하였더니 정상적으로 마운트 되었다.  옵션으로 넣은 user와 password는 SMB 서버의 계정과 패스워드이다.

     

    $ mount -t cifs -o user=xxxx,vers=2.0,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/
    $ df -BG
    udev                     4G    0G        4G   0% /dev
    tmpfs                    1G    1G        1G   1% /run
    /dev/nvme0n1p2         234G   87G      136G  39% /
    tmpfs                    4G    0G        4G   0% /dev/shm
    tmpfs                    1G    0G        1G   0% /run/lock
    tmpfs                    4G    0G        4G   0% /sys/fs/cgroup
    /dev/nvme0n1p1           1G    1G        1G   2% /boot/efi
    //172.30.1.1/hdd1     1864G   31G     1833G   2% /mnt/ghostdisk

     

      그러나 root 계정으로 작업하였더니 다른 계정에서 접근권한 오류가 발생하였다.  마운트 옵션 중에 uid, gid 입력하여 해결할 수 있다.  특정 계정에 'id'라는 명령어로 uid, gid를 확인할 수 있다.

     

    $ id
    uid=1000(xxxx) gid=1000(xxxx) groups=1000(xxxx),.......

     

      다시 마운트를 하기 위해 언마운트 먼저 진행한다.

     

    $ umount -l /mnt/ghostdisk
    $ mount -t cifs -o uid=1000,gid=1000,user=xxxx,vers=2.0,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/

     

      uid, gid를 입력하여 그 계정에게 권한을 주었다.  그러나 필자는 어느 계정이든 접근이 목적이기에 언마운트 후 uid와 gid 옵션을 제거, 'noperm' 이란 옵션을 넣었다.

     

    $ mount -t cifs -o user=xxxx,vers=2.0,noperm,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/

     

      이후 재부팅 시 자동 마운트 가능하게 /etc/fstab 파일을 vi 에디터로 열어 맨 마지막 줄에 다음 내용을 추가하였다.

     

    $ vi /etc/fstab
    //172.30.1.1/hdd1 /mnt/ghostdisk/ cifs user=xxxx,vers=2.0,noperm,password=xxxx 0 0

     

      추가된 내용은 의미는 <file system> <mount point> <type> <options> <dump> <pass> 순이며, 구분자는 스페이스 혹은 탭으로 한다. 

     

      이렇게 SMB 공유디스크를 우분투 서버에 마운트를 완료하였다.  다음은 mount 명령어에서 사용한 -o 옵션에 대한 설명이다.  구글 번역으로 바꾸었기 때문에 해석이 어색할 수 있음을 참고한다.

     

    옵션 설명
    user 혹은 username 연결할 사용자 이름을 지정합니다. 이것이 주어지지 않으면 환경변수 USER가 사용됩니다.
    이전 버전의 mount.cifs도 파일에 사용자 이름을 지정할 수 있었습니다.
    암호를 허용하려면 "user%password" 또는 "workgroup/user" 또는 "workgroup/user%password"
    사용자 이름의 일부로 지정될 작업 그룹. 대체 지원 사용자 이름 형식은 이제 더 이상 사용되지 않으며 더 이상 사용해서는 안 됩니다. 사용자는 다음을 사용해야 합니다.
    개별 "password=" 및 "domain="을 사용하여 해당 값을 지정합니다. 일부 버전의cifs 커널 모듈은 "user="를 이 옵션의 약어로 허용합니다.
    표준 마운트 프로그램을 이것이 수퍼유저가 아닌 마운트라고 생각하도록 혼동하십시오.
    따라서 전체 "username=" 옵션 이름을 사용하는 것이 좋습니다.
    password CIFS 암호를 지정합니다. 이 옵션이 주어지지 않으면 환경 변수PASSWD가 사용됩니다. 비밀번호를 직접 또는 간접적으로 지정하지 않은 경우마운트에 대한 인수, mount.cifs는 게스트 옵션이 지정.

    구분 기호(예: 쉼표 ',')가 포함된 암호는 명령줄에서 올바르게 구문 분석되지 않습니다. 단, 에 정의된 것과 동일한 비밀번호 PASSWD 환경 변수 또는 자격 증명 파일을 통해 암호 프롬프트가 올바르게 읽혀질 것입니다.
    vers SMB 프로토콜 버전. 허용되는 값은 다음과 같습니다.

    · 1.0 - 클래식 CIFS/SMBv1 프로토콜. 이것이 기본값입니다.
    · 2.0 - SMBv2.002 프로토콜. 이것은 Windows Vista에서 처음 도입되었습니다.
       서비스 팩 1 및 Windows Server 2008. 초기 릴리스 버전
       Windows Vista는 지원되지 않는 약간 다른 방언(2.000)을 사용했습니다.
    · 2.1 - Microsoft Windows 7 및 Windows에 도입된 SMBv2.1 프로토콜
       서버 2008R2.
    · 3.0 - Microsoft Windows 8 및 Windows에 도입된 SMBv3.0 프로토콜
       서버 2012.

    이 옵션이 사용된 프로토콜 버전을 제어하지만 모든 기능이 각 버전을 사용할 수 있습니다.
    noperm 클라이언트는 권한 확인을 하지 않습니다. 이렇게 하면 이 마운트의 파일이 다음을 통해 액세스할 수 있습니다.
    로컬 클라이언트 시스템의 다른 사용자. 일반적으로 서버가 다음과 같은 경우에만 필요합니다.
    CIFS Unix Extensions를 지원하지만 클라이언트 및 서버 시스템의 UID/GID는 지원하지 않습니다.
    마운트를 수행하는 사용자가 액세스할 수 있을 만큼 밀접하게 일치하지 않습니다. 
    이 서버 소프트웨어에서 수행하는 대상 시스템의 일반 ACL 검사에는 영향을 미치지 않습니다.

     

      자세한 mount 명령어 확인은 아래 링크를 참고 한다.

     

    Ubuntu Manpage: mount.cifs - mount using the Common Internet File System (CIFS)

    Powered by the Ubuntu Manpage Repository, file bugs in Launchpad © 2019 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.

    manpages.ubuntu.com

     

    반응형

    댓글

Designed by Tistory.