如何在 grub 中将某个版本的 Linux 内核设为默认版本?

如何在 grub 中将某个版本的 Linux 内核设为默认版本?

我使用的是 Ubuntu 14.04,Linux 内核为 3.19.0.25。之前我使用 3.19.0.28 时遇到了一些问题,启动时屏幕冻结,使用 25 时没有遇到这些问题。所以我想将 25 设为默认内核。要切换到 25,我通常必须在 Grub 屏幕中选择高级启动选项并选择此 Linux 内核版本。

答案1

步骤1: 在终端中运行awk '/\$menuentry_id_option/ {print $(NF-1) }' /boot/grub/grub.cfg | less。这将告诉每个 grub OS 条目的唯一 ID。例如,我有以下输出:

'gnulinux-simple-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-advanced-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-4.1.0-040100rc2-generic-advanced-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-4.1.0-040100rc2-generic-recovery-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-3.19.0-28-generic-advanced-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-3.19.0-28-generic-recovery-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-3.19.0-26-generic-advanced-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-3.19.0-26-generic-recovery-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-3.13.0-63-generic-advanced-86df21bf-d95f-435c-9292-273bdbcba056'
'gnulinux-3.13.0-63-generic-recovery-86df21bf-d95f-435c-9292-273bdbcba056'

第2步 运行sudo sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT=X/g' /etc/default/grub; sudo update-grub。将 中的 X 替换GRUB_DEFAULT=X为与menuentry_id所需操作系统版本相对应的 。例如,如果我想使用内核 3.19.0-26 启动,我会将 x 替换为gnulinux-advanced-86df21bf-d95f-435c-9292-273bdbcba056>gnulinux-3.19.0-26-generic-advanced-86df21bf-d95f-435c-9292-273bdbcba056。如果您的内核选择不是“简单”选项,您需要将父子菜单 menuentry_id_option 添加为 grub 默认值的一部分。

步骤3:重新启动。确认您已使用uname -a或启动了适当的内核cat /proc/cmdline

注意:如果您从此命令获得输出,则您可能使用的是较新版本的 grub。此文档在菜单项 ID 方面有点过时,但可能会有所帮助:https://help.ubuntu.com/community/Grub2/Submenus#Submenu_Display

相关内容