Estou lutando para montar um diretório CIFS remoto em um sistema Ubuntu no trabalho. A pasta remota parece estar funcionando bem na minha sessão do Windows 8.1 (também no trabalho).
Não consegui fazer a montagem normal funcionar:
$ sudo mount -v -t cifs //1.2.3.4/network ~/z -o username=malat,domain=MY,uid=$(id -u),gid=$(id -g),iocharset=utf8
Password for malat@//1.2.3.4/network: *********
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\1.2.3.4\network,iocharset=utf8,uid=1002,gid=1002,user=mmalaterre,domain=MY,pass=********
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Mas eventualmente me deparei com esta ref :
$ sudo mount -v -t cifs //1.2.3.4/network ~/z -o username=malat,domain=MY,uid=$(id -u),gid=$(id -g),iocharset=utf8,nodfs
Password for malat@//1.2.3.4/network: *********
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\1.2.3.4\network,iocharset=utf8,nodfs,uid=1002,gid=1002,user=malat,domain=MY,pass=********
Pelo menos eu tenho algo funcionando agora:
$ mount | grep network
//1.2.3.4/network on /home/malat/z type cifs (rw,relatime,vers=2.1,cache=strict,username=malat,domain=MY,uid=1002,forceuid,gid=1002,forcegid,addr=1.2.3.4,file_mode=0755,dir_mode=0755,soft,nounix,nodfs,mapposix,rsize=1048576,wsize=1048576,bsize=1048576,echo_interval=60,actimeo=1)
No entanto, parece haver algo que não está funcionando (relacionado à opção DFS, eu acho). Aqui estão os sintomas:
$ cd ~/z
$ ls
folder1 folder2
$ ls folder1
subfolder1
$ ls folder2
ls: cannot access 'folder2': Invalid argument
Posso acessar a pasta folder2
muito bem na minha sessão do Windows 8.1, portanto, isso não é um problema de permissão. Como posso acessar folder2
da minha sessão Linux?
Aqui está a cauda de dmesg
:
[1927958.534353] CIFS: Attempting to mount //1.2.3.4/network
[1927958.534403] No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
[1927960.069018] CIFS VFS: DFS capability contradicts DFS flag
[1927960.375111] CIFS VFS: Autodisabling the use of server inode numbers on new server.
[1927960.375115] CIFS VFS: The server doesn't seem to support them properly or the files might be on different servers (DFS).
[1927960.375117] CIFS VFS: Hardlinks will not be recognized on this mount. Consider mounting with the "noserverino" option to silence this message.
Atualização: se eu adicionar vers=1.0
ao comando mount, os sintomas são um pouco diferentes:
$ cd ~/z
$ cd folder2
$ ls
subfolder2
$ cd subfolder2/
bash: cd: subfolder2/: Object is remote
Para referência:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.04
Release: 19.04
Codename: disco
versão do núcleo:
$ uname -rvo
5.0.0-38-generic #41-Ubuntu SMP Tue Dec 3 00:27:35 UTC 2019 GNU/Linux
e
$ cat /etc/request-key.d/cifs.spnego.conf
create cifs.spnego * * /usr/sbin/cifs.upcall %k
Atualizar:
Atualmente, o único trabalho que encontrei é usar o
DFS Referral list
. Então, da minha caixa do Windows, navego até o problemáticosubfolder2
(ícone do link simbólico), clique com o botão direito do mouse para obter as propriedades:Em seguida, volte para minha sessão do Linux e monte usando:
Eu posso (finalmente!) acessar o conteúdo do
subfolder2
. Isso é bastante complicado e contra-intuitivo. Portanto, isso se qualifica na melhor das hipóteses como solução alternativa e não como solução real.Finalmente consegui depurar o problema do meu lado. Eu tive que instalar um sistema Debian buster (kernel linux 5.4.x) para poder usar depuração dinâmica já que uma mensagem de erro estava oculta do nível de usuário.
As etapas para depurar uma montagem CIFS com falha estão em:
Esses me deram um log de erros mais detalhado:
Esta era a pista. Eu simplesmente tive que atualizar meu
resolve.conf
de:para:
Finalmente consegui ligar
mount -t cifs
sem anodfs
opção, que foi o problema desde o início.Os sintomas não são mais um erro e simplesmente informativos:
Finalmente posso acessar o conteúdo de
subfolder2
sem problemas.Preste atenção que no meu sistema Ubuntu (kernel Linux 5.0.x), eu tive que especificar uma versão explícita para CIFS para fazer o trabalho acima (
vers=1.0
).Referência: