如何在基于旧版 BIOS 的笔记本电脑上安装 Windows 8.1

如何在基于旧版 BIOS 的笔记本电脑上安装 Windows 8.1

如何在运行旧版 BIOS 固件的笔记本电脑上安装 Windows 8.1?有问题的笔记本电脑是 Toshiba Satellite C870D-11X,最初附带 Windows 8.1 OEM 安装。

我从 Microsoft 网站下载了 Windows 8.1 ISO,并使用ddDebian 11 下运行的实用程序将其刻录到 USB。当我将 USB 插入笔记本电脑并进入 BIOS 时,启动顺序中会显示一个 USB 设备,但没有附加任何名称,我无法从该设备启动。如果我将同一个 USB 插入我的 UEFI 台式机并进入 UEFI 固件界面,我就可以正常启动安装程序。

微软的网站没有提供 BIOS 版本的安装介质,我在 DuckDuckGo 和 Google 上搜索了几个小时,唯一提到同一问题的是微软自己网站上的一个用户问题,其中包含的答案根本不能解决问题。

任何帮助深表感谢!

编辑:请参阅下面@Akeo 的精彩回答,了解正确的解释和解决方案。我还在下面留下了我所做工作的解释,尽管它与接受的答案几乎完全相同,除了一个细节。下面概述的每个步骤都是使用执行的,fdisk当然,除了最后复制文件之外。

我创建了一个新的 MBR 分区表(在词典中显然称为 DOS 分区表fdisk),然后创建了一个 5GiB 分区,并使用 FAT32 文件系统对其进行格式化,然后将分区类型设置为“W95 FAT32”(代码“0b”)并设置可启动标志。最后,我将 Windows 8.1 安装程序 ISO(不是 ISO 本身)的内容复制到单个分区中,然后能够从中启动安装程序。

有一件事似乎很重要,我通过反复试验以及阅读大量在线资料找到了这个解决方案;最初我将分区类型(不要与文件系统混淆!)设置为“W95 FAT32 (LBA)”(代码“0c”)。在这种情况下,Windows 8.1 安装程序可以启动,但它很快就抱怨缺少所需的驱动程序并要求我提供它,但没有提示是哪个驱动程序。

最后,我目前还不确定这台笔记本电脑是否运行 UEFI 固件。非常丑陋的用户界面缺乏鼠标支持,再加上机器的年龄,让我相信情况确实如此。然而,固件设置确实包含一个选择 CSM 模式的选项,最终的 Windows 8.1 安装报告它正在以 UEFI 模式运行 - 使用 确认msconfig.exe。我没有尝试从具有 NTFS 分区的 GPT 驱动器启动安装程序,这台机器上或许完全有可能……

答案1

解释为什么你尝试的方法不起作用

(如果您只对潜在的解决方案感兴趣,请跳过此部分)

并使用 Debian 11 下运行的 dd 实用程序将其刻录到 USB

那是行不通的。

问题是你似乎来自 Linux,并且相信,因为最现代的Linux ISO 具有这样的功能(但情况并非总是如此!),您只需将 ISO 放到ddUSB 闪存驱动器上,它就可以工作了。

这是一不正确假设。

这对现代 Linux ISO 有效的唯一原因是因为它们滥用ISO9660 规范,描述了如何创建 ISO 映像,并使用一种称为混合型在 ISO 内容顶部添加分区方案(ISO9660 没有)和单独的文件系统(ISO9660 只有一个)。

虽然这对于 Linux 用户来说当然非常方便,他们不必摆弄 SysLinux 或 GRUB 引导程序来使 ISO 内容在 BIOS 中启动(但应该说,就 UEFI 启动而言,如果发行版维护人员的工作做得正确,创建可启动 USB 介质所需的一切就是将 ISO 文件提取到 FAT32 格式的闪存驱动器上,因此可以说 UEFI 对 ISOHybrid 的实际需求可以看作是“有争议的”,尤其是因为 UEFI 的设计目的就是避免必须在扇区级别写入介质以使其可启动的整个废话……这就是它所做的dd),但这种创建既能刻录到 CD/DVD 又能dd复制到 USB 介质上的映像的方法明显滥用了 ISO9660 规范,因此,微软(到目前为止)倾向于不加入 Linux 发行版维护人员的行列,使用非常不标准的混合型方法适用于他们的 ISO。

因此,你可以不是用来dd将 Microsoft Windows ISO 写入 USB 介质并期望其启动。相反,您必须将其内容提取到 FAT32 或 NTFS 介质,并(可能)整理一些引导加载程序安装。

但请注意,与某些 Linux 发行版的情况不同,Microsoft 始终确保,如果您想在 UEFI 模式下安装系统,则只需将文件内容提取到 FAT32 或 NTFS 格式的媒体即可确保您的媒体可以在 UEFI 计算机上启动。

然而,上述内容有一个小警告,即大多数最新的 Windows ISO 都包含大于 4 GB 的文件,这需要使用 NTFS 来提取内容,并且许多较旧的 UEFI 平台没有对 UEFI 启动的原生支持(但需要指出的是,许多最新的平台和主板都支持 UEFI 启动,并且对于不支持的平台也有解决方案)。

关于如何实现你想要的可能的解决方案

现在,您的主要问题是您正在尝试为 BIOS 而不是 UEFI 创建可启动媒体,这意味着您需要做 3 件事:

  1. 使用 MBR 分区方案(而不是 GPT)对您的 USB 进行分区并创建单个 NTFS 分区(注意:这也可以用于 FAT32,但为了不必涵盖多个选项,我将仅介绍 NTFS)。
  2. 将 Windows 8.1 ISO 内容提取到您刚刚创建的分区。
  3. 将 Windows 引导加载程序安装到 MBR 中,并将 NTFS 引导加载程序安装到您创建的分区中。

我希望您熟悉如何完成步骤 1 和 2,但不熟悉步骤 3,如果您尚未运行 Windows 平台,则需要更多参与,就像您的情况一样。

但是,在 Linux 上,你可以使用以下方法实现此目的微软系统,这是一个专门用于安装您所需类型的引导加载程序的应用程序。

我不相信 Debian 有现成的 ms-sys 包,因此您必须从源代码重新编译它,但是一旦您完成了这件事,并且假设您的 USB 设备是/dev/sdu,您应该能够完成第 3 步:

./ms-sys -7 /dev/sdu
./ms-sys -n /dev/sdu1

第一个命令将 Windows 7 引导记录安装到 MBR 中(自 Windows 7 以来,所有版本的 Windows 都使用相同的引导记录,因此尝试安装 Windows 8.1 并不重要)。此引导记录基本上会链式加载安装在 NTFS 分区上的引导记录(如果有)。

第二个命令安装一个 NTFS 引导记录,它将bootmgr从 NTFS 文件系统加载可执行文件并运行它,这就是 (BIOS) Windows 安装过程最终启动的方式。

请注意,第一个命令的参数是整个磁盘设备(/dev/sdu),而第二个命令使用第一个分区(/dev/sdu1)。

或者,如果您可以访问 Windows 机器,并且按照其他人的建议,您可以使用像 Rufus 这样的实用程序,它可以在幕后执行我所描述的操作(包括使用 ms-sys 代码)。

希望这能帮助您从 Debian GNU/Linux 创建 Windows 8.1 安装媒体。

[免责声明:我是 Rufus 的主要开发人员]

相关内容