如果你的磁盘上有好几种作业系统, 每一种使用一个或多个分割区 那么对于分割区位于何处不同的看法可能导致灾难性的后果
MBR 中包含一个分割表描述分割区(主分割区: primary) 在那里 有四个表格给四个主要分割区使用, 它们看起来像
struct partition {
char active; /* 0x80: bootable, 0: not bootable */
char begin[3]; /* CHS for first sector */
char type;
char end[3]; /* CHS for last sector */
int start; /* 32 bit sector number (counting from 0) */
int length; /* 32 bit number of sectors */
};
(其中 CHS 是磁簇/磁头/磁区: Cylinder/Head/Sector 的缩写)
因此, 有项信息是重覆的: 分割区的位置可以由 24 位元的 begin
以及 end
栏位, 和 32 位元的 start
以及 length
栏位给定
Linux 只使用 start
以及 length
栏位, 故最多可以处理包含 2^32 个磁区的分割区, 也就是, 最大 2 TB 的分割区 这是现今磁盘机的两百倍, 所以也许足够往后十年的需求
不幸的是, BIOS INT13 呼叫使用三个位元组的 CHS 编码, 10 个位元作为磁簇号码, 8 个位元作为磁头号码, 及 6 个位元作为磁轨上的磁区号码 可能的磁簇号码是 0-1023, 可能的磁头号码是 0-255, 而磁轨上可能的磁区号码为 1-63(是的, 磁轨上的磁区是由 1 起算, 不是 0) 以这 24 位元最多可以定址 8455716864 个位元组(7.875 GB), 这是 1983 年磁盘机的两百倍
更不幸的是, 标准的 IDE 界面容许 256 个磁区/磁轨, 65536 个磁簇以及 16 个磁头 它自己本身可以存取 2^37 = 137438953472 个位元组(128 GB), 但是加上 BIOS 方面 63 个磁区与 1024 个磁簇的限制后只剩 528482304 个位元组(504 MB)可以定址的到
这不足以应付现今的磁盘, 人们使用各种硬件或软件上的方法来克服