在 Linux 中使用带有“远程到远程”链接的 Windows 共享

在 Linux 中使用带有“远程到远程”链接的 Windows 共享

我使用可用的默认选项在最新的 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 一起使用,但需要付出更多努力。)

相关内容