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