mount.cifs를 사용할 수 없습니다 : mount error (2) : 해당 파일 또는 디렉토리가 없습니다.


17

mount.cifs 명령 은 systemd 가있는 젠투 시스템에서 실행할 수 없습니다.

ae429-1105 etc # mount -t cifs //file.abc.edu.au/user /home/directory/path -o credentials=/etc/user,rw,iocharset=utf8,file_mode=0777,dir_mode=0777
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

마운트 포인트 / home / directory / path 및 신임 파일 / etc / user 의 존재 및 액세스 가능성이 확인되었습니다 . 또한 관련 모듈 및 서비스가 활성화되었습니다.

 ae429-1105 etc # lsmod |egrep 'fuse|cifs'
 fuse                   72589  5 
 cifs                  312131  0

ae429-1105 etc # systemctl -t service -a |grep Samba
nmbd.service                         loaded active   running Samba NetBIOS                     name server
smbd.service                         loaded active   running Samba SMB/CIFS     server
winbindd.service                     loaded inactive dead    Samba Winbind daemon

이 문제는 예, 많은 사용자들에 의해 확인 된 하나의 예를 . 또한 Ubuntu / debian 시스템에서 실행 된 동일한 명령을 성공적으로 마운트 할 수 있습니다.

문제가있는 시스템의 기타 정보 :

ae429-1105 etc # mount.cifs --version
mount.cifs version: 6.1

debian / ubuntu에 설치된 mount.cifs의 버전은 6.0입니다


/home/directory/path젠투 환경에 존재해야합니까? 이것이 명백한 첫 번째 질문이므로 언급하지 않는 것이 이상합니다.
Hauke ​​Laging

예, 마운트 지점 / home / directory / path 의 존재와 접근성을 확인했습니다 .
Chenming Zhang

다른 독자가 정보를 얻기 위해 주석을 읽을 필요가 없도록이 정보를 질문에 추가해야합니다.
Hauke ​​Laging

답변:


8

최신 버전의 Windows에서 공유를 마운트하려는 경우 mount 명령에 vers = 옵션을 제공하여 버전 3.0을 강제 실행해야 할 수 있습니다. 파일 서버 중 하나가 최근에 2012R2로 업그레이드되었으며 그때 마운트가 작동을 멈췄습니다. vers = 3.0으로 설정하면 문제가 해결되었습니다. 대부분의 Samba / CIFS 오류와 마찬가지로 "No such file or directory"메시지는별로 도움이되지 않습니다.

예로서:

# mount -t cifs //win2012r2/someshare -o cred=/home/foo/.cifs_user, vers=3.0 /mnt/tmp

..where .cifs_user 파일에 내 도메인, 사용자 이름 및 비밀번호가 있습니다.

분명히 smbmount는 문제 나 특별한 옵션없이 작동했기 때문에 기본적으로 최신 버전의 SMB 프로토콜을 사용합니다.

아래의 기본 프로토콜 버전은 1.0입니다.

mount.cifs 매뉴얼 페이지에서 :

vers=
           SMB protocol version. Allowed values are:

           ·   1.0 - The classic CIFS/SMBv1 protocol. This is the default.

           ·   2.0 - The SMBv2.002 protocol. This was initially introduced in Windows Vista Service Pack 1, and
               Windows Server 2008. Note that the initial release version of Windows Vista spoke a slightly
               different dialect (2.000) that is not supported.

           ·   2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.

           ·   3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.

"nounix"플래그와 비슷한 문제가 있었는데 v1.0에서는 지원되지 않아야합니다. 가장 최신 버전 인 v2.0으로 변경하면 문제가 해결되었습니다. 또한 파일 권한은 vers = 2.0 (777 대신 755)으로 더 현명합니다
cxrodgers

2
vers = 옵션과 관련된 솔루션에 감사드립니다! 그것은 나에게만 뒤에서 일했다 ... Openes use upgrade를 42.3 버전에서 15.1로 업그레이드 한 후 작동 한 네트워크 드라이브를 마운트하기위한 fstab 항목이 15.1에서 작동을 멈췄습니다. 나는 vers = 1.0 옵션을 사용하고 무엇을 추측합니다 ... 아마 도약 15.1은 원격 디렉토리를 찾을 수없는 최신 버전의 SMB 프로토콜을 사용합니다.
John

Ubuntu 19.04에서 Windows Server 2003에 호스팅 된 공유에 연결하는 것이 옵션 목록에 vers = 1.0을 추가 할 때까지 계속 실패했습니다. 감사!
user8675309

그것은 나를 위해 일했습니다 : 예외 : vers=2.05 년 된 NAS 시스템의 삼바 공유를 마운트하기 위해 버전 2를 명시해야했습니다 ... 3.0 이상으로 오류가 발생했습니다.
Frank Nocke

etc/fstab사용자 : vers=3.0다른 옵션 앞에 똑바로 (또는 2.0 ...) 넣습니다 . 예 :vers=2.0,guest,uid=1000,iocharset…
Frank Nocke

5

nodfs옵션 을 사용할 수 있습니까? 즉, -o옵션 입력의 경우 다음과 같이 입력을 전달하십시오.

-o credentials=/etc/user,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,nodfs

즉 추가 ,nodfs

그것은 나를 위해 일했다.


감사합니다! 다른 모든 제안을 먼저 시도했지만 이전에는 필요하지 않은 fedora30에서이 기능이 필요했습니다.
Jens Timmerman

2

sec매개 변수 를 변경해야 할 수도 있습니다 .이 설정으로 설정에서 작동했습니다.

mount.cifs ... -o sec=ntlm

관련 추출물 man mount.cifs:

sec=보안 모드. 허용되는 값은 다음과 같습니다.

  • none -널 사용자 (이름 없음)로 연결을 시도하십시오.
  • krb5 -Kerberos 버전 5 인증 사용
  • krb5i -Kerberos 인증을 사용하고 패킷 서명을 강제로 활성화
  • ntlm -NTLM 비밀번호 해싱 사용
  • ntlmi -NTLM 암호 해싱 사용 및 강제 패킷 서명
  • ntlmv2 -NTLMv2 비밀번호 해싱 사용
  • ntlmv2i -NTLMv2 암호 해싱 사용 및 강제 패킷 서명
  • ntlmssp -원시 NTLMSSP 메시지에 캡슐화 된 NTLMv2 비밀번호 해싱 사용
  • ntlmsspi -원시 NTLMSSP 메시지에 캡슐화 된 NTLMv2 암호 해싱을 사용하고 강제 패킷 서명

    v3.8 이전의 메인 라인 커널 버전의 기본값은 sec=ntlm입니다. v3.8에서는 기본값이로 변경되었습니다 sec=ntlmssp.

    프로토콜 협상 중에 서버에 서명이 필요한 경우 자동으로 활성화 될 수 있습니다. 에서 활성화 된 경우 패킷 서명이 자동으로 활성화 될 수도 있습니다 /proc/fs/cifs/SecurityFlags.


1

우분투 18.04 에서이 문제가 발생했습니다. 문제는 sec=krb5cifs-utils (mount.cifs를 제공함)와 함께 설치되지 않은 Kerberos 인증 ( 마운트 옵션) 을 수행하기 위해 keyutils 패키지가 필요하다는 것 입니다. 패키지 이름이 젠투에서 같은지 확실하지 않습니다. 솔루션에 대해서는 https://forum.zentyal.org/index.php?topic=18601.0 에 감사합니다 .


1

패키지 keyutils를 설치하십시오 :

sudo apt-get install keyutils

왜 이것이 도움이되는지 확실하지 않습니다. 아마도 다른 사람이 여기에 대답을 할 수 있습니다. 그러나 적어도 그것은 나를 위해 속임수를 사용했습니다 : keyutils를 사용하면 cifs mount가 제대로 작동했습니다.


질문에 언급 된 문제를 해결하는 방법에 대한 정보를 추가하십시오. 이 패키지의 기능은 무엇이며 OP가 제기 한 문제를 어떻게 파악합니까?
Haxiel

좋은 질문. package keyutils가 어떻게 도움이되는지 잘 모르겠습니다. 내 경우에는 적어도 이것이 트릭을 한 것입니다. keyutils를 설치 한 후 cifs mount가 제대로 작동했지만 OP와 마찬가지로 "mount error (2) : 해당 파일이나 디렉토리가 없습니다"라는 오류 메시지가 표시되었습니다.
Klaus


1

오늘 내가 겪은이 문제의 다른 원인을 추가하고 싶었습니다. 유닉스 사용자의 사용자 아이디를 변경하면 smbpasswd를 통해 생성 된 smb 사용자가 더 이상 동일한 삼바 공유를 인증하지 못할 수 있습니다.

따라서 유닉스 사용자 ID를 통해 변경 usermod -u 1000 my_user하면 문제가 발생할 수 있습니다. 나를위한 수정은 나중에 smb 사용자를 삭제하고 다시 추가하는 것이 었습니다.

smbpasswd -x my_user
smbpasswd -a my_user

사실이지만 이것이 원래 질문과 어떤 관련이 있습니까?
RalfFriedl 2014 년

내가 말했듯이 사용자의 사용자 ID를 변경하면 원래 질문과 같은 오류가 나타납니다. 따라서 누군가가 똑같이 하고이 스레드를 찾으면 내 힌트가 유용 할 수 있습니다.
Ryad

1

$이처럼 끝에를 추가하십시오.//winserver/sharename$

mount.cifs -v -o username=myusername,domain=MYCODOMAIN //winserver/sharename$ /mnt/mymountpoint

와! '$'가 무엇을하는지 아십니까? 그것은 나를 위해 그것을 고정 그런데 왜 아무런 단서가 없다
가브리엘 공정

$ 기호는 Windows 공유 컨텍스트의 관리 공유이며, 시스템에 의해 활성화 된 경우 관리 권한이있는 사용자가 모든 경로에 액세스 할 수 있습니다. 예 \\ MY-SERVER \ c $
Phil795

0

CentOS 7 VM에서 mount.cifs를 사용하여 동일한 "mount error (2) : No such file or directory"오류가 발생했습니다. 기본 ntlm 보안 (및 변형)을 사용할 때 오류가 발생하는 이유를 정확히 파악 하지 못했지만 Kerberos 인증을 사용하면 문제가 해결되는 것으로 나타났습니다. 그래서 최종 작업 명령 줄은 다음과 같습니다.

mount.cifs -v -o domain=MYCODOMAIN,sec=krb5 //winserver/sharename /mnt/mymountpoint

"이러한 파일이나 디렉토리 없음"오류를 발생시킨이 명령은 다음과 같습니다.

mount.cifs -v -o username=myusername,domain=MYCODOMAIN //winserver/sharename /mnt/mymountpoint

Kerberos를 사용하기 위해 "krb5-workstation"패키지를 설치하고 구성했습니다.



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.