A montagem da unidade cifs fornece: erro de montagem (22): argumento inválido

44

Estou tentando executar:

sudo mount -t cifs //user.my-backup.com /mnt/wal_drive -o iocharset=utf8,rw,credentials=/etc/backupcredentials.txt,uid=postgres,gid=postgres,file_mode=0660,dir_mode=0770

No entanto, continuo recebendo o seguinte erro:

mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

O que estou fazendo errado?

Niels Kristian
fonte
1
Dois problemas possíveis: sua fonte é uma URL que pode não ser resolvida ou não está anunciando o Samba; e, o uid / gid precisa ser expresso numericamente. Você leu a manpágina referida ?
Douggro
3
Mount deve realmente retornar uma mensagem de erro melhor. Saber qual argumento é inválido tornaria essa mensagem de erro muito mais útil.
Gregory Arenius
1
Mount fornece um erro genérico porque os detalhes estão no log. Como é dito abaixo, use tail -f /var/log/kern.log para entender o que está acontecendo.
Sam
1
dmesg | tailinforma um pouco mais sobre qual opção está causando problemas.
HongboZhu 15/07

Respostas:

63

talvez isso ajude com isso, mount error(22): Invalid argument... o possível erro é o argumento / s (modo) no comando mount.

  1. verifique seus logs nos erros encontrados.

    tail -f  /var/log/kern.log 
    
  2. remover o argumento inválido

user278458
fonte
9
Isso funcionou para mim. Encontrei o erro CIFS not working, kernel upgrade:No dialect specified on mounte o resolvi adicionando vers=1.0ao meu / etc / fstab ( bbs.archlinux.org/viewtopic.php?id=230952 ). Eu suspeito que isso seja causado pelo uso do kernel 4.13.
Blaha
Eita, graças a Deus pelo stackoverflow. Mesmo problema no ubuntu. Eu adicionei vers = 2.0 e funciona. O mount.cifs atual está em 6.4. Provavelmente algumas melhorias para credenciais, mas não cavando CIFS agora ...
dturvene
6

Eu tive o mesmo problema no Arch Linux, com esta mensagem no log:

kernel: CIFS VFS: cifs_mount failed w/return code = -22

Para mim, a solução foi especificar a versão mais antiga do cifs (por padrão, era 3.0):

/etc/fstab:

//my-router/share /media/share cifs ver="2.1",rw,soft,uid=ele,gid=ele,file_mode=0770,dir_mode=0770,credentials=/etc/router-credentials.conf 0 0
Igor Avdeev
fonte
3

Outra causa possível é a presença de sec=ntlmin /etc/fstabe sua incompatibilidade com protocolos SMB mais recentes, como SMB3.

Embora não seja o caso do OP, isso também pode causar mount error(22): Invalid argumenterros, como ocorreu comigo depois de atualizar um servidor antigo.

Mesmo que kern.loginclua uma sugestão specify vers=1.0 on mount, pode ser mais seguro remover ou alterar sec=ntlm. Talvez use os padrões para permitir a negociação automática da versão e segurança do SMB ou especifique opções compatíveis como vers=3.0,sec=ntlmssp.

Obviamente, isso depende dos recursos do servidor SMB, mas eu tentaria evitar a vers=1.0menos que necessário.

drgrog
fonte
2

Eu estava usando um URL errado. Deveria ter sido://user.my-backup.com/backup

Niels Kristian
fonte
2

No meu caso, esse problema foi causado porque eu havia montado um diretório cheio de links simbólicos. Depois de investigar os links simbólicos no Windows, peguei os caminhos "reais" e montei-os.

pzkpfw
fonte
2

Você pode adicionar as informações de versão do SMB para resolver o problema. O que eu fiz foi adicionar vers = 1.0. Esta é a versão 1 do SMB, que funciona com todos os drivers smb. Para o seu caso, será algo parecido com isto

sudo mount -t cifs //user.my-backup.com /mnt/wal_drive -o iocharset=utf8,rw,vers=1.0,credentials=/etc/backupcredentials.txt,uid=postgres,gid=postgre ,file_mode=0660,dir_mode=0770
Siddharth Kaul
fonte
1

Após a atualização para Jessie Debian, o pacote deve ter sido alterado. Eu removi guid=0da fstabmontagem a seguir e tudo funcionou corretamente novamente.

//x.x.x.x/General/  /usr/local/share/general cifs uid=0,guid=0,rw,credentials=/etc/gen-cifspasswd 0 0
Benjamin Stewart
fonte