在Windows的Solaris子系统中安装Windows共享

时间:2017-07-21 18:19:35

标签: linux bash ubuntu mount windows-subsystem-for-linux

我想在WSL内安装Windows服务器(适用于Linux的Windows子系统)。在Ubuntu上(使用统一界面)我只需输入

即可
gvfs-mount smb://domain\;user@server/share

并且一切都安装得很好。

如果我在WSL中尝试这个,那么我会收到以下错误:

Error mounting location: volume doesn't implement mount

5 个答案:

答案 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共享,则需要通过添加NTLMv1sec=ntlm来启用sec=ntlm1身份验证。有关mount.cifs选项的进一步使用,请参阅sec=

答案 4 :(得分:0)

在WSL(我使用Ubuntu)中,当您安装cifs-utils时,它不会创建cifs挂载时所需的模块文件。输入:“ modinfo cifs”,您将看到。无论如何,如上所述,解决方法是在Windows中映射驱动器号,然后将其安装到该驱动器号。谢谢加布佐。

也许cifs-utils在错误的位置查找了模块文件。或MS故意禁用了它。他们不希望WSL有用。