注意事项

注意事项

长期从事 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 共享

  1. 打开系统偏好设置。
  2. 转至共享。
  3. 在最左边的菜单中,启用文件共享并单击它。
  4. 单击右侧的选项...按钮。
  5. 勾选使用 SMB 共享文件和文件夹。
  6. 在菜单中,启用您的用户名。
  7. 您可能会被警告,您的密码将以不太安全的方式存储。输入您的 Mac 帐户密码,然后单击“确定”。

启用 Parallels Host-Only 网络

  1. 打开 Parallels。
  2. 点击Cmd-,打开偏好设置。
  3. 打开网络选项卡。
  4. 在左侧菜单中选择“仅主机”。
  5. 勾选“将 Mac 连接到此网络”。
  6. 打开 Mac 系统偏好设置。
  7. 单击“网络”。
  8. 在左侧设备菜单中,单击“Parallels Host-Only #1”或类似名称。(如果菜单太长,无法完整显示,您可以在单击后检查是否选择了正确的设备。在“状态:已连接”下,小文本中显示一句话“Parallels Host-Only #1当前处于活动状态,其 IP 地址为 10.37.129.2。”)
  9. 记住 IP 地址字段中的值。您可以保持此窗口打开。

从 Windows 连接到 SMB 共享

  1. Windows 10 启动后,打开 Windows 资源管理器窗口。
  2. 在左侧窗格中,右键单击“网络”,然后选择“映射网络驱动器”。
  3. 选择可用的驱动器号。我将使用 Y:。
  4. 下一步一开始会出现错误,但没关系。输入\\您的 IP 地址,然后按回车键。
  5. 关闭错误对话框。
  6. 单击浏览...
  7. IP 应出现在列表中。展开它。
  8. 输入您的 Mac 用户名和密码。
  9. 选择要挂载的文件夹,然后单击“确定”。我选择了我的用户文件夹。
  10. 单击“完成”。

从 WSL bash 装载 SMB 共享

  1. sudo mkdir /mnt/y(您可以使用之前选择的任何驱动器号。)
  2. sudo mount -t drvfs Y: /mnt/y
  3. 就这样!您已经完成了!

可选:验证对 SMB 共享的 RW 访问权限

此部分是可选的,但可以作为良好的健全性检查。

  1. WSL bash 提示符应该打开。
  2. ls -l(您现在应该可以看到您的文件了。不必担心所有内容都归 root 所有。您仍然可以在没有 的情况下写入已挂载的共享sudo,并且所有内容将归 Mac 端的用户所有。)
  3. echo hello > hi.txt
  4. 在 Mac 上,打开终端窗口。
  5. cd 进入包含 hi.txt 文件的目录。
  6. cat hi.txt(您应该看到“你好”。)
  7. echo world > hi.txt
  8. 切换回 WSL bash。
  9. 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。我希望不必这样做,并且我希望看到更好的解决方案。

相关内容