在 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
