não pode usar mount.cifs: mount error (2): Nenhum arquivo ou diretório

6

O comando mount.cifs não pode ser executado em um sistema gentoo com 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)

Confirmou-se a existência e a acessibilidade do ponto de montagem / home / directory / path e do arquivo de credenciais / etc / user . Além disso, os módulos e serviços relevantes foram ativados, por exemplo,

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

e

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

Esse problema foi identificado por muitos usuários, por exemplo, um exemplo . OBSERVE TAMBÉM que o mesmo comando executado no meu sistema Debian / Ubuntu é capaz de montar com sucesso.

Outras informações na máquina problemática:

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

a versão do mount.cifs instalada no debian / ubuntu é 6.0

    
por Chenming Zhang 21.03.2014 / 01:49

4 respostas

5

Você pode precisar fornecer a opção vers = ao comando mount para forçar a versão 3.0, caso esteja tentando montar um compartilhamento a partir de uma versão mais recente do Windows. Um dos nossos servidores de arquivos foi recentemente atualizado para o 2012R2 e foi quando meu suporte parou de funcionar. Configurando-o para o vers = 3.0 corrigiu o problema. Como a maioria dos erros do Samba / CIFS, a mensagem "Não existe arquivo ou diretório" não ajuda muito.

Como exemplo:

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

.. onde eu tenho meu domínio, nome de usuário e senha contidos no arquivo .cifs_user.

Aparentemente, o smbmount usa uma versão mais nova do protocolo SMB por padrão, já que funcionou sem problemas ou opções especiais.

Observe abaixo que a versão padrão do protocolo é 1.0.

Da página de manual do 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.
    
por 09.09.2014 / 00:21
0

Eu estava correndo para o mesmo erro "Erro de montagem (2): Nenhum arquivo ou diretório" usando mount.cifs em uma VM do CentOS 7. Eu nunca determinei exatamente porque o erro estava sendo gerado ao usar a segurança ntlm padrão (e as variantes), mas descobri que usar a autenticação Kerberos funcionava em torno do problema. Então, minha linha de comando final foi assim:

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

Considerando que este comando que deu o erro "no such file or directory" foi:

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

Para usar o Kerberos, eu instalei o pacote "krb5-workstation" e o configurei.

    
por 01.02.2016 / 21:07
0

Você pode usar a opção nodfs ? ou seja, para a entrada de opções -o , passe a entrada como abaixo.

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

, por exemplo, ,nodfs

Funcionou para mim.

    
por 03.10.2017 / 09:32
0

Pode ser necessário alterar o parâmetro sec : essa configuração fez com que funcionasse na minha configuração:

mount.cifs ... -o sec=ntlm

Extrato relevante de man mount.cifs :

sec =        Modo de segurança. Os valores permitidos são:

   ·   none - attempt to connection as a null user (no name)

   ·   krb5 - Use Kerberos version 5 authentication

   ·   krb5i - Use Kerberos authentication and forcibly enable packet signing

   ·   ntlm - Use NTLM password hashing

   ·   ntlmi - Use NTLM password hashing and force packet signing

   ·   ntlmv2 - Use NTLMv2 password hashing

   ·   ntlmv2i - Use NTLMv2 password hashing and force packet signing

   ·   ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message

   ·   ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message,
and force packet signing

   The default in mainline kernel versions prior to v3.8 was sec=ntlm. In v3.8, the
default was changed to sec=ntlmssp.

   If the server requires signing during protocol negotiation, then it may be
enabled automatically. Packet signing may also be enabled automatically if it's
enabled in /proc/fs/cifs/SecurityFlags.
    
por 05.12.2017 / 14:16

Tags