在 virtualbox 中作为来宾启动时,grub 等待用户输入

Nic*_*ell 3 grub headless virtualbox

我在 Mac OS X 虚拟机主机中有几个 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"
Run Code Online (Sandbox Code Playgroud)

版本:

Grub 1.99-21ubuntu3.9
Ubuntu Server LTS
Virtualbox 4.2.10
Run Code Online (Sandbox Code Playgroud)

小智 5

为了扩展@nick 的回答,这确实是记录失败功能。

但是,/etc/grub.d/00_header您可以将以下行添加到/etc/default/grub

GRUB_RECORDFAIL_TIMEOUT=2
Run Code Online (Sandbox Code Playgroud)

(或者无论您希望超时多长时间)然后运行 sudo update-grub