在 VirtualBox 中无法挂载共享文件夹时该怎么办?

大家好,
我是Mandai,Wild团队负责开发工作的成员。

VirtualBox 的共享文件夹非常方便,我觉得它们极其有用。
但是,有时候它们会突然停止挂载,遇到这种情况我不知道该怎么办,所以最后只能用其他各种方法来传输文件。

我最近终于找到了问题的原因,所以想把解决方法记下来。

开发游戏 API 时,生产环境通常是 Linux,所以我用的是 Windows 机器,但我通过在本地机器上使用虚拟机来维持类似的环境,所以问题依然存在。

至于虚拟机环境,我们使用 VirtualBox,虚拟机操作系统镜像一般为 CentOS。

 

从 Level 1 Guest Additions CD 重新安装工具

这是我首先想到的。

虽然这篇文章有点老了,“VirtualBox 共享文件夹笔记 | dark_green 的日记 | Slashdot”中提到的,这种情况在使用 yum 或类似工具更新内核模块时经常发生。
既然是虚拟机,也许可以稍微粗暴一些?

在 VirtualBox 中,从“设备”菜单中选择“插入 CD 映像”将自动启动安装工具。
如果 CD 已挂载到桌面,只需双击 CD 图标即可。

我知道在介绍这款产品之后说这话可能有点奇怪,但如果它能解决这个问题,我就不会那么担心了。

 

二级:重新配置共享文件夹

这是过去在问题显现时所采用的解决方案。

这可以在 VirtualBox 管理器的虚拟机设置中进行配置。
或者,如果您正在查看虚拟机的用户界面,请单击右下角的文件夹图标。

如果主机端和虚拟机端的目录都设置正确,则有可能挂载该目录。

 

第三级:替换 mount.vboxsf 符号链接

最后,这次奏效的解决方法是更改​​ mount.vboxsf 符号链接的目标位置。

实际情况是,mount.vboxsf 的实际实体(即用于创建共享文件夹的挂载命令)实际上有所不同。

哪个 mount.vboxsf /sbin/mount.vboxsf ls -al | grep vboxsf mount.vboxsf -> /usr/lib64/VBoxGuestAdditions/mount.vboxsf

这并不意味着该文件不存在;它确实存在于路径 /usr/lib64/VBoxGuestAdditions/mount.vboxsf 中。

那么,应对这种情况的办法是:

# cd /sbin sudo ln -sf /usr/lib/VBoxGuestAdditions/mount.vboxsf mount.vboxsf

只需将符号链接的目标位置更改为 VBoxGuestAdditions 下的 mount.vboxsf,该 VBoxGuestAdditions 也位于 /usr/lib 下。

如果设置为自动挂载,请重启虚拟机,然后使用 df 命令可以看到它已正确挂载。

由于操作系统是 64 位版本的 CentOS,/usr/lib64 应该没问题,但实际情况似乎并非如此。
我怀疑这是 Guest Additions CD 安装程序导致的,Oracle,您怎么看?

这似乎是在我更新内核模块之后发生的。

更新虚拟机内核似乎在很多方面都存在风险。

就这样。

如果您觉得这篇文章对您有帮助,请点个“赞”!
3
加载中...
3票,平均分:1.00/13
30,678
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

万代洋一

我的主要工作是开发社交游戏的Web API,但幸运的是,我也有机会参与其他各种任务,包括市场营销。
我在Beyond中的图像版权采用CC0协议。