grub启动项顺序混乱需修改配置并重新生成:可通过数字索引、完整名称或启用上次选择三种方式设默认项,调整os-prober脚本顺序可优化windows与麒麟显示位置。

您已成功进入银河麒麟V10桌面系统,但开机时GRUB引导菜单中显示的启动项顺序混乱、Windows和麒麟位置错乱,或新增内核后旧版本仍排在最前——这说明/boot/grub/grub.cfg中的启动项生成逻辑未按预期执行,必须通过修改源配置文件并重新生成来修正。
修改默认启动项(按数字索引)
该方法适用于菜单结构稳定、各系统位置长期不变的场景。索引从0开始计数,填错会导致启动错误系统甚至无法进系统。
第一步:按Ctrl+Alt+T打开终端,输入sudo vim /etc/default/grub并回车,输入当前用户密码。
第二步:按i进入编辑模式,找到GRUB_DEFAULT=0这一行。若Windows在GRUB菜单中显示为第三项,就将等号后改为2;若麒麟系统在第一项,保持为0即可。
第三步:按Esc退出编辑,输入:wq保存退出。
第四步:执行sudo update-grub,等待输出出现Generating grub configuration file ... done提示。
第五步:运行sudo reboot重启验证。注意:【修改前务必确认目标项实际索引,误填为-1或超出范围会导致黑屏】
用完整名称指定默认项
当系统更新后自动插入新内核或新增恢复选项,数字索引容易偏移,此时用精确名称更可靠。
方法一:重启电脑,在开机自检阶段反复按Esc(UEFI模式)调出GRUB菜单,用方向键停在Windows启动项上,看清完整显示名,例如Windows Boot Manager (on /dev/nvme0n1p1)。
方法二:回到桌面,终端中执行sudo vim /etc/default/grub,将GRUB_DEFAULT=0整行替换为GRUB_DEFAULT="Windows Boot Manager (on /dev/nvme0n1p1)"——【英文双引号不可省略,名称必须与菜单中完全一致,包括括号和空格】。
方法三:保存退出后,运行sudo update-grub,再sudo reboot。
启用上次选择即下次默认
适合每天在麒麟和Windows之间切换的用户,不用每次算索引,也不用记名称。
① 打开终端,执行sudo pluma /etc/default/grub(图形化编辑器更易操作)。
② 将GRUB_DEFAULT=0改为GRUB_DEFAULT=saved。
③ 在文件末尾另起一行,输入GRUB_SAVEDEFAULT=true。
④ 保存关闭,运行sudo update-grub。
⑤ 重启,在GRUB菜单中手动选中Windows并回车启动;下次开机,它就会自动高亮并启动Windows。
调整启动项显示顺序
GRUB菜单里Windows总在最后、麒麟内核版本杂乱无章?这不是靠改GRUB_DEFAULT能解决的,得干预os-prober扫描顺序。
第一步:执行sudo mv /etc/grub.d/30_os-prober /etc/grub.d/05_os-prober,把Windows探测脚本提前执行。
第二步:如果希望麒麟内核按新版在前,执行sudo chmod -x /etc/grub.d/10_linux_zfs(禁用ZFS干扰),再确认/etc/grub.d/10_linux权限为755。
第三步:运行sudo update-grub,观察输出中Windows是否出现在菜单靠前位置。











