Skip to content

ubuntu+windows双系统下调整grub的启动顺序

在 Ubuntu 24.04 中修改 GRUB 将 Windows 设为默认启动项,核心方法是编辑 /etc/default/grub 配置文件,然后更新 GRUB 配置。以下是两种可行方案,推荐方法二(更稳定)。


准备工作:确认 Windows 在 GRUB 菜单中的名称

在修改前,先确认 Windows 启动项在 GRUB 菜单中的确切显示名称。终端执行:

bash
grep -i "windows" /boot/grub/grub.cfg

输出类似:

menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows ... {

记下 menuentry 后单引号内的完整字符串(如 Windows Boot Manager (on /dev/nvme0n1p1)),后续会用到。

如果该命令无输出,也可在开机进入 GRUB 菜单时直接查看并记下 Windows 项的名称。


方法一:按数字索引设置(简单,但可能偏移)

  1. 编辑 GRUB 配置文件

    bash
    sudo nano /etc/default/grub
  2. 找到 GRUB_DEFAULT=0 这一行。 0 代表 GRUB 菜单中第一项(从 0 开始计数)。假设 Windows 在菜单中是第 5 项(索引为 4),则改为:

    GRUB_DEFAULT=4
  3. 保存并退出(nano 中按 Ctrl+O 回车保存,Ctrl+X 退出)。

  4. 更新 GRUB 配置

    bash
    sudo update-grub
  5. 重启验证

    bash
    sudo reboot

注意:数字索引方式的问题在于——当系统更新新增了内核条目后,菜单项顺序可能变化,导致索引偏移,默认项可能不再是预期目标。


方法二:按完整名称设置(推荐,更稳定)

此方法直接使用菜单项的名称,不受索引变化影响 。

  1. 编辑配置文件

    bash
    sudo nano /etc/default/grub
  2. GRUB_DEFAULT=0 改为你刚才查到的 Windows 完整名称,例如:

    GRUB_DEFAULT="Windows Boot Manager (on /dev/nvme0n1p1)"

    注意:引号必须保留,名称必须与 grub.cfgmenuentry 后的内容完全一致(包括空格和括号)。

  3. 保存并退出

  4. 更新 GRUB 配置

    bash
    sudo update-grub
  5. 重启验证


备用方案:使用 GRUB_SAVEDEFAULT

如果你希望 GRUB 记住上一次手动选择的项,也可以这样设置:

text
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

之后开机时手动选一次 Windows,下次重启就会默认进入 Windows,直到再次手动切换。


重要提醒

  • 修改后必须执行 sudo update-grub,否则修改不会生效。
  • 如果你的机器是 UEFI 启动(近年多数电脑),Windows 的 GRUB 条目通常名为 Windows Boot Manager;如果是传统 BIOS 启动,则可能显示为 WindowsWindows 10/11
  • 如果修改后无法启动,可以进入 GRUB 高级选项或使用 Ubuntu 安装 U 盘的"试用"模式,重新编辑 /etc/default/grub 改回 GRUB_DEFAULT=0 并再次 update-grub
  • 如果 GRUB 菜单中根本没有 Windows 项,说明引导未正确识别,可能需要运行 sudo os-prober 并确保其已启用(Ubuntu 24.04 默认可能禁用 os-prober,需手动安装或启用)。

建议先使用方法二(名称匹配),除非你非常确定 Windows 在 GRUB 菜单中的索引位置且不会变化。

Last updated: