對很多PC的使用者來說,UEFI就像是一顆深水炸彈,表面風平浪靜,暗地里卻早已引發了巨大的震動。多虧了Microsoft的強橫,預裝WIN8的電腦指定需要GPT分區這一舉措,讓人們不禁發出感慨:哦天哪,我的電腦里還有這東西?一些好學的人對GPT進行了解以后,進一步發現了我們的幕后功臣:UEFI。本期文章我們就來說說,硬盤和硬盤分區這點事。
簡單地說,硬盤分區是就使用分區編輯器(partition editor)將一個硬盤上劃分幾個獨立的邏輯部分,盤片一旦劃分成數個分區,不同類的目錄與文件可以存儲進不同的分區。越多分區,也就有更多不同的地方,可以將文件的性質區分得更細,按照更為細分的性質,存儲在不同的地方以管理文件;但太多分區就成了麻煩。
硬盤分區就像給一間空蕩的房子劃分出臥室,廚房,客廳等相互隔離的空間一樣。主要是為了方面用戶的使用。另一方面,通過合理的硬盤分區,有效保護系統盤空間,確實能夠提高系統運行速度,再者,硬盤分區也可以有效地對數據進行保護。你當然可以不分區,只不過,當你面對越來越多的子目錄,或者是越來越慢的Windows,不得不費功夫去管理你的文件,或者重裝Windows的時候,恐怕會悔不當初。 “不要把所有的雞蛋放在同一個籃子里”這句至理名言在經濟學以外的其他領域也同樣是句警世恒言。
在講解MBR之前,有必要講講機械硬盤的一些相關概念,畢竟MBR作為20世紀最棒的磁盤管理方式,與機械硬盤可是聯系緊密的
(這樣可以更好地理解后面的內容)。
機械硬盤原理
機械硬盤由堅硬金屬材料制成的涂以磁性介質的盤片,盤片兩面稱為盤面或扇面,都可以記錄信息,由磁頭對盤面進行操作(如果你有壞的硬盤,可以動手拆開看。嗯?為什么用壞的?用好的可能費錢……)一般用磁頭號區分。結構特性決定了機械硬盤如果受到劇烈沖擊(摔在地上或是勤奮的你想拆開學習),磁頭與盤面可能產生的哪怕是輕微撞擊都有可能報廢。
繼續講原理:假設磁頭不動,硬盤旋轉,那么磁頭就會在磁盤表面畫出一個圓形軌跡并將之磁化,數據就保存在這些磁化區中,稱之為磁道,將每個磁道分段,一個弧段就是一個扇區。一個硬盤可以包含多個扇面,扇面同軸重疊放置,每個盤面磁道數相同,具有相同周長的磁道所形成的圓柱稱之為柱面,柱面數與磁道數相等。如下圖
了解了這些,我們就可以對最初的硬盤地址管理方式作一個原理層面的了解:
最初的尋址方式稱為CHS,在LBA(Logical Block Address)概念誕生之前,由他負責管理磁盤地址。所謂CHS即柱面(cylinder),磁頭(header),扇區(sector),通過這三個變量描述磁盤地址,需要明白的是,這里表示的已不是物理地址而是邏輯地址了。這種方法也稱作是LARGE尋址方式。該方法下:
硬盤容量=磁頭數×柱面數×扇區數×扇區大小(一般為512byte)。
后來,人們通過為每個扇區分配邏輯地址,以扇區為單位進行尋址,也就有了LBA尋址方式。但是為了保持與CHS模式的兼容,通過邏輯變換算法,可以轉換為磁頭/柱面/扇區三種參數來表示,和 LARGE尋址模式一樣,這里的地址也是邏輯地址了。(固態硬盤的存儲原理雖然與機械硬盤不同,采用的是flash存儲,但仍然使用LBA進行管理,此處不再詳述。)
科普到這里,我們可以試圖去理解MBR分區了?,F在我們來看看MBR分區的技術原理。
MBR原理
MBR:Master Boot Record,主分區引導記錄。最早在1983年在IBM PC DOS 2.0中提出。前面說過,每個扇區/區塊都被分配了一個邏輯塊地址,即LBA,而引導扇區則是每個分區的第一扇區,而主引導扇區則是整個硬盤的第一扇區(主分區的第一個扇區)。MBR就保存在主引導扇區中。另外,這個扇區里還包含了硬盤分區表DPT(Disk Partition Table),和結束標志字(Magic number)。扇區總計512字節,MBR占446字節(0000H - 01BDH),DPT占據64個字節(01BEH - 01FDH),最后的magic number占2字節(01FEH – 01FFH)。
現在,我們來看一個MBR記錄的實例:
80 01 01 00, 0B FE BF FC, 3F 00 00 00, 7E 86 BB 00
其中, “80”是一個分區的激活標志,表示系統可引導;“01 01 00”表示分區開始的磁頭號為01,開始的扇區號為01,開始的柱面號為00;“0B”表示該分區的系統類型是FAT32,其他比較常用的有04(FAT16)、07(NTFS);“FE BF FC”表示分區結束的磁頭號為254,分區結束的扇區號為63、分區結束的柱面號為764;“3F 00 00 00”表示首扇區的相對扇區號為63;“7E 86 BB 00”表示總扇區數為12289622。
可以看到,在只分配64字節給DPT的情況下,每個分區項分別占用16個字節,因此只能記錄四個分區信息,盡管后來為了支持更多的分區,引入了擴展分區及邏輯分區的概念。但每個分區項仍然用16個字節存儲。能表示的最大扇區數為FF FF,FF FFH,因此可管理的最大空間=總扇區數*扇區大小(512byte),也就是 2TB (由于硬盤制造商采用1:1000進行單位換算,因此也有2.2TB一說,別怪他們,他們不是程序員)。超過2TB以后的空間,不能分配地址,自然也就無法管理了。
MBR的諸多缺點使其應用大大受限。硬盤技術日新月異,硬盤容量突飛猛進(希捷將于今年開賣60TB 固態硬盤),多出來的硬盤空間總不能晾著吧,于是,Intel和Microsoft聯合,在剛誕生的UEFI規范下一起研發了新技術
GPT原理
GPT分區:全稱為Globally Unique Identifier Partition Table,也叫做GUID分區表,它是UEFI 規范的一部分。由于硬盤容量的急速增長,MBR的2.2T容量難以滿足要求,而UEFI BIOS的推廣也為GPT的實現打下了堅實的技術基礎,GPT應運而生,
我們來看看GPT的結構圖:
等等,MBR是不是走錯片場了?答案當然是沒有。這里的P意為protective,PMBR存在的意義就是,當不支持GPT的分區工具試圖對硬盤進行操作時(例如MS-DOS和Linux的fdisk程序),它可以根據這份PMBR以傳統方式啟動,過程和MBR+BIOS完全一致,極大地提高了兼容性。而支持GPT的系統在檢測PMBR后會直接跳到GPT表頭讀取分區表。和MBR類似,分區表中存儲了某個分區的起始和結束位置及其文件系統屬性信息,而分區才是實際存在的物理磁盤的一部分。
GPT HDR:GPT表頭,如下圖,主要定義了分區表中項目數及每項大小,還包含硬盤的容量信息。在64位的Windows Server 2003的機器上,最多可以創建128個分區,即分區表中保留了128個項,其中每個都是128字節。(也是EFI標準中的最低要求:分區表最小要有16,384字節)分區表頭還記錄了這塊硬盤的GUID,分區表頭位置(總是LBA1)和大小,也包含了備份分區表頭和分區表的位置和大小信息(LBA-1~LBA-34)。同時還儲存著它本身和分區表的CRC32校驗。固件、引導程序和操作系統在啟動時可以根據這個校驗值來判斷分區表是否出錯,如果出錯,可以使用軟件從硬盤最后的備份GPT中恢復整個分區表,如果備份GPT也校驗錯誤,硬盤將不可使用。具體內容如下表:
Partition Table:分區表,包含分區的類型GUID(如:EFI系統分區的GUID類型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}),名稱,起始終止位置,該分區的GUID以及分區屬性。其內容如下:
Microsoft對分區屬性做了更詳細的區分,目前有:
相較于MBR,GPT具有以下優點:
(1) 得益于LBA提升至64位,以及分區表中每項128位設定,GPT可管理的空間近乎無限大,假設一個扇區大小仍為512字節,可表示扇區數為,算下來,可管理的硬盤容量=18EB(1EB=1024PB=1,048,576TB),2T在它面前完全不在話下。按目前的硬盤技術來看,確實近乎無限,不過,以后的事誰知道呢。
(2) 分區數量幾乎沒有限制,由于可在表頭中設置分區數量的大小,如果愿意,設置個分區也可以(有人愿意管理這么多分區嗎),不過,目前windows僅支持最大128個分區。
(3) 自帶保險,由于在磁盤的首尾部分各帶一個GPT表頭,任何一個受到破壞后都可以通過另一份恢復,極大地提高了磁盤的抗性(兩個一起壞的請出門買彩票)。
(4) 循環冗余檢驗值針對關鍵數據結構而計算,提高了數據崩潰的檢測幾率。
(5) 盡管目前分區類型不超過百數(十數也沒有吧。),GPT仍提供了16字節的GUID來標識分區類型,使其更不容易產生沖突。
(6) 每個分區都可以擁有一個特別的名字,最長72字節,足夠寫一首七律了。滿足你的各種奇葩起名需求。
完美支持UEFI,畢竟它就是UEFI規范的衍生品。在將來全行業UEFI的情境下,GPT必將更快淘汰MBR。
其他
接下來進入加料時間,更詳細的講述硬盤知識。
前面說到過,磁化的弧段稱作一個扇區,一個扇區大小512kb,但硬盤在進行文件操作時并非以扇區為單位,而是——簇,“簇”是系統進行分配的最小單位,一個簇可以包含多個扇區,假設目前一個簇包含4個扇區,簇大小為2kb,一個文件大小恰為2kb,則占用了簇的所有可用空間,即便你有一個1B大小的文件需要保存,那么你占用的空間也是一個簇,簇內其他空間不可讀寫。
而對簇的大小進行管理的就是文件系統:
FAT16/FAT32: 早期的MS-DOS和WIN95操作系統中最常見的硬盤分區格式。一個簇最小為512個字節,其大小可以成倍增長,最大為32K,系統為每個簇分配唯一的索引號——一個16位二進制數來標識。因為16位二進制數最大為65536,所以FAT分區所擁有的簇的數量不可能超過65536個。這正是FAT分區大小不能超過2GB的原因。FAT16的繼任者——FAT32與其原理基本相同,相比前任優勢僅在于分區可以大于2GB,但不能存儲大于4GB的單個文件,看看現在一部BD的電影都要3,4個G,顯然不能滿足時代的需求,被淘汰的很快。
NTFS文件系統相比FAT,最大優點在于支持文件加密,通過采用日志式文件系統,詳細記錄磁盤的所有讀寫操作,提高了數據和系統的安全性,另一點則是突破了4GB大小限制。也是目前機械硬盤上的分區主流。不過對于目前越來越親民的的flash存儲,過多的操作記錄對存儲介質造成了較大的負擔,同樣的存取操作,NTFS下的讀寫次數就會比FAT32下來得多,造成了壽命較短的缺陷。因此針對移動存儲設備和固態硬盤,推出了exFAT文件系統。
exFAT:分區大小和單文件大小最大可達16EB(16×1024×1024TB);簇大小非 常靈活,最小512B,最高達32MB;采用了剩余空間分配表,空間利用率更高;同一目錄下最大文件數可達65536個。其特性未必強于NTFS,主要是針對flash存儲設備進行了優化(SSD,U盤),傳統硬盤不能格式化為該格式。
要是到現在你對扇區,簇,文件系統,分區幾個名詞有點混淆,不妨看看下圖:
有人會問,圖中的怎么突然出現了4k扇區,而且為什么下面又包含的是8個512b的扇區呢?邊上的偽裝是啥意思?恭喜你,你已經抓住了近年來的硬盤發展潮流。
扇區的大小雖然約定俗成,但其實是可以更改的,開始于 2009 年晚期,硬盤制造商正在從傳統的 512 字節扇區遷移到更大、更高效的 4096 字節扇區,國際硬盤設備與材料協會(International Disk Drive Equipment and
Materials Association,IDEMA)將之稱為高級格式化,也就是現在常說的“4K扇區”。
多年來,硬盤行業一直采用512字節扇區。然而,隨著硬盤容量的不斷增長,扇區大小日漸成為提高硬盤容量和糾錯效率方面的制約。扇區分辨率(扇區大小和總存儲大小的百分比)越來越低,盡管在管理小型離散數據時,分辨率越低越好。但現代的計算系統中多的是大型數據塊,一般遠比傳統 512 字節扇區大小要大得多。另外,隨著區域密度的增加,小型 512 字節扇區在硬盤表面上占用的空間也將越來越小。硬盤扇區中的數據占據的空間越小,錯誤糾正就會變得越困難,因為同樣大小的介質缺陷對總體數據負載損害的百分比更高,所以就需要更大的糾錯強度?,F在,硬盤開始通過先進的區域密度來提高錯誤糾正的上限。因此,為了改善錯誤糾正和實現格式化效率,提高扇區大小是硬盤行業內的普遍訴求。
不過,由于計算機系統的緩慢發展,多數仍將扇區假定為512字節,因此就產生了4K對齊問題。即使物理硬盤分區與計算機使用的邏輯分區對齊,保證硬盤讀寫效率。
有4k對齊當然就有4k對不齊。這個鍋,或許應該甩給操作系統。硬盤廠商為了保證與操作系統的兼容性,將新標準的"4K扇區"的硬盤模擬成扇區為512B的硬盤,問題出現在此時:當在一些特殊情況下格式化的系統(比如用ghost11.5以下版本),會默認定義為4096字節大小為一個簇,這沒毛病,但是,由于其引導區只占用了不多不少63個扇區,真正的文件系統在63號扇區之后,
我們可以算出前63個扇區大小為:63*512B = 32256B。
63個扇區占用簇個數:32256B/4096B=7.875簇。
從第64個扇區開始,每個簇都會跨越兩個物理單元,占據前一個單元的一小部分和后一個單元的一大部分,前面說過,系統文件操作以簇為單位,如果每個簇都要用到兩個扇區,勢必拖累讀寫速度。也就產生了“4k對不齊”的概念,“4K對齊”要做的事就是將硬盤的模擬扇區(512B)對齊到的8整數倍個“實際”4K扇區,即8*4096 = 32768B,使其正好跨過63扇區的特性,從第64個扇區對齊。
其實不僅是操作系統,一些廣泛使用的軟件程序也可能引發4k對不齊現象。因此,對齊技術的存在確有其必要性。盡管4k必然取代512b,但冰凍三尺非一日之寒,全行業仍需要一個時間來進行技術的全面推廣。
后記
一些經常被問到的關于GPT的問題:
- Q:怎么知道我的硬盤是MBR的還是GPT的?
A: windows自帶個非常好用的工具-diskpart,簡單幾條命令即可,如圖:
- Q:如何將GPT轉換為MBR?
A: 還是diskpart,( 警告 :請先備份內容)
不過我還是建議你不要這樣做,畢竟MBR是個被淘汰的技術。
- Q:GPT真好,我想立刻使用,可是如何將MBR轉換為GPT而不丟失東西?
A:這是個好主意,你可以使用AOMEI Partition Assistant Standard,它是個免費軟件。非常好用。不過還是建議提前備份內容。
評論
查看更多