我在 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)
您可以从 Windows 命令行手动执行此操作(通过 VBoxManager 设置额外数据)或通过 Vagrantfile
virtualbox.customize ['setextradata', :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//vagrant", '1']
右键单击 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 仍然需要管理员权限