Grub:重新启动到特定内核

Sjl*_*ver 4 grub2

我想寻求grub-reboot上班方面的帮助。

理论:根据这篇博客文章(和其他来源),我应该能够使用grub-reboot. 然而,这对我不起作用;grub 始终引导至默认内核。

这是我尝试过的:

$ grep GRUB_DEFAULT /etc/default/grub
GRUB_DEFAULT=saved
$ grep "menuentry " /boot/grub/grub.cfg 
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-43-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-43-generic-advanced-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-43-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-43-generic-recovery-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-36-generic-advanced-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-36-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-36-generic-recovery-f3a807d1-3fd6-4970-b741-5382e9801060' {

# Version 1, using the name
$ sudo grub-reboot "Ubuntu, with Linux 4.4.0-36-generic"

# Version 2, using the id
$ sudo grub-reboot gnulinux-4.4.0-36-generic-advanced-f3a807d1-3fd6-4970-b741-5382e9801060

# Version 3, counting
$ sudo grub-reboot 3
Run Code Online (Sandbox Code Playgroud)

这两个命令似乎都没有效果;重新启动后,我总是得到 4.4.0-43 内核。

注意:这是在 Ubuntu 16.04 Xenial 上。它是一台服务器机器,我在启动过程中无法访问控制台,所以我无法查看 grub 菜单:(

Win*_*nix 5

从命令行显示 Grub 菜单条目

我创建了一个脚本grub-menu.sh,以便轻松找到菜单项编号:

grub 菜单.png


使用 Grub 菜单条目号引导

如果你想重新启动进入内核,4.4.0-131你可以使用:

sudo grub-reboot "1>6"
Run Code Online (Sandbox Code Playgroud)

获取 bash 脚本grub-menu.sh

您可以在此问答中找到 bash 脚本:无需重新启动即可显示 grub 菜单和选项?