银河麒麟系统升级内核后因兼容性问题卡在开机界面,需切回旧内核:可通过修改grub_default索引值、按内核名称精确设置或执行grub2-set-default命令三种方式实现,均需运行sudo update-grub或grub2-editenv同步生效。

银河麒麟系统升级内核后默认启动新版本,但新内核存在兼容性问题导致卡在开机界面,需将默认启动项切回已验证稳定的旧内核版本。
通过GRUB配置文件指定默认启动项索引
该方法适用于GRUB菜单结构固定、各内核条目顺序长期不变的场景。索引从0开始计数,修改后需重新生成引导配置才生效。
使用Ctrl+Alt+T打开终端,执行sudo su获取管理员权限,输入当前用户密码(输入时无回显)。
运行vim /etc/default/grub编辑主配置文件。
按i进入插入模式,找到GRUB_DEFAULT=0这一行,将等号右侧数字改为旧内核在GRUB菜单中的位置编号——例如旧内核显示在第二项,则设为【GRUB_DEFAULT=1】。
按Esc退出编辑模式,输入:wq保存并退出。
执行sudo update-grub使修改生效,重启系统验证。
按内核名称精确设置默认项
当系统更新后新增内核或救援项导致菜单序号偏移时,用名称匹配可避免手动重算索引出错。
方法一:先确认目标内核完整名称
重启系统,在开机自检阶段反复按Esc键调出GRUB菜单,观察旧内核条目完整显示名,如“Kylin Linux Advanced Server (4.19.90-23.8.v2101.ky10.x86_64) V10 (Tercel)”。
方法二:终端中直接设置
执行sudo vim /etc/default/grub,将GRUB_DEFAULT行改为GRUB_DEFAULT="Kylin Linux Advanced Server (4.19.90-23.8.v2101.ky10.x86_64) V10 (Tercel)",注意保留英文双引号。
保存退出后运行sudo update-grub,重启即可生效。
使用grub2-set-default命令快速切换
该命令直接写入UEFI环境变量,无需编辑配置文件,适合紧急恢复场景。
第一步:列出所有可用启动项
执行awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/kylin/grub.cfg(UEFI系统)或/boot/grub2/grub.cfg(Legacy BIOS),确认旧内核对应名称。
第二步:设置默认项
运行grub2-set-default "Kylin Linux Advanced Server (4.19.90-23.8.v2101.ky10.x86_64) V10 (Tercel)",名称必须与上一步输出完全一致,包括空格和括号。
第三步:验证设置是否成功
执行grub2-editenv list,检查saved_entry字段是否已更新为目标内核名称。
第四步:重启系统,立即生效。











