在 openEuler 25.09 中,要将系统默认启动项改为新编译的内核,核心思路就是让 GRUB2 引导器知道新内核的存在,并将其设为默认项。
这里有三种不同复杂度的方法,你可以根据自己的情况选择。
方法一:使用 grubby 命令(最简单高效)
这个方法直接、安全,推荐的默认方式。它会直接修改 GRUB 配置,无需你关心内核的具体文件名。
确认新内核已在列表中:
新内核安装后,首先查看它在 GRUB 菜单中的索引号。这个索引号从 0 开始计数。
grubby --info=ALL | grep -E "^index|^title"
输出会清晰列出每个启动项的索引和对应的内核版本。
设置新内核为默认项:
找到新内核的索引(比如是 0),运行以下命令将其设为默认启动项:
sudo grubby --set-default-index=0
验证并重启:
检查默认项是否设置成功,然后重启系统即可。
grubby --default-indexsudo reboot
方法二:修改 /etc/default/grub 配置文件(最通用)
这个方法比较通用,适合熟悉配置文件、希望进行更全面定制的用户。
编辑主配置文件:
使用 vim 或 nano 编辑 /etc/default/grub:
sudo vim /etc/default/grub
修改 GRUB_DEFAULT 参数:
保存并更新 GRUB 配置:
保存文件后,务必运行以下命令使修改生效:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这条命令会根据你的修改,重新生成 GRUB 的配置文件。
方法三:自定义 40_custom 文件(最灵活)
如果想完全手动控制启动菜单项,可以使用这个方法。
编辑自定义模板:
以 root 权限编辑 /etc/grub.d/40_custom:
sudo vim /etc/grub.d/40_custom
添加自定义菜单项:
在文件末尾,参考已有的内核启动项格式,为你新编译的内核添加一个入口。
menuentry 'My New Compiled Kernel' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2' # 请根据你的实际分区情况修改
linux /boot/vmlinuz-7.0.0 root=/dev/mapper/openeuler-root ro quiet
initrd /boot/initramfs-7.0.0.img
}
menuentry 后面的引号内是你在 GRUB 菜单中看到的名称。
关键:vmlinuz-7.0.0 和 initramfs-7.0.0.img 需要替换为你实际编译生成的内核镜像和初始内存盘的文件名。
set root 和 root= 参数需要根据你的分区情况(可用 lsblk 命令查看)进行修改。
赋予执行权限并更新 GRUB 配置:
最新评论