为什么我无法通过基于 MBR 的 USB 磁盘在 UEFI 机器上安装 Windows 8?

为什么我无法通过基于 MBR 的 USB 磁盘在 UEFI 机器上安装 Windows 8?

刚刚尝试在 UEFI 机器/GPT 磁盘上安装 Windows 8.1。

我使用了一个 2 TB 的基于 MBR 的 USB 驱动器来包含安装程序(带有 Windows 8.1 安装文件的 FAT32 分区)。在安装程序抱怨所选安装目标实际上是 GPT 磁盘并且无法安装之前,我已经选择了一个要安装的分区。我知道这是一个 GPT 磁盘。没有提供进一步的解释。

Google 搜索显示“您必须在 UEFI 模式下启动 DVD 驱动器才能在 UEFI 上安装操作系统”等提示。这让我相信我必须将我的 USB 驱动器转换为 GPT 才能在 UEFI 机器上安装操作系统。这真的有必要吗?我的意思是,它只是写入磁盘的文件,安装程序的启动方式真的很重要吗?机器肯定会在安装过程中重新启动,然后它可以使用它想要的任何模式,如果它认为有必要的话。

我还觉得从 MBR 转换为 GPT 需要我删除 USB 驱动器上的其他分区。那是一个 1.97 TB 的分区,这是不可接受的。

编辑:使用第三方工具毫无问题地转换为 GPT。但问题仍然存在:

为什么安装程序说无法从基于 MBR 的 USB 驱动器安装 UEFI 启动的操作系统?从 MBR 启动时它不能创建新的 UEFI 启动选项吗?还是怎么回事?

答案1

Google 搜索出现了诸如“您必须在 UEFI 模式下启动 DVD 驱动器才能在 UEFI 上安装操作系统”等提示。这让我相信我必须将我的 USB 驱动器转换为 GPT 才能在 UEFI 机器上安装操作系统。

<…>

为什么安装程序说无法从基于 MBR 的 USB 驱动器安装 UEFI 启动的操作系统?从 MBR 启动时它不能创建新的 UEFI 启动选项吗?还是怎么回事?

不要混淆启动具有启动功能的 GPT 或 MBR 磁盘EFI 或 BIOS 模式。

通常这两个要求是不是相关。需要 UEFI 系统来支持 GPT 和 MBR 分区表。(同样,BIOS 系统通常根本不读取分区表,只要扇区 0 引导代码能够做到这一点,就可以轻松地从 GPT 磁盘启动。)

这是仅限 Windows拒绝从 GPT 磁盘进行 BIOS 模式启动,以及从 MBR 磁盘进行 EFI 模式启动。而且,一些有缺陷的 BIOS 系统确实会因“保护性” GPT MBR 而阻塞;同样,一些有缺陷的 UEFI 系统确实认为“MBR = 传统启动”。

但除此之外,您对创建启动选项的猜测是正确的。见下文。

我的意思是,它只是写入磁盘的文件,安装程序的启动方式真的很重要吗?机器肯定会在安装过程中重新启动,然后它可以使用它想要的任何模式,如果它认为有必要的话。

不可以。首先,启动模式是不是由操作系统在启动后选择;它由引导加载程序的安装方式选择。要为 BIOS 设置引导加载程序,您需要将引导代码写入第 0 个扇区。要为 EFI 设置引导加载程序,您需要将引导选项作为 EFI“变量”添加到 NVRAM。其次,EFI 运行时函数仅在以 EFI 模式启动时才可访问,您需要使用它们来修改 EFI 变量。

因此,如果你处于 BIOS 模式,安装程序无法将启动选项添加到 NVRAM,因此无法设置 EFI 模式启动对于新安装的系统。

因此,您认为“它可以使用任何它想要的模式”的假设是错误的。

(作为预防措施,Windows 也会将其自己的引导加载程序安装到“后备”路径,\EFI\Boot\BootX64.efi但是,仅当 NVRAM 中没有有效的引导选项时才会使用该路径。因此,如果您不添加引导选项,仍有很小的机会可以引导,但这远不能保证。)

我还觉得从 MBR 转换为 GPT 需要我删除 USB 驱动器上的其他分区。那是一个 1.97 TB 的分区,这是不可接受的。

有一些工具可以进行就地转换;Linuxgdisk就是其中之一。

然而,即使你删除分区,这通常不会丢弃其中的任何数据,因此如果您立即在分区上创建新分区,则可以再次访问它。精确的同一位置。毕竟,这就是转换工具的工作方式。(同样,您可能需要 Linuxfdiskgdisk才能精确指定开始/结束位置;许多工具仅显示 1 MB 的精度。)

相关内容