在 Red Hat EL 版本 5 和 6 中,我们可以轻松更新,/etc/grub.conf
以防我们想更改内核默认变量
For example , grub.conf on redhat 5
default=0
timeout=5
#splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-410.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-410.el5 ro root=/dev/rootvg/slash
initrd /initrd-2.6.18-410.el5.img
title Red Hat Enterprise Linux Server (2.6.18-409.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-409.el5 ro root=/dev/rootvg/slash
initrd /initrd-2.6.18-409.el5.img
从这里开始,/etc/grub.conf
如果我们想从内核 2.6.18-409
版本启动,那么我们只需更改default=1
。因此,下次启动时,操作系统将以旧内核启动
RHEL7 非常不同。我在 RHEL7 中发现了/boot/grub2/grub.cfg
但我不明白如何更改文件以便从其他内核启动,就像我在 RHEL5 上所做的那样。
答案1
更改GRUB_DEFAULT=0
为/etc/default/grub
您想要的数字,现在您需要使用重新生成 grub2 配置grub2-mkconfig -o /boot/grub2/grub.cfg
答案2
如何在 Redhat 7 版本上更改 GRUB 内核
要列出系统启动时显示的所有菜单项,请发出以下命令:
# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : Red Hat Enterprise Linux Server (3.10.0-327.18.2.el7.x86_64) 7.2 (Maipo)
1 : Red Hat Enterprise Linux Server (3.10.0-327.10.1.el7.x86_64) 7.2 (Maipo)
2 : Red Hat Enterprise Linux Server, with Linux 0-rescue- b2c5e6a1c5ea4cb5be82100bd7dc3469
如何验证当前条目是什么(/etc/default/grub 中的当前内核)
# grub2-editenv list
saved_entry=1
这意味着 grub 配置中的当前内核版本是:3.10.0-327.10.1.el7.x86_64
让我们检查一下机器上的当前内核版本:
# uname -r
3.10.0-327.10.1.el7.x86_64
现在让我们从 GRUB 配置中更改内核版本,以便 Linux 可以使用更高的内核启动 - 3.10.0-327.18.2.el7.x86_64 ,
记住,从 awk 命令中我们得到条目编号 0
因此设置应如下
# grub2-set-default 0
现在我们通过以下方式检查新的 GRUB 配置
# grub2-editenv list
saved_entry=0
所以现在新的 GRUB 配置设置为内核版本:3.10.0-327.18.2.el7.x86_64
现在我们重启机器
# Reboot
重启后,Linux 已使用新内核
# uname -r
3.10.0-327.18.2.el7.x86_64