linux切换默认启动内核本质是配置grub引导时自动选中指定内核条目,需先通过uname -r、dpkg -l、ls /boot/vmlinuz-*和grep menuentry /boot/grub/grub.cfg确认现状,再通过修改/etc/default/grub中grub_default为索引号或精确菜单名(如"advanced options for ubuntu>ubuntu, with linux 5.15.0-73-generic"),或使用grubby --set-default-index=n等命令设置,最后执行update-grub或grub2-mkconfig更新配置并重启验证。

Linux 切换默认启动内核,本质是让 GRUB 在开机时自动选中你指定的内核条目,而不是默认加载最新安装的那个。操作不涉及运行时替换,只改引导配置,关键在“找得到、设得对、更新生效”三步。
先确认当前和目标内核情况
避免误操作,先看清现状:
- 查正在跑的内核:uname -r
- 查已安装的所有内核(Ubuntu/Debian):dpkg -l | grep 'linux-image-.*-generic'
- 查 /boot 下实际存在的内核文件:ls /boot/vmlinuz-*
- 看 GRUB 菜单结构(含子菜单):grep 'menuentry' /boot/grub/grub.cfg | cat -n(行号从 0 开始计)
设置默认内核的两种可靠方式
推荐用以下任一方法,别直接改 /boot/grub/grub.cfg——它会被系统自动覆盖。
- 按菜单位置设(简单通用):编辑 /etc/default/grub,把 GRUB_DEFAULT=0 改成对应行号,比如目标在第 3 行(序号为 2),就写 GRUB_DEFAULT=2;若在“Advanced options”子菜单里第 2 项,写 GRUB_DEFAULT="1>1"(主菜单第 2 项 > 子菜单第 2 项)
- 按菜单名称设(更精确):同样改 /etc/default/grub,例如设为 GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-73-generic",名称必须完全匹配 grub.cfg 中的 menuentry 文字
让设置真正生效
改完配置文件后,必须刷新 GRUB 才能起作用:
- Ubuntu/Debian:sudo update-grub
- CentOS/RHEL 7/8:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- RHEL 8/9 或 CentOS 8+ 也可用:sudo grubby --set-default-index=N 或 sudo grubby --set-default=/boot/vmlinuz-xxx(立即生效,无需手动更新 grub.cfg)
验证与回退准备
重启后马上验证是否成功:
- 进系统后运行 uname -r,确认版本一致
- 若启动失败,开机时按住 Shift(BIOS) 或 Esc(UEFI) 调出 GRUB 菜单,手动选旧内核进入
- 建议保留至少两个可用内核(当前 + 一个稳定备选),卸载旧内核前确保不删正在用的:sudo apt autoremove --purge linux-image-5.10.*(Ubuntu)











