我使用可用的默认选项在最新的 Linux 上安装了 Windows 共享。
但在 Windows 共享上,已创建了一个名为“archive”的新符号链接,该链接指向另一个 Windows 共享(在 server2 上)。这种链接纠结似乎被称为“远程到远程”符号链接。普通的“本地”链接在 Linux 端的挂载共享上工作。Windows 客户端在通过以下方式启用此类链接后支持该功能https://helpcenter.netwrix.com/NA/996/Configure_IT_Infrastructure/File_Servers/Enable_Symlink.html
在 Linux 上,此链接“存档”如下所示:
archive -> '/??/UNC/server2/folder'
因此,Linux 似乎无法理解这种链接。它可以使用相同的凭据,因为我可以手动挂载“//server2/folder”,但我需要它在“archive”文件夹/链接中。
我已经尝试了 /etc/fstab 行中的“mfsymlinks”选项,但没有成功。
如果我尝试将 //server2/folder 挂载到“archive”上,我会收到错误:archive: No such file or directory
答案1
Linux 无法轻松地在客户端处理此类链接,因为它没有固定的 SMB 共享路径。您的符号链接可以在 Windows 客户端上运行,\\<server>\<share>
因为任何Windows 客户端无需任何自定义配置,但这不适用于 Linux,因为 Linux 中每个共享都手动安装在用户选择的任意路径上。
现在 Linux做理解符号链接,因为它会向您展示目标的确切位置(Windows 符号链接在后台使用 NT 路径,因此\??\UNC\<server>
实际上是正确的),只是 Linux 上没有自动在目标路径上安装 SMB 共享的功能。即使目标已被转换为//<server>
它,也不会在这里有所帮助。
话虽如此,/??/UNC
这是一个完全有效(虽然有点奇怪)的 Linux 路径,因此您可以利用缺少\\
翻译的优势:您可以逐字逐句地mkdir -p "/??/UNC/server2/folder"
配置 /etc/fstab 以在那里安装其他共享。(问号不是问题。)
事实上你甚至可以配置自动文件系统服务具有特殊的 autofs 映射,/??/UNC
可自动挂载 SMB 共享,类似于 autofs 通常与 NFS 一起使用的方式。)
但我建议采用不同的方法:不要使用符号链接,而是使用DFSSMB 中的功能。(不是 DFS-R,只是常规 DFS。)与符号链接不同,DFS 引用由 SMB 客户端遵循,而不是暴露给文件系统 - 没有向用户显示的“符号链接路径”。这意味着客户端可以直接在 DFS 连接点之上安装目标共享,这使得 Windows 和 Linux 客户端都可以遵循 DFS 引用,而无需任何特殊配置。
(您可以在任何 Windows Server 计算机上创建“服务器托管的 DFS 命名空间”,包括将现有共享转换为 DFS 命名空间。您也可以将 DFS 与 Samba 一起使用,但需要付出更多努力。)