20.04:更新我的双启动情况

20.04:更新我的双启动情况

我有一台安装了 Windows 10 1909 的 Dell Inspiron One 2020 AIO,其中添加了 Ubuntu 20.04 以实现双启动。

我已经知道为什么启动 Windows 后 GRUB 没有加载。

我将刻录的 Ubuntu USB 驱动器插入 PC,这样就可以启动实时 Ubuntu。然后我重新启动 PC,拔下 USB 并按下 F2。我将启动设备更改为 ubuntu,这样计算机就可以查看 Windows 和 Ubuntu。每当我想启动 Windows 时,ubuntu 不再被检测为启动设备,而是被 Windows 启动管理器取代。有什么方法可以启动 Windows 并仍然将 Ubuntu 作为默认启动设备?

答案1

我有一个奇怪的要求(当我重新启动时,UEFI 启动菜单不会显示在外部显示器上,而且我不想每次重新启动时都要打开对接的笔记本电脑)。所以我只使用 UEFI 启动 Grub,然后使用 Grub 在 Ubuntu 和 Windows 之间进行选择。还有一个好处,我可以在 Windows 和 Ubuntu 中选择下一个启动选项。

在我的 BIOS 中,我将 Ubuntu 设置为唯一启动选项(从菜单中删除 Windows)。

在 Ubuntu 中,我将 Grub 从 /boot 移至 /boot/efi/EFI(这是 Windows 创建的 FAT32 分区)。

下面是我将 Grub 安装到 EFI 分区的步骤(/dev/nvme0n1 是安装 Windows 的磁盘,其中包含 EFI 分区 nvme0n1p2;Ubuntu 位于 nvme2n1 上):

  1. grub-install --boot-directory=/boot/efi/EFI --efi-directory=/boot/efi /dev/nvme0n1
  2. cp -R /boot/grub/* /boot/efi/EFI/grub/
  3. mv /boot/grub /boot/grub.old
  4. ln -s /启动/efi/EFI/grub /启动/grub
  5. grub-set-default 2 # 自动检测的 Windows 启动选项
  6. cp /boot/grub/grubenv /boot/grub/grubenv.windows
  7. grub-set-default 0 # 第一个启动选项——Ubuntu
  8. cp /boot/grub/grubenv /boot/grub/grubenv.linux

现在,如果我想启动 Windows,我可以运行:

  • sudo cp /boot/grub/grubenv.windows /boot/grub/grubenv
  • sudo 重启

如果我想启动 Linux,我可以运行:

  • 安装卷 x: /S
  • 复制 /Y x:\EFI\grub\grub.linux x:\EFI\grub\grubenv
  • 安装卷 x: /D
  • 关机/r

额外的好处:我可以远程(通过 RDP 或 SSH)并重新启动到我的其他操作系统。

相关内容