在这种情况下安装 Windows 会破坏 grub 吗?

在这种情况下安装 Windows 会破坏 grub 吗?

我有一台配备两个 500 GB SSD 的计算机,sda 和 sdb。我在 sda 上运行 Ubuntu 14.04,sdb 上没有任何内容。我的主板有 UEFI 固件。我想在 sdb 上安装 Windows 10。

关于如何在 Ubuntu 之后安装 Windows 的问题,有很多答案,但他们都假设这两个系统位于同一磁盘上的不同分区中。他们继续解释 Windows 会破坏 Grub 以及如何修复此问题。

如果我将 Windows 安装到 sdb(一个完全独立的驱动器)上,它还会破坏 grub 吗?

多谢。

答案1

安装 Windows 实际上并不休息基于 EFI 的安装中的 GRUB;它只是将 Windows 引导加载程序设为默认。在基于 BIOS 的系统的情况下,这是通过 Windows 覆盖 GRUB 来实现的(这可以视为一种破坏),但在基于 EFI 的系统的情况下,这是通过 Windows 在 GRUB 旁边安装自己的引导加载程序,然后告诉计算机默认使用 Windows 引导加载程序进行引导来实现的。在第二种 (EFI) 情况下,GRUB 保持不变,并且可以通过多种方式更改默认引导加载程序:

  1. 使用 EFI 固件的用户界面-- 各个 EFI 的细节各不相同,有些甚至不提供此功能;但有些允许您使用 EFI 设置实用程序永久更改启动顺序。大多数允许您通过激活启动管理器的用户界面进行临时更改,通常是在开机后立即按 Esc、Enter 或功能键。
  2. 使用 EFI shell-- EFI shell 程序版本 2(内置于少数 EFI 中,并作为其他 EFI 的单独二进制文件提供)有一个名为的命令,bcfg用于操作启动变量。您可以使用此工具更改启动顺序。请参阅这里了解有关此主题的更多信息。
  3. bcdedit在 Windows 中使用--bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi在 Windows 中输入行政人员命令提示符窗口将 Ubuntu 设置为默认值。(如果禁用安全启动,则grubx64.efi可以像 一样工作shimx64.efi,并且在少数情况下可能需要;但shimx64.efi更有可能工作。)
  4. 在 Windows 中使用 EasyUEFI-- 第三方EasyUEFI 程序提供了一种(相对)易于使用的 GUI 方法来操作 EFI 启动项。
  5. efibootmgr在Linux中使用-- 该efibootmgr命令可以显示和更改 EFI 启动项。您可以键入sudo efibootmgr -v来查看当前项,然后使用-o来更改启动顺序,例如首先sudo efibootmgr -o 2,7,4启动Boot0002,如果失败则接着启动Boot0007,最后尝试Boot0004
  6. bless在 OS X 中使用-- OS X 的操作 EFI 启动项的工具是bless。它有点复杂,而且 Mac 有点奇怪,所以我不会在这里详细描述它。

请注意,在 EFI 系统上,使用一个磁盘还是两个或更多磁盘基本上无关紧要。这是因为 EFI 启动过程涉及基于 NVRAM 的引导加载程序指针。NVRAM 条目包括存储引导加载程序的磁盘和分区的标识符。任何分区都可以容纳任意数量的引导加载程序(最多可达某个非常高的理论上限);或者您可以将它们分布在任意数量的分区和磁盘上。它们几乎都是一样的。但有一个警告:处理 BIOS 模式多重启动时经常使用的一种策略是在安装第二个操作系统时删除已安装操作系统的磁盘。这在 EFI 系统上仍然具有安全优势,但有一个问题:如果您删除磁盘,某些 EFI 会注意到它已经不见了,并删除存储在该磁盘上的引导加载程序的 NVRAM 条目。因此,像在 BIOS 系统上一样交换磁盘会使启动第二个操作系统变得更加困难,因为您需要重新创建其 EFI 引导管理器条目。

答案2

只要您将 Windows 的所有分区(系统保留分区和 C:)限制在第二个磁盘(sdb)上,它就不会破坏安装在第一个磁盘(sda)上的 grub。您只需从 BIOS 中选择从哪个磁盘启动。之后,您的 BIOS 将简单地执行相应的引导加载程序,无论是 Windows 还是 grub。

相关内容