由于某种原因,我无法 cd 进入我有权访问的特定远程目录,它失败并显示:
$ cd Data\ Services/
-bash: cd: Data Services/: Invalid argument
这就是我安装它的方式:
$ sudo mount -t cifs //big.acme.corp/network/ ~/z -o username=myuser,domain=mydomain,uid=$(id -u),gid=$(id -g),vers=1.0
Password for myuser@//big.acme.corp/network/: *********
我可以从我的 Windows 8 笔记本电脑上正常访问它(相同的用户名/密码)。
以供参考:
$ ls -ald "Data Services"
drwx--x--x 2 myuser myuser 0 Dec 13 09:21 Data Services
至少在我看来,这个快捷方式被视为一个目录:
$ find Data\ Services -type d
Data Services
find: ‘Data Services’: Invalid argument
因此我不能用它做太多事情:
$ cat Data\ Services
cat: Data Services: Invalid argument
甚至
$ hexdump Data\ Services
hexdump: Data Services: Invalid argument
hexdump: all input file arguments failed
如下所示,我再次尝试使用noperm
:
$ sudo mount -t cifs //big.acme.corp/network/ ~/z -o username=myuser,domain=mydomain,uid=$(id -u),gid=$(id -g),noperm
这给了我:
$ mount
...
//big.acme.corp/network/ on /home/myuser/z type cifs (rw,relatime,vers=1.0,cache=strict,username=big.acme.corp,domain=mydomain,uid=1002,forceuid,gid=1003,forcegid,addr=10.1.2.3,file_mode=0755,dir_mode=0755,nounix,mapposix,noperm,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)
这并没有改变任何事情:
$ strings Data\ Services
strings: Data Services: Invalid argument
答案1
实际的根本问题是在DFS
.我的 CIFS 版本太旧。更新到新系统并没有解决所有问题,但我最终偶然发现:
这给了我一个更详细的错误日志,我发现:
[...]
[ 687.037593] fs/cifs/dns_resolve.c: dns_resolve_server_name_to_ip: unable to resolve: MYSERV13
[ 687.037606] fs/cifs/cifs_dfs_ref.c: cifs_compose_mount_options: Failed to resolve server part of //MYSERV13/network to IP: -2
[...]
更新我resolve.conf
的:
search acme.corp
到:
search acme.corp mydoma01.acme.corp
我终于可以mount -t cifs
在没有'nodfs'
选项的情况下打电话了。这些症状不再是错误,而只是提供信息:
$ cd Data Services
CIFS VFS: BAD_NETWORK_NAME: \\MYSERV13\network
[...]
Data Services
我终于可以毫无问题地访问内容了。
综上所述:
- 需要一些最新的 cifs-utils 软件包,
- 不使用
nodfs
选项 - 确保您的
resolv.conf
定义正确
完整线程位于:
nodfs参考:
答案2
挂载共享时尝试选项 iocharset=utf8 和 vers=1.0:
mount -t cifs -o iocharset=utf8,vers=1.0 //server/share /path/to/mount
这为我解决了这个问题。