grub默认启动项可通过五种方法调整:一、查索引编号;二、设grub_default值;三、改os-prober脚本优先级;四、用grub-customizer图形拖拽;五、手动编辑09_windows_first脚本。

一、确认双系统启动项索引编号
GRUB菜单中各操作系统的显示顺序由其在grub.cfg文件中的物理排列位置决定,索引从0开始计数。准确获取Windows与UOS的索引值是调整启动顺序的前提,避免误设导致无法进入目标系统。
1、打开终端,执行命令:grep "menuentry" /boot/grub/grub.cfg | cat -n
2、等待输出完成,观察每行开头数字及对应名称,例如第1行显示menuentry '统信UOS 桌面版',则其索引为0;第4行显示menuentry 'Windows Boot Manager',则其索引为3。
3、若未输出任何结果,检查是否为UEFI系统并尝试:grep "menuentry" /boot/efi/EFI/uniontech/grub.cfg | cat -n
二、通过GRUB_DEFAULT直接指定默认启动项
该方法使用固定索引或精确菜单名称设定默认启动项,修改后立即生效且无需调整条目物理位置,适用于明确知道目标项索引或名称的用户。
1、编辑配置文件:sudo vim /etc/default/grub.d/11_dde.cfg
2、查找或新增GRUB_DEFAULT行,按需设置:
• 设为Windows(已知索引为3):GRUB_DEFAULT=3
• 设为Windows(使用名称匹配):GRUB_DEFAULT="Windows Boot Manager"
3、保存退出后执行:sudo update-grub
三、调整os-prober探测脚本执行优先级
os-prober负责扫描并生成其他操作系统的启动项,默认生成的条目位于Linux之后。通过修改脚本命名顺序,可强制Windows等外部系统条目前置显示,从而改变视觉与逻辑上的启动顺序。
1、确认已安装探测工具:sudo apt install os-prober
2、启用探测功能,编辑主配置:sudo vim /etc/default/grub,确保包含以下两行:
GRUB_DISABLE_OS_PROBER=false
GRUB_ENABLE_BLSCFG=false
3、重命名探测脚本以提升优先级:sudo mv /etc/grub.d/30_os-prober /etc/grub.d/08_os-prober
4、执行探测并刷新配置:sudo os-prober && sudo grub-mkconfig -o /boot/grub/grub.cfg
四、使用grub-customizer图形化拖拽排序
该工具提供直观界面,允许用户直接拖动启动项调整上下顺序,无需记忆索引或编辑脚本,所有变更实时映射到底层配置,适合不熟悉命令行的用户安全操作。
1、安装工具:pkexec apt-get install grub-customizer
2、启动应用:grub-customizer
3、在主列表中找到“Windows Boot Manager”条目,用鼠标按住并拖至顶部位置。
4、点击右上角“保存”按钮,工具将自动执行配置更新。
五、手动编辑40_custom添加高优先级启动项
当os-prober未能识别Windows或需完全绕过自动探测机制时,可通过手工编写menuentry并置于最低编号脚本中,确保其始终排在GRUB菜单最前端。
1、创建或编辑自定义脚本:sudo vim /etc/grub.d/09_windows_first
2、写入以下内容(请根据实际设备路径替换/dev/nvme0n1p1及分区号):
#!/bin/sh
exec tail -n +3 $0
menuentry "Windows Boot Manager" --class windows --class os {
insmod part_gpt
insmod fat
set root='(hd0,gpt1)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
3、赋予执行权限:sudo chmod +x /etc/grub.d/09_windows_first
4、刷新配置:sudo update-grub











