装入cifs驱动器给出:装入错误(22):无效的参数


44

我正在尝试运行:

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

但是我继续收到以下错误:

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

我究竟做错了什么?


1
可能存在两个问题:您的来源是可能无法解析或未在Samba上投放广告的URL;并且,uid / gid需要用数字表示。您已阅读推荐man页面吗?
douggro 2014年

3
挂载确实应该返回更好的错误消息。知道哪个参数无效将使此错误消息更加有用。
格雷戈里·阿雷纽斯'18

1
由于详细信息在日志中,因此Mount会产生一般错误。如下所述,使用tail -f /var/log/kern.log了解发生了什么。
山姆

1
dmesg | tail告诉您更多有关哪个选项给您带来麻烦的信息。
朱洪波

Answers:


63

也许这有帮助,mount error(22): Invalid argument...可能的错误是mount命令上的参数(s)(模式)。

  1. 检查您的日志中遇到的错误。

    tail -f  /var/log/kern.log 
    
  2. 删除无效的参数


9
这对我有用。我发现了错误CIFS not working, kernel upgrade:No dialect specified on mount,并通过[添加] vers=1.0到我的/ etc / fstab(bbs.archlinux.org/viewtopic.php?id=230952)中来解决了该错误。我怀疑是由使用内核4.13引起的。
blaha

真是的,谢谢上帝,谢谢stackoverflow。Ubuntu上的同样问题。我添加了vers = 2.0,它可以正常工作。当前的mount.cifs为6.4。可能对凭证进行了一些增强,但现在还不了解CIFS ...
dturvene

6

我在Arch Linux上遇到了同样的问题,并在日志中显示了此消息:

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

对我来说,解决方案是指定较旧版本的CIF(默认值为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

3

另一个可能的原因是sec=ntlmin 的存在,/etc/fstab并且与新的SMB协议(例如SMB3)不兼容。

虽然不是OP的情况,但这也可能会导致mount error(22): Invalid argument错误,就像升级旧服务器后对我所做的那样。

即使kern.log包含对的建议specify vers=1.0 on mount,也可以更安全地删除或更改sec=ntlm。也许使用默认值来允许自动协商SMB版本和安全性,或者指定兼容的选项,例如vers=3.0,sec=ntlmssp

显然,这取决于您的SMB服务器的功能,但是vers=1.0除非有必要,否则我会尽量避免。



2

就我而言,此问题是由于我安装了一个充满符号链接的目录而引起的。在研究了Windows中的符号链接之后,我得到了它们的“真实”路径并安装了这些路径。


2

您可以添加SMB的版本信息来解决此问题。我所做的是我添加了vers = 1.0。这是SMB版本1,可与所有smb驱动程序一起使用。对于您的情况,它将看起来像这样

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

1

升级到Jessie Debian之后,软件包必须已更改。我guid=0从下面的fstab安装架上移开了,一切都再次正常运行。

//x.x.x.x/General/  /usr/local/share/general cifs uid=0,guid=0,rw,credentials=/etc/gen-cifspasswd 0 0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.