在 CentOS 中“替换默认内核”通常有两种含义:
下面分情况说明(适用于 CentOS 7 / 8 / Stream)。
uname -r
查看已安装内核:
rpm -qa | grep kernel
查看 GRUB 启动项:
# CentOS 7
cat /boot/grub2/grub.cfg | grep menuentry
# CentOS 8 / Stream
ls /boot/loader/entries/
查看可用内核索引:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
设置默认内核(例如 index 0):
grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
验证:
grub2-editenv list
查看内核顺序:
grubby --info=ALL
设置默认内核:
grubby --set-default /boot/vmlinuz-<新内核版本>
例如:
grubby --set-default /boot/vmlinuz-5.14.0-362.el9.x86_64
验证:
grubby --default-kernel
重启生效:
reboot
⚠️ 谨慎操作,至少保留一个可用内核
yum remove kernel-<版本>
# 或
dnf remove kernel-<版本>
dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)
设置最新内核为默认(通常自动已是):
grubby --set-default /boot/vmlinuz-$(uname -r)
如果是 UEFI 启动:
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
重启后还是旧内核?
检查 grubby --default-kernel 和 BIOS 启动顺序
内核不兼容?
保留旧内核,方便回滚
如果你能说明:
我可以给你更精确的操作命令。