我是否正确地认为 UEFI 和 GPT 完全弃用了所有 CHS/MBR 遗留问题并消除了所有与扇区大小相关的问题(对齐、最大驱动器大小等)以及分区限制(例如最多 4 个主分区)?
答案1
它使一些限制变得足够大,使它们不再成为问题(例如:64 个分区对 4 个,最大分区/磁盘大小为几个 ZB),但据我所知,GPT 并未解决扇区大小问题。
答案2
让我们依次讨论一下每个问题:
- 中枢性高血压-- GPT 专门使用逻辑/线性块寻址 (LBA),因此使用 GPT 时 CHS 几何问题会消失。(GPT 的保护性 MBR 中有 CHS 值,但这只是用来防止不了解 GPT 的工具弄乱磁盘。尽管 GPT 规范明确规定了保护性 MBR 的 CHS 字段中应包含哪些内容,但许多工具似乎对此“随意而为”,大多数操作系统似乎并不关心其中的内容。)请注意,即使 MBR 也不再真正使用 CHS。尽管 CHS 值是 MBR 数据结构的一部分,但它们的最大大小约为 8GB,这按今天的标准来说是微不足道的。相反,现代磁盘使用 32 位 LBA 值来定义分区;大多数目的和大多数磁盘都会忽略 CHS 值。
- 结盟-- 由于 GPT 使用 LBA 并忽略 CHS,因此分区与柱面值的对齐对于 GPT 来说变得无关紧要。但是,高级格式磁盘、某些类型的 RAID 阵列和 SSD 有新的对齐要求。这些要求适用于 GPT 和 MBR 磁盘,并且它们使得将分区对齐到某些扇区号的 2 的幂倍数上是可取的。因此,现代分区工具默认将分区对齐到 2048 个扇区 (1MiB) 边界上,这适用于大多数磁盘。(不过,某些 SSD 甚至需要更高的对齐值。)此对齐问题与磁盘硬件有关,而与分区系统无关,因此如果您对特定设备的分区对齐有疑问,应咨询硬件制造商。
- 最大驱动器大小-- MBR 使用 32 位 LBA 值。与 512 字节扇区大小相结合,最大可达 2TiB。GPT 使用 64 位 LBA 值,磁盘大小上限为 8ZiB。如果扇区大小也增加,这两个限制也会增加。如今,某些磁盘(主要是外置型号)使用 4096 字节扇区,MBR 上的限制为 16TiB,GPT 上的限制为 64ZiB。
- 4 个分区限制-- GPT 默认使用一个包含 128 个分区的分区表,但是如果需要可以增加这个值。GPT fdisk (
gdisk
)例如,可以做到这一点。GPT 不需要扩展分区或逻辑分区,如果没有这些分区,将 GPT 的分区称为“主分区”实际上没有任何意义,尽管有时会这样做,特别是由处理两种分区表类型的分区软件。 - 扇区大小-- MBR 和 GPT 都可以在扇区大小不是 512 字节的磁盘上正常工作。事实上,这种情况已经持续多年了;十年前,我使用过带有 2048 字节扇区的 MBR 磁光盘 (MO)。但是,软件堆栈的某些部分(包括至少一些 BIOS)对 512 字节磁盘进行了硬编码假设,因此从这样的磁盘启动可能会对某些 BIOS 造成问题。我不知道这种问题有多普遍。EFI 据称在固件中消除了这种假设,但我自己没有测试过。
请注意,这些问题中的大多数都与 MBR 和 GPT 之间的差异有关。即使在基于 BIOS 的计算机上也可以使用 GPT,尽管 Windows 拒绝从此类计算机上的 GPT 磁盘启动。这些问题中唯一与 BIOS 与 EFI 直接相关的问题是它们支持从具有非 512 字节扇区的磁盘启动。