长期从事 Mac 开发人员工作的人和我最近在 Parallels 下安装了 Win10,以便在经典 ASP 项目下进行一些轻量级开发。
我的 Mac 上有一个同步目录,我可以使用 Windows 资源管理器浏览该目录,也可以在 Visual Studio 中访问该目录 - 没有问题。
我很好奇的是,我是否可以通过 bash 提示符访问同一个目录?我从 Microsoft Store 安装了 Ubuntu 应用程序,一切运行良好。我/mnt/c/Users
也可以看到下面的本地 Windows 文件。
我似乎无法访问 Windows 所说的位于的文件\\Mac\Home\Documents\Projects\-myProjectFolder
有什么想法吗?
答案1
我找到了办法!简而言之,我们在 Windows (WSL) bash 内部从 Mac 安装 SMB 共享。
我的设置:
- macOS 10.14.2
- Parallels 14.1.0 专业版
- Windows 10 版本 1803(内部版本 17134.472)
- WSL bash 是 Ubuntu 18.04.1 LTS(Bionic Beaver)。
在 Mac 主机上启用 SMB 共享
- 打开系统偏好设置。
- 转至共享。
- 在最左边的菜单中,启用文件共享并单击它。
- 单击右侧的选项...按钮。
- 勾选使用 SMB 共享文件和文件夹。
- 在菜单中,启用您的用户名。
- 您可能会被警告,您的密码将以不太安全的方式存储。输入您的 Mac 帐户密码,然后单击“确定”。
启用 Parallels Host-Only 网络
- 打开 Parallels。
- 点击
Cmd-,
打开偏好设置。 - 打开网络选项卡。
- 在左侧菜单中选择“仅主机”。
- 勾选“将 Mac 连接到此网络”。
- 打开 Mac 系统偏好设置。
- 单击“网络”。
- 在左侧设备菜单中,单击“Parallels Host-Only #1”或类似名称。(如果菜单太长,无法完整显示,您可以在单击后检查是否选择了正确的设备。在“状态:已连接”下,小文本中显示一句话“Parallels Host-Only #1当前处于活动状态,其 IP 地址为 10.37.129.2。”)
- 记住 IP 地址字段中的值。您可以保持此窗口打开。
从 Windows 连接到 SMB 共享
- Windows 10 启动后,打开 Windows 资源管理器窗口。
- 在左侧窗格中,右键单击“网络”,然后选择“映射网络驱动器”。
- 选择可用的驱动器号。我将使用 Y:。
- 下一步一开始会出现错误,但没关系。输入
\\
您的 IP 地址,然后按回车键。 - 关闭错误对话框。
- 单击浏览...
- IP 应出现在列表中。展开它。
- 输入您的 Mac 用户名和密码。
- 选择要挂载的文件夹,然后单击“确定”。我选择了我的用户文件夹。
- 单击“完成”。
从 WSL bash 装载 SMB 共享
sudo mkdir /mnt/y
(您可以使用之前选择的任何驱动器号。)sudo mount -t drvfs Y: /mnt/y
- 就这样!您已经完成了!
可选:验证对 SMB 共享的 RW 访问权限
此部分是可选的,但可以作为良好的健全性检查。
- WSL bash 提示符应该打开。
ls -l
(您现在应该可以看到您的文件了。不必担心所有内容都归 root 所有。您仍然可以在没有 的情况下写入已挂载的共享sudo
,并且所有内容将归 Mac 端的用户所有。)echo hello > hi.txt
- 在 Mac 上,打开终端窗口。
- cd 进入包含 hi.txt 文件的目录。
cat hi.txt
(您应该看到“你好”。)echo world > hi.txt
- 切换回 WSL bash。
cat hi.txt
(您应该看到“世界”。)
注意事项
我意识到密码问题不太理想。我之所以选择这种方式,是因为尝试挂载常规的 Parallels 共享 Mac 文件夹没有成功。以下是发生的事情:
$ sudo mkdir /mnt/y
$ sudo mount -t drvfs '\\Mac\Home' /mnt/y
$ cd /mnt/y
$ ls
ls: reading directory '.': Invalid argument
$ cd ..
$ sudo umount /mnt/y
$ sudo mount -t drvfs Z: /mnt/y
$ cd y
$ ls
ls: reading directory '.': Invalid argument
看起来 WSL 和 Parallels 不能很好地协同工作,所以我稍微避开了 Parallels。我希望不必这样做,并且我希望看到更好的解决方案。