在 GPT 大容量内存上启动传统 BIOS 操作系统?

jeb*_*bez 2 boot mbr uefi

我在 64 位 PC 上安装了带 DOSBox 的 Windows 95(传统 BIOS 操作系统),在 GPT 硬盘上的 FAT32 分区((我希望)有其 PBR(分区引导记录))上安装了 UEFI Windows 11 和 ESP (EFI系统分区)。

我无法使用旧版 BIOS CSM(我在 BIOS 设置实用程序中设置,del在启动时按下)启动它,也无法使用 VirtualBox。

在 Windows 11 上,我无法激活该分区:

diskpart
sel disk 0
sel part 8  // the Windows 95 FAT32 partition
active

The selected disk is not a fixed MBR disk.  
The ACTIVE command can only be used on fixed MBR disks.
Run Code Online (Sandbox Code Playgroud)

因此硬盘需要 MBR,但根据https://www.diskpart.com/gpt-mbr/mbr-and-gpt-on-same-disk-7201.html,不可能将 GPT 和 MBR 放在同一个磁盘上海量记忆。

那么该怎么办?
也许 ESP 中的 .efi 文件可以启动旧版 BIOS 操作系统、PBR 分区,而不需要 MBR?
用GRUB?

use*_*686 6

实际上可以在 GPT 分区磁盘 \xe2\x80\x93 上拥有 MBR 引导代码,第 0 个扇区保留专门用于保存“保护性 MBR”,它仍然可以像以前一样保存 BIOS 引导代码(如 \xc2\xa0 只要你以传统模式启动它,因为 UEFI 甚至不会查看 MBR 启动代码(即使它在那里)。

\n

(就此而言,UEFI 实际上并不要求使用 GPT \xe2\x80\x93 MBR 分区磁盘仍然是 UEFI 规范的一部分。MBR 的引导代码部分仍然未被 UEFI 使用,因此可以保存如果需要,旧版 BIOS 引导代码。)

\n

您可以安装Syslinux MBR 引导代码 (gptmbr.bin),其行为与跳转到活动分区的 PBR 的传统 MBR 非常相似,但可以理解 GPT 分区表并查找类似名称的 GPT 属性标志。(具体来说,它检查gdisk称为“Legacy BIOS 可引导”的位 2。)不需要 Syslinux 的其余部分。

\n

但您必须使用传统启动模式 (CSM) 才能使其正常工作。MBRPBR都保存有专门为BIOS启动编写的启动代码(两者都不在UEFI启动过程中使用);它们通常依赖于通过 BIOS 调用(中断)访问磁盘,如果您尝试在没有 CSM 的 UEFI 环境中运行该代码,这自然将不可用。

\n

因此,仅拥有一个尝试运行 MBR 或 PBR \xe2\x80\x93 的 .efi 可执行文件是不够的,您需要使用旧模式,或者如果您没有它,则需要引入整个BIOS 实现,例如 SeaBIOS(有时用作 UEFI 固件中的 CSM,并且可能作为普通的 .efi二进制文件启动?)。

\n

但是,如果机器太新,不再支持 BIOS 样式引导的 UEFI CSM 支持,那么您将遇到的问题不仅仅是初始引导 \xe2\x80\x93,很可能您实际上没有适用于该计算机上任何硬件的 Windows 9x 兼容驱动程序。(有关更多详细信息,请参阅/r/windows98的侧边栏\xe2\x80\x93 任何“随 Windows 7 一起提供”的东西都已经太新了,因此您的计算机将非常新。)

\n