如何使Guest OS遵循共享文件夹中的符号链接


18

在VirtualBox 4.2.16中,我将Ubuntu Desktop作为主要操作系统,并将Ubuntu Server作为Guest OS。

我创建了一个名为/ shared的共享文件夹,并在其中放置了几个指向我的主操作系统中不同文件夹的符号链接。当然,我的来宾操作系统只能看到断开的符号链接-因为这些位置仅存在于主操作系统中。

如何使Guest OS看到它们的实际内容?

创建另一个共享文件夹不是一种选择。


1
仅供参考,如果您的主机是Windows7、8、10,那么您需要按照答案中的说明进行操作,然后sudo启动虚拟机(也称为“以管理员身份运行”),如本博客文章中关于Linux访客虚拟机共享文件夹(带有符号链接)上所示Windows主机
Trevor Boyd Smith,

Answers:


23

这是virtualBox中的问题,与安全性有关。在4.1.8之前,符号链接有效,但存在严重缺陷。并作出删除以删除符号链接支持。

看到这个评论

出于安全原因,已在VirtualBox 4.1.8中禁用了从来宾内部创建符号链接的功能。来宾可以创建指向分配的主机目录之外的符号链接。这与任何ext3 / ext4错误无关。来宾仍然能够读取在主机上创建的符号链接。

对不起,我的发言很晚。

如果你这样做

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

然后,您的访客将能够再次创建符号链接。但是出于安全原因(请参见上文),默认情况下将其禁用。防止来自访客的危险符号链接的修复程序非常复杂,因此我们决定不允许任何访客创建任何符号链接来解决安全问题。

(我可以自由地修复评论中的错误;)


我执行了此命令,然后重新启动了VB。符号链接的颜色已更改,但是现在我什至无法对其进行cd插入。我在使用ls时看到了它,但是bash停止在TAB上显示它。
dev9 2014年

嗯听起来好像不是可执行文件?
Rinzwind

好吧,ls给我看了lrwxrwx ---,所以应该没问题。当我尝试cd时,bash告诉我没有这样的文件或目录。
dev9 2014年

3
什么是SHARE_NAME?没有人清楚地说明我们从哪里得到它。
Meglio

3
用于共享的文件夹。
Rinzwind

1

简短的答案是无法完成。

virtualbox.org上的以下票证有一些澄清:

进行此更改是有意的,并解决了共享文件夹当前实现的问题。为了与尚不知道什么是符号链接的来宾OS兼容,目前在主机端对其进行解释,这意味着使用知道符号链接的来宾OS会出现意外行为(例如,如果已安装共享文件夹上的符号链接, / foo指向/ bar / file,则无法在主机端执行正确的操作)。

它当然是可修复的,但由于需要重新设计来宾OS端与主机端之间的符号链接处理的分离,因此这并非易事。这不能很快完成,因此唯一的选择是禁用符号链接创建。太多的用户/应用程序因非标准行为而感到惊讶。

资源

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.