VBox共享文件夹中的符号链接的Windows问题

Ahm*_*ein 6 windows ubuntu symlink npm reactjs

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

现在,因为Windows不支持符号链接,这可以防止我将任何符号链接放在共享文件夹中.不幸的是,我需要在共享文件夹中放置一个react项目,该项目在nodes 子文件夹中包含符号链接.我该如何解决这个问题?我可以把符号链接告诉窗口以某种方式忽略它们或阻止ubuntu共享它们吗?

Łuk*_*bek 9

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

  1. 默认情况下禁用.
  2. 仅在您具有管理权限时才可用

我在Windows 7和Windows 10上使用Vagrant.

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

VBoxManage setextradata MACHINE_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1
Run Code Online (Sandbox Code Playgroud)

MACHINE_NAME虚拟机客户机名称在哪里,是SHARE_NAME机箱配置中的共享名称.如果您使用Vagrant,可以将其添加到Vagrantfile:

config.vm.provider :virtualbox do |vm|
    vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME", "1"]
end
Run Code Online (Sandbox Code Playgroud)

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

  1. 打开 Start > Administrative tools > Local security policies
  2. 转到Local rules/Assign user rights树视图.
  3. 添加您所属的用户名或用户组Create symbolic links.
  4. 重新开始.

Windows中的名称可能不同,因为我在运行时将其从我的母语系统中翻译出来.

  • 最重要的部分是 SHARE_NAME。例如,在我的 macOS 安装中,它是 `/Users/ivan/Projects`,所以我必须将变量设置为 `VBoxManage setextradata MACHINE_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate//Users/ivan/Projects 1` 编写包括的整个路径非常重要第一个斜线。 (2认同)