我在 virtualbox 和我的 Windows 7 主机之间设置了一个共享文件夹。我有一个在 Windows 中创建的 test.txt 文件,它在我的 Ubuntu VM 中正确显示。Virtualbox 将共享文件夹安装在/media/sf_share
(我在 virtualbox 设置中为共享文件夹指定的名称是share
)。我想将安装点从 移动/media/sf_share
到 ,/srv
这样我就可以在我的 Windows 主机上编辑文件,并且它们显示在 下/srv
。我该如何实现这一点?
**
我尝试过的:
**
我已将其编辑/etc/fstab
如下:
share /srv vboxsf defaults 0 0
完成此操作后,我使用了命令mount -a
,并重新启动了,然后再次重新启动,并将 Virtualbox 共享文件夹设置为不自动挂载。
我读到在加载 virtualbox 实用程序之前挂载文件系统存在问题,因此我将其添加vboxsf
到我的文件系统中/etc/modules
,然后重复上述步骤。
它们都没有在 / 中重现正确的内容srv
。当我mount -a
在编辑之后发出时fstab
,有时我可以让它工作。我不知道每次我做的事情有什么不同,但有时在我编辑之后fstab
,mount -a
无需重新启动,我就可以在那里看到文件。但重新启动后,文件又不见了。
答案1
您必须更改“来宾属性”来修改用于共享文件夹的挂载前缀和基目录。
看https://www.virtualbox.org/manual/ch04.html#sf_mount_auto
和https://www.virtualbox.org/manual/ch04.html#guestadd-guestprops
但需要注意的是:
第一个链接中详述的两个属性在未设置或清除时都有默认值:未设置时
/VirtualBox/GuestAdd/SharedFolders/MountPrefix
默认为sf_
。未设置时将默认值
设置/VirtualBox/GuestAdd/SharedFolders/MountDir
为/media
因此,如果您不想要前缀,则必须设置MountPrefix
为,因为尝试将其设置为“”实际上会清除该属性并将其恢复为默认值。/
sf_
答案2
检查一下/etc/fstab
?我不太清楚 VirtualBox 如何共享,所以如果更改挂载点会破坏共享,你可以将其改回来并将挂载绑定/media/sf_share
到/srv
有关绑定安装和 fstab 的信息:
https://serverfault.com/questions/613179/how-do-i-do-mount-bind-in-etc-fstab
如果我在 /media/3tb-vol1/Private/ 上安装了卷,并且我想将其绑定到 /srv/Private,那么我有一个像这样的 /etc/fstab。
/media/3tb-vol1/Private/ /srv/Private none bind
当然,我不知道 VirtualBox 共享的具体细节。我不确定它是如何以及何时/media/sf_share
挂载的,如果它在什么时候没有准备好fstab
,它可能无法及时挂载以进行绑定……?
答案3
根据 Nawak 的回答,我终于成功了。我已经尝试了很多解决方案(基于/etc/fstab/
并设置了一些/etc/rc.local
),但这个是有效的。
我刚刚运行了以下命令(从主机):
VBoxManage guestproperty set "Ubuntu 16" /VirtualBox/GuestAdd/SharedFolders/MountPrefix /
VBoxManage guestproperty set "Ubuntu 16" /VirtualBox/GuestAdd/SharedFolders/MountDir srv
我的虚拟机名称在哪里Ubuntu 16
。为了检查这些属性是否正确应用,您可以运行:
VBoxManage guestproperty enumerate "Ubuntu 16"