Mic*_*Osl 5 grub2 virtualbox vagrant
我有一个带有 Ubuntu 12.04 LTS 的 Vagrant 盒子。有时在强制关机后(例如因为机器没有响应),vagrant box 下次无法启动。
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
Run Code Online (Sandbox Code Playgroud)
Virtualbox 中的预览屏幕截图表明该框挂在 grub 阶段,永远等待用户输入以选择内核。

所以每次出现这种情况,我都会vb.gui = true在Vagrantfile中设置,重启机器,选择内核手动启动。有趣的是,在选择内核一次后,随后的无头启动再次正常工作 - 直到下一次不正常的机器关闭。
我的问题是:有没有更优雅的方式不需要人工干预来防止强制关机后 vagrant box 挂在 grub 内核选择界面?
首先获取机器id
# Before v1.1
# MACHINE_ID=$(awk -F\" '{print $6}' .vagrant)
# After v1.1
MACHINE_ID=$(cat .vagrant/machines/default/virtualbox/id)
Run Code Online (Sandbox Code Playgroud)
关闭虚拟机电源
VBoxManage controlvm ${MACHINE_ID} poweroff
Run Code Online (Sandbox Code Playgroud)
然后使用 GUI 控制台启动机器
VBoxManage startvm ${MACHINE_ID}
Run Code Online (Sandbox Code Playgroud)
等待它启动、登录、运行:
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
成功后关闭
VBoxManage controlvm ${MACHINE_ID} poweroff
Run Code Online (Sandbox Code Playgroud)
之后,vagrant up 将正常启动你的虚拟机
小智 1
添加到/etc/default/grub您的盒子:
GRUB_RECORDFAIL_TIMEOUT=0
Run Code Online (Sandbox Code Playgroud)
并运行:
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5846 次 |
| 最近记录: |