[转帖]硬盘分区详解

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
volans
帖子: 67
注册时间: 2006-11-15 14:28
来自: Beijing

[转帖]硬盘分区详解

#1

帖子 volans » 2006-11-16 14:15

我在WIKI上面翻译了一篇关于“挂载windows分区”的文档,有几个兄弟向我问起硬盘分区在LINUX下面编号的问题。这里转一个帖子,个人认为说得很详细。
本人作了一定的整理和修改,全文可一访问: http://linux.vbird.org/

文章来自:鳥哥的 Linux 私房菜

硬盘的主编号:
IDE\Jumper Master Slave
IDE1(Primary) /dev/hda /dev/hdb
IDE2(Secondary) /dev/hdc /dev/hdd

在硬碟裡面有分為兩個區域,一個是放置這個硬碟的資訊區,我們稱為 Master Boot Recorder, MBR ( 主要開機磁區 ), 一個則是實際檔案資料放置的地方。MBR 可以說是整個硬碟最重要的地方了,因為在 MBR 裡面記錄了兩個重要的東西,分別是:開機管理程式,與磁碟分割表 ( partition table )。因此,只要 MBR 物理實體壞掉了,那麼這顆硬碟就差不多要報廢了! 因為,如果系統找不到 partition table ,就無法使用這塊硬碟,所以資料即使沒有丟掉,但是沒有 MBR ,呵呵,還是不能使用的啦!

首先來看一看什麼是 partition table 呢?簡單的說,我們說的『 硬碟分割』就是在修改這個 partition table 而已!他基本上定義了『第 n 個磁碟區塊是由第 x 磁柱到第 y 個磁柱』,所以,每次當系統要去讀取 n 磁碟區塊時,就只會去讀取第 x 到 y 個磁區之間的資料!呵呵!這樣知道了嗎?很簡單吧!下次記得人家在談磁碟分割的時候, 不要以為系統真的會在硬碟上面用力、努力的劃標籤!實際上,他最大的功能就是修改 MBR 裡面的 partition table 啦!

不過,由於這個 MBR 區塊的容量有限,所以,當初設計的時候,就 只有設計成 4 個分割紀錄,這些分割記錄就被稱為 Primary ( 主分割 ) 及 Extended ( 延伸分割 ) ,也就是說,一顆硬碟最多可以有 4 個 ( Primary + Extended ) 的磁區,其中, Extended 只能有一個, 因此,你如果要分割成四塊磁碟分割的話,那麼最多就是可以:

P + P + P + P
P + P + P + E

的情況來分割了。其中需要特別留意的是,如果上面的情況中, 3P + E 只有三個『可用』的磁碟,如果要四個都『可用』,就得分割成 4P 了!( 因為 Extended 不能直接被使用,還需要分割成 Logical 才行, 底下我們會繼續說明的! )。那麼為什麼要有 Extended 呢?這是因為如果我們要將硬碟分割成 5 個區塊的話,那麼怎麼辦?這個時候就需要 Extended 的幫忙了。

由於 MBR 僅能保有四個 partition 的資料記錄,那如果超過 4 個以上時, 系統允許在額外的硬碟空間放置另一份磁碟分割資訊,那就是 Extended 了! 假設您將您的硬碟分割成為 3P + E ,那麼那個 E 其實是告訴系統,磁碟分割表在另外的那份 partition table, 也就是說,那個 Extended 其實就是具有『指向 (point)』正確的那個額外的 partition table 啦! 本身 Extended 是不能在任何系統上面被使用的,還需要再額外的將 Extended 分割成 Logical ( 邏輯 ) 分割才能被使用,所以囉,藉由這個 Extended 的幫忙,我們就可以分割超過 5 個可以利用的 partition 囉!

假如我的硬碟安裝在 IDE 1 的 Master ,並且我想要分割成 6 個可以使用的硬碟磁區,那麼每個磁碟在 Linux 底下的代號為何?

說明:
由於硬碟在 Primary + Extended 最多可以有四個,因此,在 Linux 底下,已經將 partition table 1 ~ 4 先留下來了,如果只用了 2 個 P + E 的話,那麼將會空出兩個 partition number 呦!再詳細的說明一下,假設我將四個 P + E 都用完了, 那麼硬碟的實際分割會如同下圖所示:

|-----|--------------|------------|-------------|-------------|-------------|-------------|
|MBR|Primary----|Primary---|Primary----|Logical----|Logical-----|Logical----|
|MBR|/dev/hda1|/dev/hda2|/dev/hda3|/dev/hda5|/dev/hda6|/dev/hda7|
|-----|-------------|-------------|-------------|-------------|-------------|-------------|


實際可以使用的是 /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5, /dev/hda6, /dev/hda7 這六個 partition!至於 /dev/hda4 這個 Extended 磁區本身僅是用來規劃出讓 Logical 可以利用的磁碟空間而已!(其實在每個 partition 的最前面磁區,會有一個特殊的區塊, 稱為 super block,我們的 Extended 指向的,就是 /dev/hda4 的 super block 處, 該處就是額外記錄的那個 partition table 啦!)

那麼萬一我只想要分割 1 個 Primary 與 1 個 Extended 呢?這個時候你的磁碟分割會變成如下所示:

|-----|--------------|------------|-------------|-------------|-------------|-------------|
|MBR|Primary----|Logical----|Logical----|Logical----|Logical-----|Logical-----|
|MBR|/dev/hda1|/dev/hda5|/dev/hda6|/dev/hda7|/dev/hda8|/dev/hda9|
|-----|-------------|-------------|-------------|-------------|-------------|-------------|

注意到了嗎?因為 1~4 號已經被預留下來了,所以第一個 Logical 的代號由 5 號開始計算起來,而後面在被規劃的, 就以累加的方式增加磁碟代號囉!而其中 /dev/hda3, /dev/hda4 這兩個代號則是空的, 被保留下來的代號。


--------------------完--------------------------------
回复