Large Disk mini-HOWTO 中譯版: 磁碟 geometry 以及分割區

Next Previous Contents

## 3. 磁碟 geometry 以及分割區

如果你的磁碟上有好幾種作業系統, 每一種使用一個或多個分割區．那麼對於分割區位於何處不同的看法可能導致災難性的後果．

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)可以定址的到．

這不足以應付現今的磁碟, 人們使用各種硬體或軟體上的方法來克服．

Next Previous Contents