有没有办法在 GPT 上使用 BIOS 启动 Windows 7/8?

Joh*_*ick 20 bios windows gpt uefi

我想知道是否有一种方法可以让 Windows 7 或 Windows 8 Developer Preview 安装到我传统的 IBM PC BIOS 设置上的 GPT 磁盘。当然,Windows 7 拒绝我的 GPT 分区,因为我没有 UEFI。好吧,Debian 和 Grub 2 似乎工作正常......所以我想知道是否有办法强制 Windows 也工作。

我真的更喜欢避免混合 MBR/GPT,因为它非常脆弱并且感觉很黑,但它确实有效。我认为主要的阻碍是微软根本没有在他们的 BIOS 引导加载程序中添加对 GPT 的支持,我想这是可以理解的。有什么办法吗?

在我看来,有一些潜在的解决方案:

  1. 具有 Windows 内核的备用引导加载程序。不是链式装载机。据我所知,不存在。这是一种耻辱。
  2. 在基于 MBR 的备用磁盘上尽可能少地存储。不喜欢这个想法,但它是可行的。我不确定我是否将其称为解决问题的方法和解决方法。
  3. 模拟 EFI 足以让 EFI 引导加载程序工作......我记得听说过一些关于 UEFI-on-BIOS 模拟器的事情,但我现在找不到任何关于它的信息。我认为这是可行的,但可能对它的需求并不大,而且设置起来可能根本没有乐趣。GRUB 2 似乎能够通过必要的 EFI 仿真启动 hackintosh,但我想没有兴趣/UEFI 2 更难接近(我假设用于 hackintosh 的其他 EFI 仿真器在同一条船上。)
  4. 使用 TainoCore 进行 Coreboot。Coreboot 在我的主板上不起作用(据我所知),我很确定在 GSoC 期间执行此操作的最后一次尝试失败了。不过,如果它确实有效,我绝对会喜欢这个解决方案。

我错过了什么吗?

Joh*_*ick 8

好吧,自从我第一次问这个问题以来,情况已经发生了变化。一方面,我的电脑现在是基于 UEFI 的,所以我不再有这个问题了。嗯,有点。我有兴趣在我的笔记本电脑上进行类似的设置(GPT 分区等)。我终于设法获得了一个有效的 Tianocore UEFI DUET 设置,它变得非常简单!

这假设您想要所有闪亮的新设置。如果你想真正转换你的旧设置,祝你好运。实际上,无论哪种方式都祝你好运,因为这在任何情况下都是不稳定的操作。

警告:如果您喜欢快速启动时间,您可能需要重新考虑这个决定。并不是说 UEFI DUET 很慢,而是它为您的启动过程增加了另一个阶段,所以如果您的 BIOS/POST 速度不快,您可能不喜欢这个。

无需再费周折:

  1. 你会想要一个 Linux 设置。我在 USB 记忆棒上使用了 Fedora 16(带有 UNetBootin),我强烈推荐它,因为它实际上是开箱即用的。无论如何,您都需要一个 USB 驱动器,所以不要打算在没有 USB 驱动器的情况下继续使用。

  2. 获取一些 UEFI DUET 版本。毫无疑问,最好的地方就是这里。实际的构建 tarball 位于第一个存储库的 master 分支下,这里。给它旧的tar -xf

  3. 设置您的分区。您应该在磁盘的某处保留 200 MB(最好是开头和第一个分区。)您可以使用 FAT32 对其进行格式化,但我们稍后会对其进行重新格式化。只要确保它显示为一个分区。您应该在这里使用 GPT。

  4. 现在安装您可能需要的任何其他软件。在 Fedora Live 发行版上,我发现我需要yum install gdisk. 我想就是这样。

  5. 现在进入提取的构建目录。chmod +x ./duet-install./duet-install -64 -F -m /dev/sda1/dev/sda1您想要的 EFI 系统分区在哪里。)

  6. 交叉手指并重新启动。幸运的话,您很快就会看到 TianoCore 徽标。如果是这样,你可能很好!你需要设置你的操作系统安装文件的USB驱动器上- Tianocore并没有支持CD-ROM / DVD-ROM驱动器开箱(我不知道它的任何驱动程序。)

您可能还希望使用一些 UEFI shell 二进制文件。我在这里找到了一些。不过,还没有使用 Tianocore 进行测试。

无论如何,感谢所有试图提供帮助的人。

  • UEFI DUET 链接现在应该是 [here](https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer),但不再维护;该网站说使用 [Clover EFI](http://sourceforge.net/projects/cloverefiboot) 代替。 (2认同)

Zhu*_*Wei 6

我设法在没有第二个 MBR 磁盘的 BIOS 设置下在 GPT 磁盘上启动 Windows 8.1。

故事是:我的笔记本电脑在 BIOS + GPT 设置下,只安装了 Arch Linux。最近我需要在 Windows 中完成一些任务(虚拟机不能)所以我正在努力在我现有的 BIOS + GPT 设置下安装 Windows。根据Milind 的回答,我设法将 Windows 启动文件(Boot、bootmgr 等)安装到(小型)MBR USB 驱动器。每次我在插入 USB 驱动器的情况下打开笔记本电脑电源时,我都可以启动到 Windows 8.1,然后可以安全地拔出驱动器。

缺点很明显:我需要随身携带一个 USB 驱动器来启动 Windows。所以我一直试图摆脱它。

在尝试了不同的方法后,我终于发现 syslinux 项目的 memdisk 模块有效。

  • 您需要放弃 Windows 启动管理器。
  • 您不必安装 syslinux。只需要memdisk 模块(一个 26 kB 的文件)。
  • 您可以使用许多引导加载程序来加载此模块,就我而言,我最喜欢的引导加载程序 GRUB(版本 2)。

以下是操作方法的概要:

  • 将您的 GPT 磁盘分区以满足 GRUB 的需求,也就是说,一个小分区来嵌入 core.img。详细链接
  • 将 GRUB 安装到那个小分区。
  • 使用imagex.并使用bootsectbcdboot将 Windows 启动文件安装到一个小的 MBR U 盘中。.
  • 使用dddd_rescue将您的小型 USB 磁盘克隆到磁盘映像中。(您的 U 盘已完成其工作。)该映像可能太大,无法加载 memdisk,您可以挂载它并缩小其中的文件系统/分区。
  • 根据我的测试,您不需要物理 MBR 磁盘来安装 Windows 启动文件。您可以创建一个 vhd 文件并将其视为物理磁盘。将 Windows 启动文件安装到 vhd 后,您可以使用 VirtualBox 或 QEUM 提供的工具将其转换为原始(dd 样式)磁盘映像。使用 来创建时type=fixed,vhd 文件只是一个普通的原始磁盘映像(dd 样式),带有 512 字节的页脚。页脚将被识别为“未分区的空间”并被忽略,因此type=fixed可以将 vhd 文件直接提供给 MEMDISK 而无需转换,从而启动 Windows。
  • 配置 GRUB 以使用 memdisk 加载此磁盘映像。
  • Windows 将启动。

详细的操作方法可以在我对 Milind 线程的reboot.pro 回复中找到。


Mil*_*d R 5

如果您甚至有一个小的备用驱动器,您可以在 BIOS 上从 GPT 启动 Windows(32 位或 64 位)。软盘就可以了。

引导至 Windows 安装/修复光盘。

在小磁盘/软盘上创建系统驱动器,并用于bcdboot将您的启动文件放在小磁盘上新创建的驱动器上。添加一个引导扇区bootsect。将 更改{bootmgr} deviceboot。从小磁盘启动。

此处详细介绍步骤。

  • 试过了,它奏效了。现在我在 BIOS 设置下的 GPT 磁盘上有一个可用的 Windows 8.1。我所要做的就是插入我的 USB 闪存驱动器来启动它。启动过程后,可以移除 USB 驱动器。就像过去一样,我的意思是 MS-DOS 软盘... (2认同)
  • 哦,是的。太激动了,请见谅。我花了一整个下午,终于设法在 BIOS 设置下的 GPT 磁盘上启动了 Windows 8.1,而无需第二个(小)MBR 磁盘 - 通过使用能够加载硬盘映像的 syslinux memdisk 模块。 (2认同)