我在 Mac OS X virtualbox 主机内有几个 ubuntu 来宾。当我启动它们时,大约有一半的时间它们正确启动并进入登录屏幕/启动所有服务。另一半时间,他们坐着等我选择操作系统。当我坐在它们面前时这很好,但我希望虚拟机在机器启动时自动启动。
值得注意的是,如果我从来宾操作系统中重新启动,似乎不会发生同样的问题。
我尝试过的:
我尝试取消注释GRUB_HIDDEN_TIMEOUT
并运行update-grub
,这使得来宾操作系统更频繁地正确启动,但并不能解决问题。无头引导它们也没有帮助。
他们陷入困境的地方:
/etc/default/grub
:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
版本:
Grub 1.99-21ubuntu3.9
Ubuntu Server LTS
Virtualbox 4.2.10
答案1
为了扩展@nick的答案,这确实是记录失败功能。
但是,/etc/grub.d/00_header
您可以将以下行添加到/etc/default/grub
GRUB_RECORDFAIL_TIMEOUT=2
(或者无论你想要超时多长时间)然后运行sudo update-grub
答案2
所以,事实证明这是一个grub 的已记录功能。如果您的计算机异常关闭,它不会自动启动到操作系统。这就是为什么当我从操作系统内重新启动时问题从未发生。
如何禁用
以防万一该链接失效:
禁用 Grub2 的 recordfail 功能
对于大多数人来说,Grub 2 的这个新功能无疑是一件好事。但对于那些受到其中一个错误困扰或因其他原因想要禁用它的人:
/etc/grub.d/00_header
通过打开文件
sudo nano /etc/grub.d/00_header
寻找
if [ ${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=${GRUB_TIMEOUT}
fi
将其更改为
set timeout=5
保存文件并运行
sudo update-grub
答案3
您是否尝试过修改 /boot/grub/menu.lst 并将超时设置为 0?
答案4
您需要的是将 /etc/default/grub 中的 GRUB_TIMEOUT 设置为零。欲了解更多信息,请运行:info -f grub -n "Simple configuration"
vi /etc/default/grub
设置 GRUB_TIMEOUT=0
sudo update-grub
现在重新启动