【问题标题】:Windows issue with symlinks in VBox shared foldersVBox 共享文件夹中的符号链接的 Windows 问题
【发布时间】:2018-10-06 17:57:41
【问题描述】:

我在 Virtual Box 上有一个 Ubuntu 17 虚拟机,我的主机操作系统是 windows 8.1。我在主机和来宾操作系统之间创建了一个共享文件夹。

现在,由于 Windows 不支持 symlinks,这会阻止我将任何符号链接放入共享文件夹中。不幸的是,我需要在共享文件夹中放置一个react 项目,并且该项目在 子文件夹中包含符号链接。我该如何解决这个问题?我可以放置符号链接并以某种方式告诉 Windows 忽略它们或阻止 ubuntu 共享它们吗?

【问题讨论】:

标签: node-modules windows reactjs ubuntu npm symlink


【解决方案1】:

事实上,Windows 文件系统支持符号链接,但有两个限制:

  1. 默认禁用。
  2. 仅当您具有管理权限时才可用

我在 Windows 7 和 Windows 10 上将它与 Vagrant 一起使用。

首先,您必须在 VM 中启用符号链接功能,如下所示:

VBoxManage setextradata MACHINE_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

其中MACHINE_NAME 是虚拟盒子来宾机器名称,SHARE_NAME 是盒子配置中的共享名称。如果您使用 Vagrant,您可以将其添加到 Vagrantfile:

config.vm.provider :virtualbox do |vm|
    vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME", "1"]
end

接下来,您需要在 Windows 主机中启用符号链接:

  1. 打开Start > Windows Administrative Tools > Local Security Policy
  2. 在树形视图中转到Local Policies/User Rights Assignment
  3. 将您所属的用户名或用户组添加到条目Create symbolic links
  4. 重新启动。

【讨论】:

  • Vagrant 配置中的 SHARE_NAME 是什么?客路?主机路径?还是其他别名?
  • 已验证:访客路径。
  • 最重要的部分是SHARE_NAME。例如,在我的macOS安装中是/Users/ivan/Projects,所以我必须将变量设置为VBoxManage setextradata MACHINE_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate//Users/ivan/Projects 1 写完整的路径包括第一个斜杠是非常重要的。
  • 感谢您解释SHARE_NAME。我从其他示例中复制/粘贴了此代码,没有人解释它可能需要根据设置进行更改。经过数小时的挫折后,我终于获得了符号链接,可以在我的基于 Windows 的 vagrant 项目上工作
猜你喜欢
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多