我想在WSL内安装Windows服务器(适用于Linux的Windows子系统)。在Ubuntu上(使用统一界面)我只需输入
即可gvfs-mount smb://domain\;user@server/share
并且一切都安装得很好。
如果我在WSL中尝试这个,那么我会收到以下错误:
Error mounting location: volume doesn't implement mount
答案 0 :(得分:13)
假设主机Windows操作系统可以访问“\ servername \ sharename”中的文件共享,请在bash中尝试此命令,不确定是否需要root:
mkdir /mnt/mountedshare
mount -t drvfs '\\servername\sharename' /mnt/mountedshare
单引号很重要!
使用SharePoint Online UNC路径为我工作。但权限很棘手。我可以浏览文件夹并查看文件名,无法读取文件。所以需要弄清楚权限的事情。如果你随处可见,请告诉我。
答案 1 :(得分:3)
实际上,如果您的Windows共享已经映射到Windows主机中的驱动器,则它甚至可以更加简单。假设您已经在Z:
上安装了共享。在这种情况下,以下方法将起作用:
sudo mkdir /mnt/z
sudo mount -t drvfs 'Z:' /mnt/z
答案 2 :(得分:2)
安装 SMB 服务器共享应该很简单,我在 Windows build 1909 和 WSL 2.0 Ubuntu 20.04.1 LTS (GNU/Linux 4.19.128-microsoft-standard x86_64) 上对此进行了测试。您像往常一样使用 mount:
sudo mount -t drvfs '\\server\share' /your/mount/folder
没什么难的,挂载的源路径是常规的 UNC 路径名。重要的部分是文件系统类型(“驱动器文件系统”?)以及您需要将服务器路径用单引号括起来(在命令行上)这一事实。像往常一样,您的挂载文件夹也必须存在。
在 this WSL issue 上,我发现了一些不错的选项 (-o),它们似乎非常适合在没有 sudo 的情况下创建、读取和写入文件以及读取正确的修改/创建日期:
metadata,rw,noatime,uid=1000,gid=1000,umask=22,fmask=11
因为我喜欢一直挂载这台服务器,所以我将挂载指令放入 /etc/fstab
以使其由 WSL 自动挂载:
\\server\share /your/mount/folder drvfs metadata,rw,noatime,uid=1000,gid=1000,umask=22,fmask=11 0 0
(您可以使用 sudo mount -a
重新加载 fstab)
请注意,我已经登录到 Windows 本身的服务器并让它记住用户和密码。 @David C. Rankin 的回答提供了一些关于如何指定用户名和密码(如果您需要单独指定)的信息。
答案 3 :(得分:1)
虽然您已经通过/mnt/c
在WSL中为您创建了一个挂载,但是如果您想从另一台计算机挂载共享,那么您将需要创建挂载点,例如< / p>
sudo mkdir -p /mnt/somename
然后,您需要使用smb://
在该挂载点挂载远程共享mount.cifs
文件系统,例如
sudo mount.cifs //server/sharename /mnt/somename
或者,您可能希望在/mnt/somename
之后添加选项,例如
-o username=yourname,uid=YOURUID,noperm,password=yourpassforremoteshare
如果您尝试安装较旧的WinXP共享,则需要通过添加NTLMv1
或sec=ntlm
来启用sec=ntlm1
身份验证。有关mount.cifs
选项的进一步使用,请参阅sec=
。
答案 4 :(得分:0)
在WSL(我使用Ubuntu)中,当您安装cifs-utils时,它不会创建cifs挂载时所需的模块文件。输入:“ modinfo cifs”,您将看到。无论如何,如上所述,解决方法是在Windows中映射驱动器号,然后将其安装到该驱动器号。谢谢加布佐。
也许cifs-utils在错误的位置查找了模块文件。或MS故意禁用了它。他们不希望WSL有用。