我正在尝试运行:
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
也许这有帮助,mount error(22): Invalid argument
...可能的错误是 mount 命令上的参数(模式)。
检查日志中遇到的错误。
tail -f /var/log/kern.log
删除无效参数
答案2
sec=ntlm
另一个可能的原因是存在/etc/fstab
并且它与 SMB3 等较新的 SMB 协议不兼容。
虽然这不是 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
除非必要,否则我会尽量避免。
答案3
我在 Arch Linux 上遇到了同样的问题,日志中出现以下消息:
kernel: CIFS VFS: cifs_mount failed w/return code = -22
对我来说,解决方案是指定旧版本的 cifs(默认情况下为 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
答案4
我使用了错误的 URL。它应该是://user.my-backup.com/backup