![Windows10 安装盘不提供 UEFI 选项](https://linux22.com/image/1526918/Windows10%20%E5%AE%89%E8%A3%85%E7%9B%98%E4%B8%8D%E6%8F%90%E4%BE%9B%20UEFI%20%E9%80%89%E9%A1%B9.png)
我有一台惠普笔记本电脑(HP 240 G5,配备英特尔酷睿 i3-5005U CPU),预装了64 位Windows 10 家庭单一语言。
为了测试我的软件,我需要另外安装一个32 位该机器上装有 Windows 10。
我创建了一个新的分区“Win32”,我想在其中安装 32 位 Windows 10:
现有分区是 GPT,因此我需要通过以下方式安装新映像UEFI. 传统 BIOS 模式毫无用处,因为它需要 MBR 分区。
我使用 Microsoft 下载工具 (MediaCreationTool.exe) 下载了最新的 32 位 Windows 10:
我得到一个 2.836.660.224 字节的 ISO 映像,其为 NTFS 格式。
我使用 Rufus 将其复制到 USB 记忆棒上:
我关闭了安全启动并更改了启动顺序:
但是当我尝试从 USB 启动时它没有出现在菜单中:
无论我将 ISO 映像复制到 USB 还是 DVD,结果都是一样的。
当我选择“OS Boot Manager”时,硬盘上的 Windows 就启动了。
当我选择“从 EFI 文件启动”时,我得到了这个菜单,在其中我选择了 USB 记忆棒:
然后会显示一个包含 3 个文件的菜单。奇怪的是,BIOS 显示了 USB 上不存在的文件。ISO 映像中唯一存在的文件是 \efi\boot\bootia32.efi
无论我在此菜单中选择哪个选项,都会出现相同的错误:
显然,因为文件 bootx64.efi 确实不存在。但我选择文件 bootia32.efi 后也出现此错误。很奇怪!
然后我想:“好吧,我只需从 64 位 Windows 10 安装 DVD 中复制这个丢失的文件即可。” 上述错误确实消失了。 但几秒钟后,我收到错误 C0000359:
然后我下载了用于安装 32 位和 64 位的 ISO 映像。
ISO 文件大小为 6.5 GB!(我记得从 15 张软盘安装 Windows 3.1)。启动时,菜单中没有选择从 USB 启动的选项。我再次手动选择了 EFI 文件:
然后我确实得到了预期的菜单:
但没有运气:
有趣的是,我有另一个仅包含 64 位版本 Windows 10 的 ISO 映像,并且我得到了正确的启动菜单:
当我继续时,安装正常进行,并且我得到了可以选择分区的屏幕。
这不是很奇怪吗?64 位 ISO 运行正常,而 32+64 位 ISO 却出现故障。
那么这里出了什么问题?三个 ISO 文件中有一个可以运行,另外两个则失败。
我了解到 Intel Core i3 处理器应该能够运行 32 位或 64 位操作系统。
答案1
鲁弗斯(和UEFI:NTFS) 作者在这里。
一些解释:
您看到的 3 个文件(
bootia32.efi
、bootx64.efi
和bootarm.efi
)来自 UEFI:NTFS 和不是您的 ISO。这些用于加载 UEFI NTFS 驱动程序,以便其余的启动可以从 NTFS 分区继续,从而实现从 UEFI 进行 NTFS 启动。您发布的倒数第二张截图是 UEFI:NTFS 的输出,它非常清楚地表明您的 UEFI 固件是 64 位。
(x64)
中的*** UEFI:NTFS (x64) ***
是您正在运行的 UEFI 架构。因此,要在您的平台上安装 32 位 Windows,您需要从 64 位 UEFI 平台启动 32 位 UEFI 可执行文件。据我所知,这在 UEFI 模式下是不可能的,因为 64 位 UEFI 认为 32 位 UEFI 可执行文件与 ARM 或 MIPS CPU 一样陌生,因此会拒绝执行它。请注意,虽然 Windows 或 Linux 等 64 位操作系统确实有默认的 32 位仿真对于 32 位软件,UEFI 则不然。因此,除非您能找到 UEFI 的 32 位仿真层,让您可以在 64 位上运行 32 位可执行文件(再次说明,我不知道有这样的事情),否则在 64 位系统上同时运行 32 位和 64 位 Windows 的唯一选择是安装 Windows,而不是 UEFI 模式,而是 BIOS 或 BIOS 仿真模式(又名“CSM”或“UEFI-CSM”),这可能意味着您需要重新格式化整个驱动器,以将其从 GPT 分区方案切换到 MBR 分区方案(因为 GPT 与 BIOS 启动基本不兼容)。
此外,对于那些可能想知道为什么 BIOS/BIOS 兼容性允许 32 位和 64 位 Windows 几乎无差别地启动,而 UEFI 却不行的人来说,原因基本上是历史性的。与 UEFI 不同,BIOS 只有一种版本,即32 位 16 位 仅有的因此,随着 64 位 CPU(其内部可以在 16、32 或 64 位模式下运行)的出现,微软创建了一个 BIOS 引导加载程序,可以从32 位切换到 64 位。 16 位执行模式(64 位 CPU 离开 BIOS 后所处的模式)切换到 64 位执行模式,就像它有一个引导加载程序,可针对 32 位 Windows 从 16 位模式切换到 32 位模式一样。但是,对于 UEFI 启动,Microsoft 不提供类似功能来从 64 位执行模式(64 位 CPU 离开 64 位 UEFI 固件后所处的模式)切换到 32 位执行模式,因此,不幸的是,如果您只有 64 位 UEFI 固件,并且想要以 UEFI 模式启动 Windows,那么您几乎只能使用与 UEFI 固件相同的“位数”。
编辑:我相信你应该接受罗德的回答,因为它提供了更好的选择。
答案2
EFI 固件旨在启动与自身位深度相同的操作系统。也就是说,64 位 EFI 可以启动 64 位操作系统,但不能启动 32 位操作系统;32 位 EFI 可以启动 32 位操作系统,但不能启动 64 位操作系统。由于计算机已经在 EFI 模式下运行 64 位 Windows,因此您的计算机肯定具有 64 位 EFI,这意味着您将无法直接在计算机上安装 32 位版本的 Windows —— 至少,不能按照现在的配置。我看到了几种可能的解决方法:
- 虚拟化-- 您可以在虚拟机(VirtualBox、VMWare 等)中安装 32 位 Windows。如果您的软件测试不需要直接访问硬件,这可能是最好的解决方案。除此之外,您还可以同时运行两个版本的 Windows,这将大大加快测试速度。
- 完全切换到 BIOS/CSM/传统模式启动-- 您可以使用兼容性支持模块 (CSM) 重新安装 64 位和 32 位版本的 Windows,这允许计算机以旧的 BIOS 方式启动。BIOS 模式启动允许(实际上,需要(适用于 32 位和 64 位操作系统)从一个 CPU 位深度切换到另一个,因此您可以根据需要进行混合搭配。不过,这需要了解如何控制 CSM。我的这个页面可能会有所帮助,尽管它是为想要双启动 Windows 和 Linux 并且遇到 CSM 问题的 Linux 用户编写的,不适用于想要双启动需要使用 CSM 的不同版本的 Windows 的人。可以使用相反的方法来将您当前的 Windows 安装转换为在 BIOS 模式下启动这一程序,但我不能对此做出承诺,而且我也无法在调整程序方面提供太多帮助,只能指出此方法进行磁盘分区表转换。
- 从 GPT 磁盘以 BIOS 模式启动 32 位 Windows-- 大多数操作系统都可以以这种方式启动,但 Windows 很难做到这一点。不久前我还说这“不可能”,但我遇到了这一程序,据称可以实现这一点;但我自己从未尝试过,所以我不能保证它会起作用。此外,如果你这样做,你需要在 BIOS 模式和 EFI 模式启动之间切换,这可能会很尴尬。
- 使用另一台计算机-- 显然,至少在理论上,您可以使用第二台计算机来测试您的 32 位软件版本。不过,您需要第二台计算机,这可能需要金钱、空间等。
- 找到支持 64 位到 32 位启动的引导加载程序-- 理论上,适当编写的 EFI 引导加载程序可以在 64 位 EFI 上加载 32 位内核,反之亦然。GRUB 可以为 Linux 执行此操作,macOS 的引导加载程序也可以执行此操作。我不知道有哪个引导加载程序可以为 Windows 执行此操作,但至少理论上是可行的。如果您足够熟练,您也许可以自己编写这样的引导加载程序。或许老人XOM 引导加载程序可以适应您的需要,但这只是一种尝试。
哪种解决方案最适合您取决于您的特定需求和能力。