Linux 修改默认启动内核方法

7次阅读

Linux 修改默认启动内核方法

Linux 修改默认启动内核,核心是调整 GRUB 启动菜单的默认选项,让系统每次开机自动加载指定的内核版本。这通常通过修改 /etc/default/grub 文件并更新 GRUB 配置实现,无需手动编辑 GRUB 菜单项或修改内核镜像本身。

确认当前可用内核列表

执行以下命令查看已安装的内核及 GRUB 中对应的菜单项顺序:

ls /boot/vmlinuz-*

再运行:

grep "menuentry" /boot/grub/grub.cfg | cut -d "'" -f2

输出会列出所有可启动项名称(如“Ubuntu, with Linux 6.5.0-15-generic”),从上到下编号为 0、1、2…… 这个序号将用于设置默认启动项。

设置默认启动内核序号

编辑 GRUB 主配置文件:

sudo nano /etc/default/grub

找到这一行:

GRUB_DEFAULT=0

将其改为对应目标内核的序号(例如想默认启动第 2 项,就设为 GRUB_DEFAULT=1);也可直接写内核名(更稳妥,避免序号变动):

  • GRUB_DEFAULT="Ubuntu, with Linux 6.5.0-15-generic"(注意:必须与 grub.cfg 中显示的完整菜单名完全一致,包括空格和标点)
  • 若不确定,可先用序号临时设置,确认无误后再改回名称方式

更新 GRUB 配置并重启

保存修改后,必须重新生成 GRUB 配置文件才能生效:

  • Ubuntu/Debian 系统:sudo update-grub
  • RHEL/CentOS/Fedora 系统:sudo grub2-mkconfig -o /boot/grub2/grub.cfg

完成后重启系统,即可按新设置默认启动指定内核。

(可选)移除旧内核释放空间

长期积累多个旧内核会占用 /boot 分区空间。确认新内核稳定运行后,可安全卸载旧版本:

  • Ubuntu/Debian:sudo apt autoremove --purge(自动清理未使用的内核包)
  • RHEL/CentOS:sudo yum remove $(rpm -q kernel | grep -v $(uname -r))
  • Fedora:sudo dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)

操作前建议保留至少一个备用内核(比如当前运行的和上一版),以防新内核异常无法进系统。

text=ZqhQzanResources