从 fstab 挂载 Virtualbox 共享文件夹失败;启动完成后工作

Ben*_*Ben 44 virtualbox fstab mount automount

我在 Virtualbox 4.3 中安装了 Ubuntu 13.10。主机是Windows。

我有几个由 /etc/fstab 挂载的 Virtualbox 共享文件夹。直到最近,此设置还可以正常工作,但是从 Ubuntu 13.04 和 Virtualbox 4.2(基本上同时)升级后,fstab 安装停止工作。我在启动过程中收到以下错误:

An error occurred while mounting /home/benme/Documents.
keys:Press S to skip mounting or M for manual recovery
Run Code Online (Sandbox Code Playgroud)

按 M 进行手动恢复,然后尝试手动挂载也失败:

root@benme-vb:~# cd /home/benme
root@benme-vb:/home/benme# mount Documents
/sbin/mount.vboxsf: mounting failed with the error: No such device
Run Code Online (Sandbox Code Playgroud)

但是,如果我在启动期间跳过安装,等待 Unity 启动,然后在 shell 中手动安装,一切正常:

benme-vb ~ % ls Documents
benme-vb ~ % sudo mount Documents
[sudo] password for benme: 
benme-vb ~ % ls Documents
    # actual file list omitted
Run Code Online (Sandbox Code Playgroud)

请注意,当我手动挂载时,我让挂载从 /etc/fstab 获取所有选项,并且它可以工作。这向我表明这是某种时间问题,Virtualbox 还没有“准备好”在启动期间运行 /etc/fstab 挂载点时提供共享文件挂载。

这是 fstab 行,只是为了完整性:

Documents       /home/benme/Documents   vboxsf  uid=benme,gid=benme,dmode=774,fmode=664     0   0
Run Code Online (Sandbox Code Playgroud)

我可以从 Ubuntu 方面做些什么吗?或者有没有人碰巧从 Virtualbox 的角度了解更多?

我发现了一份关于 Virtualbox 错误跟踪器的旧报告,具有相同的症状,但在这种情况下,用户更新了 Virtualbox 而没有更新他们的来宾添加并解决了问题;这不会发生在这里,我肯定已经安装了 4.3 来宾添加。

Ric*_*ner 49

我也遇到了这个问题。我/var/www使用 VBox 共享文件夹功能挂载,所以这很烦人。

我找到的解决方案是vboxsf在安装文件系统之前强制提前加载模块。只需vboxsf/etc/modules.

另一种方案是在一套NOAUTO/etc/fstab和手动安装在驱动器/etc/rc.local,但这并不是一个好的解决方案,因为我那个时候阿帕奇已经开始,一直无法找到任何东西/var/www

  • @qodeninja 正如我在第二段中所说:“只需在 `/etc/modules` 中单独添加一行 `vboxsf`。 (2认同)

deo*_*ren 23

除了理查德·特纳 (Richard Turner) 建议将vboxsf自己的一行/etc/modules添加_netdev/etc/fstab. 我在 Ubuntu 12.04 LTS 上进行了测试,这似乎为挂载成功增加了适当的延迟。

我的/etc/fstab条目:

dev /media/dev vboxsf defaults,_netdev 0 0

  • 这对我有用,即使不使用特纳的解决方案。也很有意义,因为 [Ubuntu Community Help page for fstab options](https://help.ubuntu.com/community/Fstab#Options) 说,“`_netdev` - 这是一个网络设备,挂载它打开网络后。” 我确实**不必**在`/etc/modules`中加载`vboxsf`,只需添加`_netdev`即可! (4认同)

Tor*_*ben 5

在上次更新(VirtualBox 4.3.18,Ubuntu 14.04)后,Richard 的修复对我不起作用。幸运的是,我能够通过vboxsf正确加载内核来修复它:

# echo "vboxsf" >> /etc/initramfs-tools/modules
# update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

第一个命令添加一个参数以将模块加载到内核,第二个命令更新 init 文件系统。重新启动后,我可以再次使用我的 fstab-mounts :)

警告:如果无法装载共享文件夹,引导过程可能会冻结。因此,在将模块添加到 initramfs 之前,请测试您的配置。如果您的系统仍然挂起,您可以在恢复模式下启动以解决问题。