我有新的 3TB HDD 和带有旧版 BIOS 的主板。要充分利用 HDD 容量,我必须使用 GPT 分区表。我想从此 HDD 双启动 Windows 8.1 和 Ubuntu 13.10(64 位)。
据我目前了解(来自 AskUbuntu 和我自己的测试),即使主板上没有 UEFI,Ubuntu 也可以支持 GPT 分区表,而 Windows 8.1 需要 UEFI 才能做到这一点。
- 当仅有旧式 BIOS 可用时,Ubuntu 13.10 实际上是否可以从具有 GPT 分区表的 HDD 启动?
- 如果 Ubuntu 可以这样启动,那么是什么阻止 Windows 这样做呢?我知道这个问题的答案可能超出了 AskUbuntu 的范围,但它可能会给出完整的图景。换句话说 -Ubuntu 比 Windows 优越在哪里,即使只有旧版 BIOS 可用,它也可以启动 GPT 分区的硬盘?
- 有没有什么方法可以从 3TB HDD 双启动 Windows 和 Ubuntu,以便至少让 Ubuntu 使用全部容量,同时让 Windows 占用更少的空间?
答案1
- 对于你的第一个问题,答案是肯定的,因为我现在正在做这件事。
- 我猜想这可能是微软鼓励采用 UEFI 的设计决定,而不是技术原因。UEFI 允许安全启动和类似功能,这对微软来说比对其客户更重要。
- 我不知道如何让 Windows 使用旧式 BIOS 从 GPT 启动,但有几种方法可以解决这个限制。
一种是在 Ubuntu 下的虚拟机中运行 Windows。
另一种方法是从第二个硬盘驱动器(格式化为 MBR)运行 Windows。只需将 Ubuntu 安装在 GPT 驱动器上作为单启动系统,将 Windows 安装在 MBR 驱动器上作为单启动系统,然后使用 BIOS 选择从哪个驱动器启动(在我的 PC 上,您只需在 POST 期间按 F12 即可获得启动设备菜单)。这比摆弄微软的拜占庭 BCD 方案要容易得多。Win 8.1 pro 系统分区只需要大约 30GB,而且您可以以非常便宜的价格购买比这大得多的驱动器。如有必要,您仍然可以在大驱动器上为 Windows 数据设置一个 NTFS 分区。
答案2
我基本同意 user225005 的观点——从技术角度来说,Windows 的限制在于其引导加载程序;BIOS 模式引导加载程序需要使用 MBR,而 Microsoft 已决定(无论出于何种商业原因)不支持 GPT。理论上,有人可能能够为 Windows 编写一个支持 GPT 的 BIOS 模式引导加载程序,但我不知道实际操作起来有多难。(堆栈上层可能存在一些问题。)
按照 user225005 的建议,使用第二个驱动器是解决该问题最简单的方法。如果这不切实际,您可以考虑使用开发人员的 UEFI 环境 (DUET)或者三叶草。这些都是 EFI 实现,可以像基于 BIOS 的计算机上的引导加载程序一样安装。DUET 面向开发人员,安装起来并不容易,但我链接到的页面包含一些应该有帮助的指针。Clover 是一个 Hackintosh(标准 PC 上的 OS X)引导加载程序,可以从 Hackintosh 环境轻松安装,但没有关于在没有 OS X 的情况下安装或使用它的文档。两者在许多基于 Intel 的系统上运行良好,但它们与 AMD CPU 的兼容性不佳。FWIW,我正在通过 DUET 启动一台笔记本电脑,效果相当不错——但我不建议普通用户设置它,除非绝对必要。
另一个选择是使用混合型MBR。这是一个丑陋而危险的黑客可以让 Linux 通过 GPT 查看整个磁盘,而 Windows 通过修改后的 MBR 查看最多三个分区。Mac 在与 Windows 双启动时依赖混合 MBR,对于 Linux/Windows 双启动,您也可以这样做。不过,正如我链接的页面中详细说明的那样,混合 MBR非常不稳定,使用时的错误(例如使用 Windows 分区工具修改分区)可能会导致灾难。如果要在两者之间做出选择,我建议您先尝试 DUET 或 Clover,然后只有当您无法使用 DUET 或 Clover 时才使用混合 MBR。