爲什麼硬盤只能有四個主分區

爲什麼硬盤只能有四個主分區

硬盤最多分爲4個主分區,這是一個常識可是很少告訴爲什麼這麼分,網上找了兩篇不錯的文章應該回答清楚了這個問題
1、PC行業標準中一個硬盤只能分四個分區.這樣的四個分區在不同的操作系統中被冠以不同的名稱他可能叫partition (主分區)或者slice ,但是無論他們怎麼叫,這些系統都支持這樣的四個分區,都可以識別分區的起始位置和大小等信息.這裏我把這樣的分區用一個最常用的詞來命名:主分區 (primary partition).爲什麼一個硬盤只能分四個主分區呢?這是由個人計算機初期的設計架構決定的.一開始,PC被設計成這樣的啓動過程,開機時主板 BIOS進行自檢,當一切OK後,就開始讀取硬盤的第一個扇區,一個扇區的大小是512字節,這是計算機工業裏的標準,無論什麼硬盤,一個扇區的大小都是 512字節.BIOS把這512字節的內容讀出來並執行.這512字節被叫做MBR(master boot record)主引導記錄) .這512自己包含了硬盤最重要的信息:分區表.由於空間只有區區512字節,所以分區表的大小就有很大限制,他被設計成十分小但是又足夠描述硬盤的分區 情況.包括分區的開始扇區,結束扇區,引導標誌,分區類型等等.每個分區信息用16個字節表示,四個分區就用掉了16X4=64個字節,這64個字節分佈 在MBR的第467-510字節,後面緊接着兩個字節AA和55被稱爲幻數(Magic Number),BOIS讀取MBR的時候總是檢查最後是不是有這兩個幻數,如果沒有就被認爲是一個沒有被分區的硬盤.儘管分區表中明明有數據,也會報 錯,告訴你係統不存在.所以,對硬盤加密的簡單辦法就是從MBR中察掉這兩個字節.那麼這個硬盤掛到任何電腦上都會顯示爲一個沒有分區的空白硬盤.但是隻 要把這兩個字節重新寫上,數據又能讀出.當然,你得知道怎麼重新寫上.
2、主分區,也稱爲主磁盤分區,和擴展分區、邏輯分區一樣,是一種分區類型。主分區中不能再劃分其他類型的分區,因此每個主分區都相當於一個邏輯磁盤(在這一點上主分區和邏輯分區很相似,但主分區是直接在硬盤上劃分的,邏輯分區則必須建立於擴展分區中)。

實際上在早期的硬盤分區中並沒有主分區、擴展分區和邏輯分區的概念,每個分區的類型都是現在所稱的主分區。由於硬盤僅僅爲分區表保留了64個 字節的存儲空間,而每個分區的參數佔據16個字節,故主引導扇區中總計只能存儲4個分區的數據。也就是說,一塊物理硬盤只能劃分爲4個邏輯磁盤。在具體的 應用中,4個邏輯磁盤往往不能滿足實際需求。爲了建立更多的邏輯磁盤供操作系統使用,引入了擴展分區和邏輯分區,並把原來的分區類型稱爲主分區。

爲什麼硬盤只能最多有四個主分區

   本文爲搜索網上資料並加以總結,僅供參考:      MBR(Master Boot Recorder)主要開機扇區,放置硬盤的信息。MBR 可以說是整個硬盤最重要的地方了,因爲在 MBR 裏面記錄了兩個重要的東西,分別是:開機管理程序,與磁盤分區表 ( partition table )。所以我們所做的硬盤分區,也就是在修改partition table。

   由於這個 MBR 區塊的容量有限,所以,當初設計的時候,就只有設計成 4 個分區紀錄(這個說法不太準確,下文有詳細說明),這些分區記錄就被稱爲 Primary ( 主分區 ) 及 Extended ( 擴展分區 ) ,也就是說,一顆硬盤最多可以有 4 個 Primary + Extended 的扇區,其中,Extended 只能有一個,因此,你如果要分區成四塊磁盤分區的話,那麼最多就是可以:

P + P + P + P

P + P + P + E

的情況來分區了。需要特別留意的是,如果上面的情況中, 3P +E 只有三個『可用』的磁盤,如果要四個都『可用』,就得分區成 4P 了!( 因爲 Extended 不能直接被使用,還需要分區成 Logical 才行)

思考一:如果我要將我的大硬盤暫時分區成四個 partition ,同時,還有其它的空間可以讓我在未來的時候進行規劃,那麼該如何分區?

由剛剛的說明,我們可以知道, Primary + Extended 最多只能有四個 partition,而如果要超過 5 個 partition 的話,那麼就需要 Extended 的幫忙。因此,在這個例子中,我們千萬不能分區成四個 Primary 爲什麼呢?假如您是一個 20 GB 的硬盤,而 4 個 primary 共用去了 15 GB ,您心想還有 5 GB 可以利用對吧?錯!剩下的 5 GB 完全不能使用,這是因爲已經沒有多餘的 partition table 紀錄區可以記錄了,因此也就無法進行額外的分區,當然囉,空間也就被浪費掉了!因此,請千萬注意,如果您要分區超過 4 槽以上時,請記得一定要有 Extended 分區區,而且必須將所有剩下的空間都分配給 Extended ,然後再以 logical 的分區區來規劃 Extended 的空間。

思考二:我可不可以僅分區 1 個 Primary 與 1 個 Extended 呢?

當然可以!基本上, Logical 可以有 64 個,因此,你可以僅分區一個主分區,並且將所有其它的分區都給 Extended ,利用 Logical 分區來進行其它的 partition 規劃即可!

思考三:假如我的硬盤安裝在 IDE 1 的 Master ,並且我想要分區成 6 個可以使用的硬盤扇區,那麼每個磁盤在 Linux 底下的代號爲何?

說明:

由於硬盤在 Primary + Extended 最多可以有四個,因此,在 Linux 底下,已經將 partition table 1 ~ 4 先留下來了,如果只用了 2 個 P + E 的話,那麼將會空出兩個 partition number 呦!再詳細的說明一下,假設我將四個 P + E 都用完了。其中Extended /dev/hda4包括三個邏輯分區。

實際可以使用的是 /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5, /dev/hda6, /dev/hda7 這六個 partition!至於 /dev/hda4 這個 Extended 扇區本身僅是用來規劃出讓 Logical 可以利用的磁盤空間而已!

那麼萬一我只想要分區 1 個 Primary 與 1 個 Extended 呢?

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


這個問題,結合歷史來說會說得比較準確。爲什麼最多只可以分四個主要分區,並不是單由操作系統所決定的。

第一,爲什麼一個扇區只有512字節,爲什麼不是1024字節呢?

首先,我想說一個扇區是多少字節是可以自己(硬盤生產廠家)定義的,可以是1024字節的。所以說,一個扇區是512字節並不是理論值,而是習慣值。也就是一個扇區的大小爲512字節對於硬盤的生產廠家來說都是習慣的這樣定義了,誰也不想更改這種習慣。

第二,硬盤的第一扇區可以分成三個部分:第一部分MBR,需要佔用446字節,第二部分DPT,需要佔用64字節,這是因爲一個分區表需要佔用16字節,64/16=4,所以剛好能存放四個分區的表,這就是爲什麼只能分四個分區。還有兩個字節就用來存放結束標誌。這樣

446+64+2=512字節。

對硬盤加密其實就是改寫最後兩個字節的結束標誌。

試想如果當初硬盤廠家將一個扇區設置成1024字節,還是隻能分四個分區嗎?邏輯驅動器也需要分區表,它存放在擴展分區的第一扇區,所以邏輯驅動器也不是隨便想分多少就分多少的。

這些都是一些硬件的知識。

有很多的問題都是歷史遺留下來的,要想問個究竟需要對計算機的發展歷史有了解。前人所做的一切,不實用了的都被拋棄或改進了,拋棄了就不說了,改 進的還是會受到歷史的影響。前端時間有個朋友問我爲什麼intel和nvida要爭是CPU還是GPU重要,瞭解一下CPU的發展史和GPU的發展史很容 易就能想到了。這樣就不說了。

引用
http://bbs.51cto.com/thread-421679-1.html

引用
http://hi.baidu.com/zzspf/blog/item/5ca351ca7936798fc81768a1.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章