mount.cifs를 사용할 수 없습니다. 마운트 오류(2): 해당 파일 또는 디렉터리가 없습니다.

mount.cifs를 사용할 수 없습니다. 마운트 오류(2): 해당 파일 또는 디렉터리가 없습니다.

주문하다mount.cifs젠투 시스템에서 실행할 수 없다는 것을 발견했습니다체계

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)

마운트 지점의 존재 및 접근성을 확인했습니다. /홈/디렉토리/경로및 자격 증명 파일/etc/사용자. 관련 모듈 및 서비스도 활성화됩니다.

 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입니다.

답변1

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

예를 들어:

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

..내 도메인 이름, 사용자 이름 및 비밀번호는 .cifs_user 파일에 포함되어 있습니다.

user=MyUser
password=MyPassword
domain=MyDomain

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

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

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

vers=arg
       SMB protocol version. Allowed values are:

       · 1.0 - The classic CIFS/SMBv1 protocol.

       · 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.

       · 3.02 or 3.0.2 - The SMBv3.0.2 protocol that was introduced in Microsoft Windows 8.1 and Windows Server 2012R2.

       · 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows 10 and Windows Server 2016.

       · 3 - The SMBv3.0 protocol version and above.

       · default - Tries to negotiate the highest SMB2+ version supported by both the client and server.

       If no dialect is specified on mount vers=default is used.  To check Dialect refer to /proc/fs/cifs/DebugData

       Note too that while this option governs the protocol version used, not all features of each version are available.

       The default since v4.13.5 is for the client and server to negotiate the highest possible version greater than or equal to 2.1. In kernels prior to v4.13,
       the default was 1.0. For kernels between v4.13 and v4.13.5 the default is 3.0.

답변2

keyutils 패키지를 설치해 보세요:

sudo apt-get install keyutils

이것이 왜 도움이 되는지 잘 모르겠습니다. 어쩌면 다른 사람이 여기에 답변을 가지고 있을 수도 있습니다. 그러나 적어도 나에게는 작동합니다. keyutils를 사용하면 cifs 마운트가 제대로 작동합니다.

답변3

옵션이 있나요 nodfs? 즉, -o옵션 입력의 경우 다음 입력을 전달합니다.

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

즉, 추가,nodfs

이것은 나에게 효과적입니다.

답변4

매개변수를 변경해야 할 수도 있습니다 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

관련 정보