安装 DrvFs

安装 DrvFs

我有一个安装在本地 Windows 计算机上的 Samba 驱动器。

/mnt/c在 WLS(Windows 10 Bash)中有一个驱动器,但没有/mnt/z

有没有办法以某种方式访问​​它?我可以在 WSL 中重新安装它吗?

答案1

[更新 - 显然此功能适用于内部版本 16176。我还没试过。

不,不过可能有一些我还没发现的技巧。Windows Subsystem for Linux 不安装网络驱动器。一位微软员工说这里(在评论中):

目前我们只“安装”固定驱动器。目前不处理 USB/可移动/网络驱动器。此功能已列入我们的待办事项中,但短期内不会实现。

所以不要屏住呼吸。

我尝试通过使用符号链接来解决这个问题,如下所示:

c:> mklink /d c:\some\directory \\some_server\some_share

该链接在“普通”Windows(cmd.exe、PowerShell、文件资源管理器等)中工作正常,但对 WSL 是不可见的:

$ ls -ld /mnt/c/some/directory
/mnt/c/some/directory not found

对于我自己的使用来说,这个限制是无法避免的。我有一些不想移动的网络驱动器上的东西。还有其他选择;我正在使用 Cygwin。

答案2

bleater 发布的链接

安装 DrvFs

为了使用 DrvFs 挂载 Windows 驱动器,您可以使用常规 Linux mount 命令。例如,要将可移动驱动器 D: 挂载为 /mnt/d 目录,请运行以下命令:

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

现在,您将能够访问 D: 驱动器 /mnt/d 下的文件。当您希望卸载驱动器(例如,为了可以安全地移除它)时,请运行以下命令:

$ sudo umount /mnt/d

安装网络位置

当您想要挂载网络位置时,您当然可以在 Windows 中创建映射网络驱动器并按上述方法挂载它。但是,也可以使用 UNC 路径直接挂载它们:

$ sudo mkdir /mnt/share
$ sudo mount -t drvfs '\\server\share' /mnt/share

请注意 UNC 路径周围的单引号;这是必要的,以避免需要转义反斜杠。如果您没有用单引号将 UNC 路径括起来,则需要通过将反斜杠加倍来转义反斜杠(例如\\\\server\\share)。

WSL 无法指定使用哪些凭据来连接到网络共享。如果您需要使用不同的凭据连接到服务器,请在 Windows 中通过导航到文件资源管理器中的共享、使用 Windows 凭据管理器或 net use 命令来指定它们。可以通过 interop 从 WSL 内部调用 net use 命令(使用 net.exe use)。键入 net.exe help use 以获取有关如何使用此命令的更多信息。

答案3

WSL2 支持CIFS(中小企业)协议。您可能需要在安装时指定网络服务器版本。例如在 Ubuntu 上:

$ sudo apt install cifs-utils
$ sudo mount -t cifs -o user=joe,pass=shmo,vers=1.0 //server/share /mnt/share

答案4

https://github.com/Microsoft/WSL/issues/2999#issuecomment-455835951

以下是基于以下方式在 WSL 中挂载 GFS 的方法让 `sshfs` 在 WSL 上运行或寻找替代方案诀窍是使用https://www.nsoftware.com/sftp/netdrive/从 Windows ssh 到 GFS,并将其转换为可以在 WSL 下挂载的文件系统。

  1. 在Win10下安装OpenSSH Server Win10的设置->应用程序->管理可选功能->添加功能->必要时重启OpenSSH Server打开服务->OpenSSH->属性->启动类型->自动(延迟)

  2. 安装并运行 SFTPNetDrive,右键单击隐藏图标中的图标->主窗口(或可能已经打开)->配置文件->新建配置文件(服务器:localhost,用户:* 密码:*驱动器号:F(或其他)高级 -> (协议 -> 取消选中压缩;指定文件夹:G:\ ))

  3. 在 Bash (wsl) 中: sudo mkdir /mnt/f; sudo mount -t drvfs F: /mnt/f

我不确定它有多稳定,但我能够在 WSL 中打开文件。

相关内容