我目前正在尝试让笔记本电脑(HP Stream 11 - 2015 型号,配备 Intel Celeron N3050 处理器)检测闪存驱动器上安装的 Windows 8.1 32 位 UEFI。我使用 RUFUS 设置闪存驱动器并使用 UEFI GPT 分区设置。当我将闪存驱动器插入笔记本电脑时,它不知何故没有检测到闪存驱动器。
现在,当我将 64 位 Windows 8.1 安装放到闪存驱动器上时,笔记本电脑能够在可启动设备菜单中检测到它,并且能够毫无问题地启动到 Windows 安装。
我之所以想要安装 32 位 Windows,是因为笔记本电脑的 RAM 仅限于 2GB,并且由于它焊接在主板上而无法升级。
现在,当我查看我制作的 32 位 Windows 安装 USB 的 EFI Boot 文件夹时,我注意到它有 bootia32.efi,而当我尝试放入 bootx64.efi 时,它能够在尝试加载 32 位 Windows 安装时检测到 USB,然后在出现错误屏幕。
我想知道这台 HP Stream 11(配备 2GB RAM)上的 EFI 系统是否有 x64 位 EFI 系统,因此为什么它甚至无法检测到 32 位 UEFI USB,或者我在这里做错了什么。如果是这样,我想知道是否有任何解决方法,或者我是否必须禁用 UEFI 并使用 BIOS 来安装 Windows 32 位(除非有充分的理由在具有 2GB RAM 的计算机上安装 64 位 Windows?)
谢谢。
答案1
EFI 只能针对编译 EFI 的同一架构运行程序(包括引导加载程序)。在 x86-64/AMD64/X64 系统上,这意味着如果 EFI 本质上是 64 位的,则它只能启动 64 位引导加载程序;如果 EFI 本质上是 32 位的,则它只能启动 32 位引导加载程序。反过来,Windows 引导加载程序只能启动位深度相同的内核(据我所知),依此类推。因此,如果您有 64 位 EFI,则只能启动 64 位 Windows(据我所知)。
理论上,您可以使用适当的引导加载程序来解决此限制。例如,GRUB 可以跨位深度边界启动 Linux 内核。Apple 的 macOS 引导加载程序也可以(在 64 位 EFI 上启动 32 位内核;我认为反过来不行)。在实践中,据我所知,这在 Windows 上是不可能的。
通过启用兼容性支持模块 (CSM),您可以启动 32 位或 64 位操作系统,但只能在 BIOS/CSM/旧模式下启动。这有一些缺点,正如我在回答这个问题(之前在 athosbr99 的评论中提到过)。如果您想在计算机的唯一硬盘上安装 32 位 Windows,您几乎必须全力以赴。(有多种方法可以在单个磁盘上混合启动模式,但有太多注意事项,我不想通过描述它们来混淆问题。)如果您想与另一个操作系统进行双启动,特别是在另一个磁盘上(例如,内部安装 64 位 Windows,外部磁盘上安装 32 位 Windows),您可以在 EFI 模式下安装 64 位操作系统,在 BIOS 模式下安装 32 位操作系统,然后使用计算机的内置启动管理器或我的rEFInd 启动管理器来管理启动过程。不过,设置起来会有点麻烦,在尝试这种跨模式安装之前,您应该彻底研究这些问题。首先我的这个页面,描述了 CSM 及其缺陷。(它是为尝试与 Windows 双启动的 Linux 用户编写的,但背景信息是相关的。)然后我建议仔细阅读 rEFInd 文档,并仔细注意scanfor
中选项的描述refind.conf
。
总的来说,您最好的选择是要么坚持使用 EFI 模式下的 64 位启动,要么清除所有内容,打开 CSM 并在 BIOS 模式下安装 32 位 Windows。我不知道 Windows 的 32 位和 64 位性能在具有 2 GiB RAM 的系统上是否有足够大的差异来证明切换是合理的。请注意,大多数制造商都会安装大量过度软件,消除这些软件可能会大大提高性能,因此您可能需要在安装 32 位 Windows 之前研究一下这一点。