AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 564881
Accepted
malat
malat
Asked: 2020-01-31 00:50:41 +0800 CST2020-01-31 00:50:41 +0800 CST 2020-01-31 00:50:41 +0800 CST

在 Linux / 对象中正确安装 Windows DFS 命名空间是远程的

  • 772

我正在努力在工作中的 Ubuntu 系统上挂载远程 CIFS 目录。远程文件夹在我的 Windows 8.1 会话中似乎工作得很好(也在工作中)。

我无法正常安装工作:

$ 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)

但我最终偶然发现了这个参考:

$ 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=********

至少我现在有一些工作:

$ 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)

但是似乎有些东西不起作用(我猜与 DFS 选项有关)。以下是症状:

$ cd ~/z
$ ls
folder1 folder2
$ ls folder1
subfolder1
$ ls folder2
ls: cannot access 'folder2': Invalid argument

我可以folder2从我的 Windows 8.1 会话中很好地访问该文件夹,所以这不是权限问题。如何folder2从我的 Linux 会话中访问?

这是 的尾巴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.

更新:如果我添加vers=1.0到 mount 命令,症状会略有不同:

$ cd ~/z
$ cd folder2
$ ls
subfolder2
$ cd subfolder2/
bash: cd: subfolder2/: Object is remote

以供参考:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 19.04
Release:        19.04
Codename:       disco

内核版本:

$ uname -rvo
5.0.0-38-generic #41-Ubuntu SMP Tue Dec 3 00:27:35 UTC 2019 GNU/Linux

和

$ cat /etc/request-key.d/cifs.spnego.conf
create  cifs.spnego    * * /usr/sbin/cifs.upcall %k

更新:

  • 在 Linux / 对象中正确安装 Windows DFS 命名空间是远程的
ubuntu mount
  • 2 2 个回答
  • 15184 Views

2 个回答

  • Voted
  1. malat
    2020-01-31T01:41:56+08:002020-01-31T01:41:56+08:00

    目前,我发现的唯一解决方法是使用DFS Referral list. 因此,从我的 Windows 框中,我导航到有问题的subfolder2(符号链接图标),右键单击获取属性:

    DFS 推荐名单

    然后回到我的 Linux 会话,并改为使用:

    $ sudo mount -t cifs //xyzclus01-cifs.mydoma.acme.corp/Disk12 ~/disk12 -v -o username=malat,domain=MY,uid=$(id -u),gid=$(id -g),iocharset=utf8,nodfs,vers=1.0
    Password for malat@//xyzclus01-cifs.mydoma.acme.corp/Disk12:  *********
    mount.cifs kernel mount options: ip=5.6.7.8,unc=\\xyzclus01-cifs.mydoma.acme.corp\Disk12,iocharset=utf8,nodfs,vers=1.0,uid=1002,gid=1002,user=malat,domain=MY,pass=********
    

    我可以(终于!)访问subfolder2. 这是相当麻烦和违反直觉的。因此,这充其量只能作为解决方法,而不是真正的解决方案。

    • 2
  2. Best Answer
    malat
    2020-03-11T05:37:40+08:002020-03-11T05:37:40+08:00

    我终于能够调试我这边的问题。我必须安装一个 Debian buster 系统(linux 内核 5.4.x)才能使用动态调试,因为用户级别隐藏了一条错误消息。

    调试失败的 CIFS 挂载的步骤如下:

    • LinuxCIFS 故障排除

    这些给了我更详细的错误日志:

    [...]
    [  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 subfolder2
    CIFS VFS: BAD_NETWORK_NAME: \\MYSERV13\network
    [...]
    

    我终于可以subfolder2毫无问题地访问内容了。

    请注意,在我的 Ubuntu 系统(Linux 内核 5.0.x)上,我必须为 CIFS 指定一个显式版本才能使上述工作(vers=1.0)。

    参考:

    • 回复:在 Linux / 对象中正确安装 Windows DFS 命名空间是远程的
    • 2

相关问题

  • 使 Apple 键盘设置在 ../hid_apple/parameters/ 中持久化

  • 用文件中的点绘制二维图形

  • 如何验证我使用 9.9.9.9 作为 DNS?

  • 并行安装多个 linux 发行版

  • 自编译 OpenVPN 不会从 systemd 启动

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve