我发现最简单的方法是将 Windows 引导条目移动到/boot/grub/menu.lst. 默认情况下,Grub 配置文件的布局如下:
第 2 部分由配置文件中的这些行划分:
### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST
Run Code Online (Sandbox Code Playgroud)
自动检测的操作系统(例如,Windows)的条目放在此部分之后。安装新内核时,第 2 部分是唯一更改的部分。因此,将自动检测到的操作系统移到该行之前的某个BEGIN位置会将其放置在安装新内核时条目号不会更改的位置。
使用 Grub2,整个配置文件在任何时候update-grub运行时/boot/grub/grub.cfg都会重新创建,因此编辑不会永久修复。如何生成该文件是由文件处理/etc/default/grub和脚本/etc/grub.d/*。因此,我们通过修改控制配置文件各个部分的文件来修改配置,然后update-grub再次运行。
我的/etc/grub.d包括这些文件:
这些是为了生成配置文件而运行的 shellscript 。Windows 引导条目由 生成30_os-prober,它在 .linux 引导条目生成后运行10_linux。所以只需重命名30_os-prober为小于 10 的名称,然后重新运行update-grub
mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub
Run Code Online (Sandbox Code Playgroud)
现在,您的Windows项应是第一项,你可以设置为默认启动项(GRUB_DEFAULT=)的/etc/default/grub。