![MBR / GPT / UEFI 之间的关系及其局限性](https://linux22.com/image/1496265/MBR%20%2F%20GPT%20%2F%20UEFI%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB%E5%8F%8A%E5%85%B6%E5%B1%80%E9%99%90%E6%80%A7.png)
我遇到过必须决定使用 MBR 还是 GTP 和 UEFI 的情况。我在网上读了太多文章,但对一些事情感到困惑:
我读到过 MBR 不支持超过 2.2TB 的驱动器。但我有一个使用 MBR 的 3TB 外置硬盘,我可以使用其所有空间。那么 MBR 仅支持 2.2TB 是否属实? 使用 Paragon Partition Manager 制作的我的外部 3TB 硬盘的屏幕截图
在所有关于 GPT 的文章中,它总是与 UEFI 有关。但是在我的旧 PC(非 UEFI)上,我使用分区工具将磁盘转换为 GPT。所以 GPT 只能与 UEFI 一起使用,或者我是否可以在没有 UEFI 的旧 PC 上创建和使用 GPT 磁盘?
答案1
对于你的第一个问题:MBR 限制为 2.2 TB。您很可能认为自己使用了全部 3 TB,但实际上并非如此,或者您认为它是 MBR,但实际上是 GPT 磁盘。我会检查磁盘管理它将讲述完整的故事。
对于你的第二个问题:硬盘分区与 BIOS/UEFI 无关,而与操作系统有关。只要操作系统支持,您可以在 BIOS(非 UEFI 系统)中使用 GPT 分区驱动器,但 UEFI 系统必须使用 GPT。
答案2
前面两个答案(由 Hennes 和 Moses 提供)有正确部分,也有错误部分。以下是正确答案:
- 为了详细说明 Hennes 所写的内容,MBR 仅限于 2^32 - 1(即 4,294,967,295)个扇区的分区,这些扇区的起始时间不晚于相同的值(从 0 开始计算)。假设扇区大小为 512 字节,则分区大小和起始点的限制为 2 TiB(约 2.2 TB)。从技术上讲,可以通过将磁盘分成两个或更多个分区将其扩展到略低于 4 TiB 的磁盘大小,但这是不太明智的,因为许多操作系统,可能还有许多磁盘实用程序,在这样的磁盘上都会崩溃。因此,在具有 512 字节扇区的磁盘上,这安全的MBR 下磁盘大小的最大限制为 2 TiB。但是,您的外部磁盘可能使用 4096 字节扇区,这会将此限制提高到 16 TiB,这当然比 3 TB 的磁盘大小大得多。虽然 Moses 是正确的并且磁盘仅被部分使用的可能性很小,但这种情况不太可能发生;4096 字节扇区大小在外部磁盘和未安装磁盘的 USB 磁盘盒中非常常见,尤其是当磁盘大于 2 TiB 时。为确保万无一失,请检查磁盘上扇区的大小。大多数磁盘分区实用程序都提供了获取此信息的方法,但不同工具之间的详细信息差异很大。
- 正如 Moses 所说,对 GPT 与 MBR 的支持主要是操作系统支持的问题,而不是固件(EFI 与 BIOS)支持的问题。话虽如此,GPT 是作为 EFI 规范的一部分创建的,因此 GPT 通常与 EFI 相关联。旧式 BIOS 本身不会在启动过程中解析分区表;它只是加载磁盘的第一个扇区并执行它在那里找到的任何代码。是这个引导加载程序,而不是 BIOS 本身,读取分区表。Linux 和 FreeBSD 等操作系统使用可以理解 GPT 的引导加载程序,因此即使在基于 BIOS 的旧计算机上也可以从 GPT 磁盘启动。通常也可以在 EFI 模式下从 MBR 磁盘启动,尽管这种配置很难设置,因为大多数操作系统的安装程序不鼓励这种配置。尽管如此,还是有偶然固件兼容性问题,例如固件看到 GPT 磁盘并以此为线索禁用其 BIOS 兼容性支持,从而阻止 GPT-on-BIOS 选项工作。与 Hennes 所写相反,此类问题很少见,即使在较旧的计算机上也是如此。事实上,根据我的经验,这些问题在较新的基于 UEFI 的计算机上更常见;与 BIOS 不同,它们的固件会解析分区表,因此可以使用该信息禁用 BIOS/CSM/旧版支持。
这两个问题在我的GPT fdisk 文档。请参阅以下章节解决 MBR 的限制,GPT 的旧式 BIOS 问题, 和从 GPT 启动。
答案3
我读到过 MBR 不支持超过 2.2TB 的驱动器。
MBR 有一个限制,即该字段支持的最大数乘以旧的 512 字节扇区大小为 2TiB。这限制了它只能使用 2TiB(市场宣传为 2.2TB)或更小的磁盘。
如今,我们也有具有 4K 扇区的消费类驱动程序,并且这些驱动器的 MBR 限制高出八倍。
在所有关于 GPT 的文章中,它总是与 UEFI 有关。
并非总是如此。只是大多数时候如此。
一个老的带有 BIOS 固件的主板通常不理解 GPT。这意味着它要么无法理解驱动器,无法启动。或者,如果执行得很糟糕,它甚至可能无法进行 POST。
具有现代 BIOS 的主板可以很好地使用 GPT 驱动器。
带有 EFI 固件的主板必须支持 GTP。考虑到 GPT 和 EFI 推出的时间范围,您通常会看到第一个和最后一个。但这并不排除中间答案(好的 BIOS 与 GPT 配合得很好)。