要让统信uos在grub启动菜单排第一,需修改/etc/grub.d/脚本前缀(如将30_os-prober改为08_os-prober)、确保执行权限、运行sudo update-grub;或用sudo efibootmgr设uefi启动顺序;还可通过grub_default="精确菜单名"指定默认项。

你想让统信UOS在GRUB启动菜单里排第一,而不是每次开机都得手动选它,或者想把Windows调到最上面方便双系统切换,就得调整启动项的显示顺序,不能直接改/boot/grub/grub.cfg,那是自动生成的文件。
重命名/etc/grub.d/脚本控制生成顺序
GRUB菜单项不是凭空出现的,而是由/etc/grub.d/目录下一批脚本按数字前缀顺序执行后拼出来的。数字越小,对应的操作系统条目就越靠前显示。
第一步:确认当前探测Windows的脚本名
打开终端,运行:sudo ls -l /etc/grub.d/ | grep os-prober,通常会看到30_os-prober这一行。
第二步:把它改成更小的数字前缀
执行命令:sudo mv /etc/grub.d/30_os-prober /etc/grub.d/08_os-prober。这一步会让Windows条目在UOS之后、其他系统之前生成,UOS本身由10_linux生成,天然靠前。
第三步:确保脚本有执行权限sudo chmod +x /etc/grub.d/08_os-prober。没权限的话,update-grub时会跳过它,Windows就又不见了。
第四步:重新生成菜单配置sudo update-grub。命令执行完会输出“Found linux image”和“Found Windows Boot Manager”等提示,说明两项都被识别并写入了新菜单。
用efibootmgr直接设UEFI固件启动优先级
如果你用的是UEFI模式(绝大多数新电脑都是),这个方法比改GRUB更底层、更彻底——它让电脑开机第一眼就去找UOS的EFI启动文件,压根不弹GRUB菜单。
方法一:查出UOS的UEFI启动编号
在终端中运行:sudo efibootmgr,输出里找Boot开头的行,例如Boot000A* UOS,记下000A这个ID。
方法二:把UOS设为第一启动项
执行:sudo efibootmgr -o 000A,0001,0002,其中000A是UOS的ID,后面是其他备选项。注意ID之间用英文逗号分隔,不能有空格。
【必须重启才能生效,且此操作直接修改主板NVRAM,不可逆】
通过GRUB_DEFAULT按名称指定默认项
索引编号容易因内核更新、菜单增删而偏移,比如今天设GRUB_DEFAULT=0,明天装个新内核,原来的UOS就跑到第2行去了。用完整菜单名做默认项,稳得多。
先看所有菜单项真实名称:grep "menuentry" /boot/grub/grub.cfg | cat -n,找到类似menuentry '统信UOS 20.04 (5.10.0-amd64-desktop)'这样的整行。
编辑主配置:sudo vim /etc/default/grub,把GRUB_DEFAULT=0这行改成GRUB_DEFAULT="统信UOS 20.04 (5.10.0-amd64-desktop)",注意两边加英文双引号,内容必须和grub.cfg里一模一样。
最后执行:sudo update-grub。这一步做完,哪怕菜单顺序变了,系统也永远默认进你写的那个名字对应的系统。











