使用 grubby工具进行多内核管理和切换的核心操作
1.验证多内核支持
首先,确认您的系统是否已安装多个内核版本。
1.检查当前运行的内核
[root@localhost ~]# uname -r
6.12.0-55.9.1.el10_0.x86_64
这个命令会显示当前正在使用的内核版本号。
2.列出所有已安装的内核包
[root@localhost ~]# rpm -qa kernel
kernel-6.12.0-55.9.1.el10_0.x86_64
kernel-6.12.0-55.39.1.el10_0.x86_64
2.使用 grubby查询和设置内核
grubby是 RHEL/CentOS 等系统上用于管理引导加载程序配置的强大工具。
1.查看所有可启动的内核条目
这是最关键的一步,它能显示 GRUB 菜单中所有可用的内核选项及其详细信息
[root@localhost ~]# sudo grubby --info=ALL
index=0
kernel="/boot/vmlinuz-6.12.0-55.39.1.el10_0.x86_64"
args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=297af704-39de-4c54-bd4b-f75e21969479 rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap rhgb quiet $tuned_params"
root="/dev/mapper/almalinux-root"
initrd="/boot/initramfs-6.12.0-55.39.1.el10_0.x86_64.img $tuned_initrd"
title="AlmaLinux (6.12.0-55.39.1.el10_0.x86_64) 10.0 (Purple Lion)"
id="54ca88d4326e4d98bac0c068f2ef19f5-6.12.0-55.39.1.el10_0.x86_64"
index=1
kernel="/boot/vmlinuz-6.12.0-55.38.1.el10_0.x86_64+debug"
args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=297af704-39de-4c54-bd4b-f75e21969479 rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap rhgb quiet $tuned_params"
root="/dev/mapper/almalinux-root"
initrd="/boot/initramfs-6.12.0-55.38.1.el10_0.x86_64+debug.img $tuned_initrd"
title="AlmaLinux (6.12.0-55.38.1.el10_0.x86_64+debug) 10.0 (Purple Lion) with debugging"
id="54ca88d4326e4d98bac0c068f2ef19f5-6.12.0-55.38.1.el10_0.x86_64+debug"
index=2
kernel="/boot/vmlinuz-6.12.0-55.9.1.el10_0.x86_64"
args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=297af704-39de-4c54-bd4b-f75e21969479 rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap rhgb quiet $tuned_params"
root="/dev/mapper/almalinux-root"
initrd="/boot/initramfs-6.12.0-55.9.1.el10_0.x86_64.img $tuned_initrd"
title="AlmaLinux (6.12.0-55.9.1.el10_0.x86_64) 10.0 (Purple Lion)"
id="54ca88d4326e4d98bac0c068f2ef19f5-6.12.0-55.9.1.el10_0.x86_64"
index=3
kernel="/boot/vmlinuz-0-rescue-54ca88d4326e4d98bac0c068f2ef19f5"
args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=297af704-39de-4c54-bd4b-f75e21969479 rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap rhgb quiet"
root="/dev/mapper/almalinux-root"
initrd="/boot/initramfs-0-rescue-54ca88d4326e4d98bac0c068f2ef19f5.img"
title="AlmaLinux (0-rescue-54ca88d4326e4d98bac0c068f2ef19f5) 10.0 (Purple Lion)"
id="54ca88d4326e4d98bac0c068f2ef19f5-0-rescue"
请重点关注输出中的 index(索引号)和 title(在启动菜单中显示的标题),它们用于后续设置。
2.查询当前默认启动的内核
在修改前,先查看当前的默认设置。
# 查看默认内核的完整路径
[root@localhost ~]# sudo grubby --default-kernel
/boot/vmlinuz-0-rescue-54ca88d4326e4d98bac0c068f2ef19f5
# 查看默认内核在菜单中的索引号
[root@localhost ~]# sudo grubby --default-index
3
3.设置新的默认启动内核
您可以通过两种方式指定新的默认内核,推荐使用内核路径法,更为精确
方法一:通过内核路径设置
[root@localhost ~]# grubby --set-default="/boot/vmlinuz-6.12.0-55.39.1.el10_0.x86_64"
The default is /boot/loader/entries/54ca88d4326e4d98bac0c068f2ef19f5-6.12.0-55.39.1.el10_0.x86_64.conf with index 0 and kernel /boot/vmlinuz-6.12.0-55.39.1.el10_0.x86_64
方法二:通过索引号设置
[root@localhost ~]# sudo grubby --set-default-index=0
The default is /boot/loader/entries/54ca88d4326e4d98bac0c068f2ef19f5-6.12.0-55.39.1.el10_0.x86_64.conf with index 0 and kernel /boot/vmlinuz-6.12.0-55.39.1.el10_0.x86_64
例如,如果 --info=ALL显示目标内核的 index=1,则命令为:
sudo grubby --set-default-index=1。
4.验证设置是否成功
执行设置命令后,再次运行查询命令,确认默认内核已更改。
[root@localhost ~]# sudo grubby --default-kernel
/boot/vmlinuz-6.12.0-55.39.1.el10_0.x86_64
3.使配置生效并验证
修改默认内核后,需要重启系统才能使用新内核启动。
1.重启系统
sudo reboot
2.验证运行中的内核
系统重启并登录后,执行以下命令检查当前运行的内核版本是否与设置一致。
[root@localhost ~]# uname -r
6.12.0-55.39.1.el10_0.x86_64
谨慎操作:修改内核启动项是系统级操作,建议在生产环境操作前在测试环境验证。操作前可备份重要配置文件,如/etc/default/grub。