Windows 10 下的 Vagrant 共享文件夹和符号链接

Windows 10 下的 Vagrant 共享文件夹和符号链接

我在 Windows 10 下有一个装有 Linux 的 vagrant box(VirtualBox 5.1.4,Vagrant 1.8.5)。我以普通用户身份使用 Git Bash。在 vagrant box 中,我无法创建符号链接:

c:/path/to/my/vagrant-project/ vagrant up + vagrant ssh
/home/vagrant/my-shared-folder/ $ ln -s /any/path/to/linux/box/folder my-symlink-name
/home/vagrant/my-shared-folder/ $ ln: creating symbolic link `my-symlink-name': Protocol error

在 Windows 7 下它可以运行:作为普通用户,如何在 Windows 7 家庭高级版中创建链接?

那么,Windows 10 下有什么改变吗?

答案1

我也为同样的问题苦苦挣扎了很长时间。请确保:

  • VirtualBox 选项“SharedFoldersEnableSymlinksCreate”对每个文件夹均有效 *1)
  • 您必须以“管理员”用户身份运行 GitBash,因为 Windows 中的用户管理似乎只允许“管理员”用户创建符号链接 *2)

    1. 您可以从 Windows 命令行手动执行此操作(通过 VBoxManager 设置额外数据)或通过 Vagrantfile

      virtualbox.customize ['setextradata', :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//vagrant", '1']  
      
    2. 右键单击 GitBash 图标并以管理员身份运行

      德文版“以管理员身份运行”

    之后,您应该能够登录到 vagrant box 并在共享文件夹内创建符号链接,这些符号链接在 Windows 资源管理器中显示为 .symlink 文件。

答案2

已经有帖子描述了如何在 Windows 10 上创建符号链接

我只是再次快速描述一下。首先创建一个交界处

junction "C:\Documents and Settings\UserName\My Documents\My Dropbox\My Games" "C:\Documents and Settings\UserName\My Documents\My Games"

创建目录象征性的使用 mlink 链接:

mklink /D "C:\Documents and Settings\UserName\My Documents\My Dropbox\My Games" "C:\Documents and Settings\UserName\My Documents\My Games"

可以在此处授予创建符号链接的安全设置:

Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\

您还可以下载交界处并使用命令创建。

答案3

如果在主机(Windows)操作系统中使用带有选项 /d 和相对路径的 mklink 创建符号链接,那么它们将同步到客户机中,即使在运行 vagrant 时也无需管理员权限或任何额外权限。

mklink /D somelink ..\..\some\relative\path

Vagrant:1.9.1,VirtualBox:5.0.32

PS:mklink 仍然需要管理员权限

相关内容