为什么我不能在 vboxsf 文件系统上创建软链接?

def*_*hlt 21 virtualbox

ln -s 一直说文件系统是只读的,但事实并非如此。

ice@distantstar:~/virt 
? touch file
ice@distantstar:~/virt 
? rm file
ice@distantstar:~/virt 
? ln -s ~/.bashrc ~/virt/.bashrc
ln: failed to create symbolic link `/home/ice/virt/.bashrc': Read-only file system
ice@distantstar:~/virt 
? mount | grep virt
none on /home/ice/virt type vboxsf (rw,nodev,relatime)
ice@distantstar:~/virt 
? cat /etc/fstab | grep virt
VIRT    /home/ice/virt  vboxsf rw   0   0
Run Code Online (Sandbox Code Playgroud)

小智 33

在 Virtual Box 4.1.8 中,出于安全原因,已禁用在共享文件夹中使用来宾操作系统创建符号链接。

有关更多信息,请查看此票证: VirtualBox Ticket 10085 Disabled Symlinks 要重新启用,您可以尝试运行以下命令:

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

SHARE_NAME您的共享文件夹的名称在哪里。

或者,您可以降级到 4.1.6,这应该可以解决问题。

  • @gertvdijk 如果您运行的是 Windows 主机,您可能希望以管理员身份运行 VirtualBox,它需要特殊权限才能创建 Windows 风格的符号链接。 (3认同)
  • 非常好的解决方案,但据报道这在最近的 4.2 版本中不再起作用。每当我在共享文件夹(独立于目标)上创建符号链接时,我都会收到 `ln:无法创建符号链接 'linkname':协议错误` 很遗憾没有正确解决这个问题。任何新的工作经过验证可以在 4.2.6+ 中工作? (2认同)
  • 不要忘记运行此命令以重新启动虚拟机 (2认同)