Cha*_*ler 120 samba windows-subsystem-for-linux
我有一个安装在本地 Windows 计算机上的 samba 驱动器。
我/mnt/c在 WLS(Windows 10 Bash)中有一个驱动器,但没有/mnt/z.
有没有办法以某种方式访问它?我可以在 WSL 中重新安装它吗?
gma*_*man 242
安装 DrvF
为了使用 DrvFs 挂载 Windows 驱动器,您可以使用常规的 Linux mount 命令。例如,要将可移动驱动器 D: 挂载为 /mnt/d 目录,请运行以下命令:
Run Code Online (Sandbox Code Playgroud)$ sudo mkdir /mnt/d $ sudo mount -t drvfs D: /mnt/d现在,您将能够访问 /mnt/d 下 D: 驱动器的文件。例如,当您希望卸载驱动器以便可以安全地移除它时,请运行以下命令:
Run Code Online (Sandbox Code Playgroud)$ sudo umount /mnt/d安装网络位置
当您希望挂载网络位置时,您当然可以在 Windows 中创建一个映射的网络驱动器,然后按照上面的说明进行挂载。但是,也可以使用 UNC 路径直接挂载它们:
Run Code Online (Sandbox Code Playgroud)$ sudo mkdir /mnt/share $ sudo mount -t drvfs '\\server\share' /mnt/share注意 UNC 路径周围的单引号;这些是必要的,以防止需要逃避反斜杠。如果您没有用单引号将 UNC 路径括起来,则需要通过将反斜杠加倍(例如
\\\\server\\share)来转义反斜杠。WSL 无法指定使用哪些凭据连接到网络共享。如果您需要使用不同的凭据连接到服务器,请在 Windows 中通过导航到文件资源管理器中的共享、使用 Windows 凭据管理器或 net use 命令来指定它们。可以通过互操作从 WSL 内部(使用 net.exe use)调用 net use 命令。键入 net.exe help use 以获取有关如何使用此命令的更多信息。
Jos*_*edt 31
[更新 -显然此功能在build 16176 中可用。我还没试过。]
不,虽然可能有一些我没有发现的技巧。适用于 Linux 的 Windows 子系统不挂载网络驱动器。一位微软员工在这里说(在评论中):
我们目前只“安装”固定驱动器。此时不处理 USB/可移动/网络驱动器。此功能在我们的待办事项中,但不会很快出现。
所以不要屏住呼吸。
我试图通过使用符号链接来解决它,如下所示:
c:> mklink /d c:\some\directory \\some_server\some_share
Run Code Online (Sandbox Code Playgroud)
该链接在“普通”Windows(cmd.exe、PowerShell、文件资源管理器等)中工作正常,但对 WSL 不可见:
$ ls -ld /mnt/c/some/directory
/mnt/c/some/directory not found
Run Code Online (Sandbox Code Playgroud)
对于我自己的使用,这个限制是一个阻碍。我在网络驱动器上有一些我不愿意移动的东西。有其他选择;我正在使用 Cygwin。
use*_*602 13
WSL2 支持CIFS (SMB)协议。您可能需要在挂载时指定您的网络服务器版本。例如在 Ubuntu 20.04 上:
$ sudo apt install cifs-utils
$ sudo mount -t cifs -o user=joe,pass=shmo,vers=1.0 //server/share /mnt/share
Run Code Online (Sandbox Code Playgroud)
小智 10
我最近刚遇到这个问题,我有一台运行 vmware 融合的 Mac 主机,Windows 10 安装为来宾操作系统。我在 Windows 10 中安装了 WSL (ubuntu)。我在我的 Mac (~/Public) 上与我所有的 fusion 来宾操作系统共享一个文件夹,并且它可以与任何 linux/bsd 来宾操作系统无缝协作。在 Windows 10 上,共享文件夹的网络驱动器为 \vmware-host\Shared Folder\Public\,可从 Windows 10 访问,也安装在 Z: 驱动器上。
问题是当您在 WSL 中使用 bash 时。建议的方法是(根据需要调整实际的驱动器号和文件夹名称)
sudo mkdir /mnt/z
sudo mount -t drvfs Z: /mnt/z
Run Code Online (Sandbox Code Playgroud)
或者,更直接
sudo mount -t drvfs '\\vmware-host\Shared Folder\Public' /mnt/z
Run Code Online (Sandbox Code Playgroud)
挂载命令成功,但实际上挂载“失败”。看不到/mnt/z文件夹的内容。只要文件系统是 Windows(NTFS、FAT32 等)文件系统,挂载就可以与其他网络驱动器很好地配合使用。由于我尝试使用的文件系统是苹果文件系统 (apfs),因此 drvfs 无法使用它。如果您尝试挂载的底层文件系统是 linux (ext2, ext3, ...) 或网络 nfs/samba 类型,它同样会失败。这个 drvfs 只会理解 windows 原生的 drvie 格式。
有趣的是,您如何在 Windows 中使用非 Windows 文件系统驱动器,但是在 wsl/linux 中,您只能看到 Windows 文件系统驱动器....
所以,简短的回答是
sudo mount -t drvfs { \\network\drive\folder | X:\folder } /mnt/folder
Run Code Online (Sandbox Code Playgroud)
只要网络驱动器使用本机 Windows 文件系统(ntfs、fat*)。
| 归档时间: |
|
| 查看次数: |
140983 次 |
| 最近记录: |