如何在 redhat 7 上配置 grub.cfg 文件以便从特定内核启动

如何在 redhat 7 上配置 grub.cfg 文件以便从特定内核启动

在 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

相关内容