擴展分區
基本概念
所謂擴展分區,嚴格地講它不是一個實際意義的分區,它僅僅是一個指向下一個分區的指針,這種指針結構將形成一個單向鍊表。這樣在主引導扇區中除了主分區外,僅需要存儲一個被稱為擴展分區的分區數據,通過這個擴展分區的數據可以找到下一個分區(實際上也就是下一個邏輯磁盤)的起始位置,以此起始位置類推可以找到所有的分區。無論系統中建立多少個邏輯磁盤,在主引導扇區中通過一個擴展分區的參數就可以逐個找到每一個邏輯磁盤。[1]
而擴展分區的概念是比較複雜的,極容易造成硬盤分區與邏輯磁盤混淆;分區表的第四個字節為分區類型值,正常的可引導的大於32mb的基本DOS分區值為06,擴展的DOS分區值是05。如果把基本DOS分區類型改為05則無法啟動系統 ,並且不能讀寫其中的數據。
如果把06改為DOS不識別的類型如efh,則DOS認為該分區不是DOS分區,當然無法讀寫。很多人利用此類型值實現單個分區的加密技術,恢復原來的正確類型值即可使該分區恢復正常。一個硬盤主分區至少有1個,最多4個,擴展分區可以沒有,最多1個。且主分區+擴展分區總共不能超過4個。邏輯分區可以有若干個。
在windows下激活的主分區是硬盤的啟動分區,他是獨立的,也是硬盤的第一個分區,正常分的話就是C區。在linux下主分區和邏輯分區都可以用來放系統,引導os開機,grub會兼容windows系統開機啟動。
分出主分區後,其餘的部分可以分成擴展分區,一般是剩下的部分全部分成擴展分區,也可以不全分,那剩的部分就浪費了。
但擴展分區是不能直接用的,他是以邏輯分區的方式來使用的,所以說擴展分區可分成若干邏輯分區。他們的關係是包含的關係,所有的邏輯分區都是擴展分區的一部分。 在linux中第一塊硬盤分區為hda分區,主分區編號為hda1-4,邏輯分區從5開始。
擴展分區的容量=各個邏輯分區的容量之和
主分區也可成為「引導分區」,會被操作系統和主板認定為這個硬盤的第一個分區。所以C盤永遠都是排在所有磁盤分區的第一的位置上。
MBR(主引導記錄)的分區表(主分區表)只能存放4個分區,如果要分更多的分區的話就要一個擴展分區表(EBR),擴展分區表放在一個系統ID為0x05的主分區上,這個主分區就是擴展分區,擴展分區能可以分若干個分區,每個分區都是個邏輯分區。
分區區分
DOS和FAT文件系統最初都被設計成可以支持在一塊硬盤上最多建立24個分區,分別使用從C到Z 24個驅動器盤符。但是主引導記錄中的分區表最多只能包含4個分區記錄,為了有效地解決這個問題,DOS的分區命令FDISK允許用戶創建一個擴展分區,並且在擴展分區內再建立最多23個邏輯分區,其中的每個分區都單獨分配一個盤符,可以被計算機作為獨立的物理設備使用。關於邏輯分區的信息都被保存在擴展分區內,而主分區和擴展分區的信息被保存在硬盤的MBR內。這也就是說無論硬盤有多少個分區,其主啟動記錄中只包含主分區(也就是啟動分區)和擴展分區兩個分區的信息。
實戰擴展swap分區
參考文獻
- ↑ [劉偉.數據恢復深度揭秘.北京:電子工業出版社,2010]