montagem CIFS - funciona no Ubuntu 14, não no Debian Testing

1

Eu tenho dois computadores na mesma rede e, até recentemente, ambos podiam montar uma unidade de rede. Algo mudou e agora apenas uma máquina pode se conectar.

mount p-drive costumava funcionar como esperado em ambas as máquinas. Agora meu laptop Debian responde com:

mount --verbose p-drive

Password for USER@//ADDRESS/Users_S$/USER/:  ****
mount.cifs kernel mount options:   ip=XXX.XXX.XXX.XXX,unc=\ADDRESS,noauto,uid=1000,gid=1000,user=USER,prefixpath=USER/,pass=****
mount error(95): Operation not supported
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Para comparação, isso é o que reporta na minha máquina Ubuntu 14, que monta com sucesso a unidade:

mount --verbose p-drive

Password for USER@//ADDRESS/Users_S$/USER/: **** 
mount.cifs kernel mount options: ip=XXX.XXX.XXX.XXX,unc=\ADDRESS,noauto,uid=223159,gid=10513,user=USER,prefixpath=USER/,pass=****

Há muitas perguntas aqui e em outros lugares sobre esse erro em particular, muitas das quais se referem ao bit pegajoso de mount.cifs . Eu acho que isso é definido tanto para a máquina que trabalha quanto para a que não funciona, como mostrado abaixo.

Além disso, tentei montar como usuário normal e também como root e, em ambos os casos, o resultado é o mesmo. Eu também tentei adicionar a opção "vers = 3.0" e "sec = ntlm", como sugerido em alguns outros tópicos, sem alteração.

Dado que estou usando a mesma configuração em ambas as máquinas, e até recentemente (semanas) funcionava em ambas as máquinas, estou assumindo que o problema é devido a alguma mudança entre as versões mount.cifs 6.0 e 6.7, ou kernel 4.4 e 4.13.

Li muitas outras perguntas sobre isso, mas não entendo os detalhes fornecidos ou como isso se aplica à minha situação. Qualquer sugestão seria muito bem vinda!

UPDATE e solução

A saída de dmesg forneceu a pista de que eu precisava - adicionando a opção vers=1.0 na máquina mais nova, o que eu acho que informa a versão mais recente do mount.cifs para usar um protocolo mais antigo. Presumivelmente, a máquina Ubuntu mais antiga só usa o protocolo mais antigo, por isso não precisa da opção a ser configurada.

Especificações da máquina em funcionamento:

fstab

//ADDRESS/Users_S$/USER/     /HOME/p-drive      cifs    noauto,users,user=USER,uid=USER,rw     0       0

(Note que o meu nome de usuário na máquina local e na máquina remota são os mesmos aqui, USER)

uname -a

Linux XXXX 4.4.0-97-generic #120~14.04.1-Ubuntu SMP Wed Sep 20 15:53:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

mount.cifs -V:

6.0

ls -lh /sbin/mount.cifs

-rwsr-xr-x 1 root root 35K Jun 27  2013 /sbin/mount.cifs

saída dmesg

[1718195.879486] CIFS VFS: Autodisabling the use of server inode numbers on \ADDRESS$. This server doesn't seem to support them properly. Hardlinks will not be recognized on this mount. Consider mounting with the "noserverino" option to silence this message.

Especificações da máquina que não funciona:

fstab:

//ADDRESS/Users_S$/USER/           /HOME/p-drive       cifs    noauto,users,user=USER,uid=LOCAL_USER,rw      0       0

(para esta máquina, meu nome de usuário local (LOCAL_USER) não é o mesmo que meu nome de usuário na máquina remota (USER))

uname -a

Linux 4.13.0-1-amd64 #1 SMP Debian 4.13.4-2 (2017-10-15) x86_64 GNU/Linux

mount.cifs -V:

6.7

ls -lh /sbin/mount.cifs

-rwsr-xr-x 1 root root 35K Mar  8  2017 /sbin/mount.cifs

saída dmesg

[15873.139891] CIFS VFS: Dialect not supported by server. Consider specifying vers=1.0 or vers=2.1 on mount for accessing older servers
[15873.139902] CIFS VFS: cifs_mount failed w/return code = -95

    
por Tyler 07.11.2017 / 18:22

2 respostas

2

Você pode descobrir que dmesg fornece algumas informações adicionais. (O comando dmesg acessa a série mais recente de mensagens do kernel. Geralmente, elas são mais prontamente acessíveis em um arquivo de log, como /var/log/kern.log ou /var/log/syslog .)

No seu caso, vejo que estas são as mensagens relevantes

[15873.139891] CIFS VFS: Dialect not supported by server. Consider specifying vers=1.0 or vers=2.1 on mount for accessing older servers
[15873.139902] CIFS VFS: cifs_mount failed w/return code = -95

A solução aqui é exatamente como recomendada na mensagem: anexar vers=1.0 ou vers=2.1 às opções de montagem. (Isto controla a versão do protocolo SMB / CIFS.) Veja a página man do Debian / Alongar .

    
por 07.11.2017 / 21:52
2

Como a mensagem de erro diz, faça man mount.cifs :

OPTIONS
    username=arg
       specifies the username to connect as. If this is not given, then
       the environment variable USER is used.

       Earlier versions of mount.cifs also allowed one to specify the
       username in a "user%password" or "workgroup/user" or
       "workgroup/user%password" to allow the password and workgroup to be
       specified as part of the username. Support for those alternate
       username formats is now deprecated and should no longer be used.
       Users should use the discrete "password=" and "domain=" to specify
       those values. While some versions of the cifs kernel module accept
       "user=" as an abbreviation for this option, its use can confuse the
       standard mount program into thinking that this is a non-superuser
       mount. It is therefore recommended to use the full "username="
       option name.

Você precisa usar username= em vez de user= e password= em vez de pass= .

    
por 07.11.2017 / 19:45

Tags