我在我的流浪汉中遇到了一个奇怪的错误。所以我使用VirtualBox创建了一个新的ubuntu / trusty64虚拟机(如果有人关心的话,在OS X上)。
一切都很好......
然后我根据instructions安装了Docker,基本上涉及运行
wget -qO- https://get.docker.com/ | sh
这也很好。
然后我去重启VM,退出ssh shell,然后运行vagrant reload
,我收到此错误消息。
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:
mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant
The error output from the last command was:
stdin: is not a tty
/sbin/mount.vboxsf: mounting failed with the error: No such device
有什么想法吗?
答案 0 :(得分:13)
我遇到了类似的问题。安装时看起来像Docker(以及可能的其他工具)将更新Ubuntu/Trusty64
来宾中的内核版本。由于Ubuntu/Trusty64
中预装的VBox GuestAdditions是专门针对原始内核版本构建的,因此Guest Additions将在下一个vagrant up
或vagrant reload
中停止工作。 Docker安装的新内核启动。此时,Vagrant不再能够自动挂载/vagrant
文件夹(或任何已同步的文件夹),因为Guest Additions是针对不同的内核构建的。
要让它们再次运行,您必须针对Docker安装的新内核版本重建GuestAdditions。
幸运的是,Vagrant中有一个名为vagrant-vbguest
的插件,当插件检测到需要重建时,它会负责自动重建Guest Additions(例如,当guest虚拟机中的内核发生变化时,或者你在主机中升级了VirtualBox版本
所以在我的情况下,解决它的简单方法是:
$ vagrant plugin install vagrant-vbguest
$ sudo apt-get install linux-headers-$(uname -r)
$ vagrant reload
感谢vagrant-vbguest
插件,新的VBox GuestAdditions将针对新版本的内核自动重建(您将在上面的第二步中为其下载所需的标头)。
一旦GuestAdditions恢复状态,同步文件夹应该再次运行,/vagrant
的映射应该成功。
试一试。