盒子
盒子

更新 vagrant box 中的 virtual box guest

最近因为工作重心又转回后端,有些技术探索需要在虚拟机里面进行,于是又翻出来了vagrant重新操练起来。

导入了之前建立的 box,结果 vagrant up 启动虚拟机的时候报错:

Failed to mount folders in Linux guest. This is usually because the “vboxsf” file system is not available.

应该是之前制作 box 的时候,virtual box还是 4.x 版本,而新的 5.22 需要安装/升级 VirtualBox guest tools.

去网上查了一下,StackOverflow 上推荐安装 vagrant-vbguest plugin。vagrant-vbguest 安装时各种坑哪⊙▽⊙ 先是怎么都安装不成功,发现是由于 gfw 屏蔽 rubyGems 造成的。按照豆瓣网友的建议,直接替换 vagrant 内嵌 Ruby 脚本中的 gem 地址 ,将 gem 库改成使用阿里云的国内镜像也没成功。还是各种安不上。最后,好不容易自己架了个 VPN 安装成功了,但是vagrant 的设置文件里面怎么也无法识别config.vbguest 设置项 !(╯°□°)╯︵ ┻━┻

忽然想到自己莫非傻了,这事的本质不就是给 VirtualBox 虚拟机安装个guest tools,直接映射一下安装不就结了。

于是在菜单中选择“设备” -> “光驱” -> “分配虚拟光盘” 将guest tools 镜像加进去。

Windows 下 VBGutest 虚拟盘就是 VirtualBox 的安装目录下。 MacOS 下它一般位于 /Applications/VirtualBox.app/Contents/MacOS 目录下

然后在命令控制台界面中映射好光驱,运行安装脚本即可:

`
1
2
3
sudo mount /dev/cdrom /media/cdrom
cd /media/cdrom
sudo ./VBoxLinuxAdditions.sh

重启后,一切运行正常。