双系统启动顺序错乱,每次开机都要手动选择?别烦恼,调整GRUB默认启动项其实并不复杂。无论你想固定Windows优先启动,还是让UOS默认引导,掌握以下五种方法后,你就能轻松掌控开机引导的主动权,让系统启动更加顺手。

一、确认双系统启动项索引编号
动手操作前,先要搞清楚“门牌号”。GRUB菜单里每个系统都对应一个从0开始的索引编号。要想修改启动顺序,第一步就是准确找到Windows和UOS各自的编号,这是所有后续操作的基础,千万别搞错了。
具体怎么查询呢?打开终端,输入以下命令:
grep "menuentry" /boot/grub/grub.cfg | cat -n
执行命令后,你会看到一串带编号的条目。注意,这里显示的行号(比如第1行)对应的实际索引需要减1。也就是说,如果“统信UOS 桌面版”显示在第1行,它的索引就是0;如果“Windows Boot Manager”在第4行,索引就是3。请记下这个数字。
如果上述命令没有输出结果,你的电脑可能是UEFI启动方式。别担心,试试这个路径:
grep "menuentry" /boot/efi/EFI/uniontech/grub.cfg | cat -n
二、通过GRUB_DEFAULT直接指定默认启动项
知道了索引编号,最直接的方法就是告诉GRUB:“我默认想启动哪一个”。这种方式不改变菜单的物理顺序,只是指定一个默认项,操作简单,立即生效。
首先,用管理员权限编辑配置文件:
sudo vim /etc/default/grub.d/11_dde.cfg
在文件中找到或添加一行以 GRUB_DEFAULT 开头的配置。这里有两种设定方式:
• 如果你知道Windows的索引是3,就直接设为:GRUB_DEFAULT=3
• 或者,你也可以用菜单项的全名来匹配:GRUB_DEFAULT="Windows Boot Manager"
修改完成后,保存退出。最后,别忘了让改动生效,执行:sudo update-grub
三、调整os-prober探测脚本执行优先级
你有没有发现,Windows启动项总是排在所有Linux项后面?这其实是os-prober这个“侦察兵”的默认行为。它负责发现其他系统,但生成的项目顺序靠后。我们可以通过给它“升职”——修改脚本文件名来改变优先级。
首先,确保系统里已经安装了这个工具:sudo apt install os-prober
接着,需要启用它。编辑主配置文件:sudo vim /etc/default/grub,确认里面有这两行:
GRUB_DISABLE_OS_PROBER=false
GRUB_ENABLE_BLSCFG=false
关键一步来了:通过重命名脚本文件,改变它的执行顺序。数字越小,优先级越高。
sudo mv /etc/grub.d/30_os-prober /etc/grub.d/08_os-prober
然后,先让os-prober重新探测一遍系统,再更新GRUB配置:
sudo os-prober && sudo grub-mkconfig -o /boot/grub/grub.cfg
这样一来,Windows的启动项很可能会跑到菜单前面去。
四、使用grub-customizer图形化拖拽排序
对命令行感到头疼?那就用图形界面来解决。grub-customizer这款工具就像给GRUB菜单装了一个“鼠标拖拽排序”功能,所见即所得,对新手特别友好。
安装它只需要一条命令:pkexec apt-get install grub-customizer
安装完成后,在应用列表里找到并打开它。在主界面,你会看到所有启动项的列表。找到那个“Windows Boot Manager”,直接用鼠标点住,把它拖到你想要的位置(比如最顶部)。
调整满意后,点击窗口右上角的“保存”按钮。工具会自动在后台帮你处理好所有配置文件的更新,无需你再手动敲任何命令。
五、手动编辑40_custom添加高优先级启动项
如果以上方法都失效了,比如os-prober根本检测不到你的Windows,那就得祭出终极手动方案:自己写一个启动项,并把它放到优先级最高的脚本里。这相当于绕开自动检测,直接给GRUB菜单“插队”。
创建一个新的脚本文件,并给它一个靠前的编号(比如09):
sudo vim /etc/grub.d/09_windows_first
将以下内容复制进去。**请注意,示例中的磁盘路径(`/dev/nvme0n1p1`)和分区号(`hd0,gpt1`)需要替换成你电脑上的实际值。**
#!/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
}
保存退出后,别忘了给这个脚本加上可执行权限:
sudo chmod +x /etc/grub.d/09_windows_first
最后,刷新GRUB配置,你的自定义Windows项就会牢牢占据菜单前列了:
sudo update-grub
