在之前一篇《Windows存儲管理之磁盤類型簡介》中介紹了Windows的基本磁盤類型。本篇中將對GPT和MBR這兩類磁盤類型的結構進行深入介紹。
創(chuàng)新互聯(lián)建站服務項目包括霍邱網站建設、霍邱網站制作、霍邱網頁制作以及霍邱網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,霍邱網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到霍邱省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
Windows磁盤結構:
Windows的主流磁盤結構分為MBR和GPT兩種。MBR是早期Windows的唯一選擇,但是隨著物理磁盤的容量不斷增大。GPT結構成為目前的主流,最大支持超過2TB的容量,提供容錯,多分區(qū)支持,比MBR來的更加強大。
MBR(Master Boot Record )磁盤結構:
在Basic MBR Disk中的MBR中包含了幾種信息。
Bootstrap Code – 也叫Master boot code,它是一段可執(zhí)行的代碼,主要作用是,掃描活動分區(qū)的分區(qū)表,尋找活動分區(qū)的開始扇區(qū),加載啟動扇區(qū)到內存等功能。
Disk Signature - Windows的所有物理磁盤都有一個磁盤簽名的機制,如果沒有簽名windows則不能訪問該磁盤的數據。當Windows新掃描到一個物理磁盤,嘗試寫入一些磁盤簽名,用來標識這個磁盤。簽名的長度為8個字節(jié)。然后會寫入到第一個扇區(qū),位置為0x01B8 - 0x01BB。簽名存儲在注冊表的HKLM\SYSTEM\MountedDevices位置。
Partition Table – 分區(qū)表,一個64字節(jié)的數據結構用來定義每個分區(qū)的起始位置。每個分區(qū)定義去大小為16個字節(jié)。因為這個設計,所以MBR的的擴展主分區(qū)最多只能支持4個。
一個簡單的Basic (MBR)的磁盤結構如下圖所示,我可以看到最外層的是物理磁盤(Disk),在物理磁盤的最前端包含MBR(Master Boot Record),這個例子中,定義了一個分區(qū)和NTFS邏輯卷。
MBR Disk支持最大四個主分區(qū)(Primary Patition),如果創(chuàng)建多個主分區(qū)的,則結構如下。一個物理磁盤中包含四個主分區(qū),每個主分區(qū)包含一個文件卷。
如果啟用了擴展分區(qū),則在擴展分區(qū)中可以包含多個邏輯卷。
GPT(GUID - Globally Unique Identifer)磁盤結構:
截止201年,大多數操作系統(tǒng)都支持GPT GPT Disk在主的MBR中包含幾個內容,GPT Disk的分區(qū)表包括以下幾個內容。在MBR硬盤中,分區(qū)信息直接存儲于主引導記錄(MBR)中(主引導記錄中還存儲著系統(tǒng)的引導程序)。但在GPT硬盤中,分區(qū)表的位置信息儲存在GPT頭中。但出于兼容性考慮,硬盤的第一個扇區(qū)仍然用作MBR,之后才是GPT頭。
Protective MBR - 和MBR在Partition Table中包含主分區(qū)信息不同的是,GPT Disk在磁盤的第一個扇區(qū)(Sector)為“Protective MBR”,它位于LBA0(通用的存儲尋址方式大小為512每單位)這個位置上。它包含的內容為磁盤的分區(qū)信息和初始的BIO啟動器。這是為了兼容性的考慮,保證一些遺留的MBR磁盤工具可以識別到GPT Disk。
Partition Table Header – 分區(qū)表頭定義了一些磁盤上可使用的塊,同時還定義了組成分區(qū)表的Partition Entries數目和大?。ù笮⊥ǔ?28個字節(jié))。GPT支持的64位版本的Windows Server 2003以上版本,支持創(chuàng)建最大128個分區(qū),每個分區(qū)記錄大小為128個字節(jié)。在分區(qū)表頭中還記錄了磁盤的GUID,用來記錄自身的大小與位置以及備用GPT表頭的位置(位于磁盤的最后一個扇區(qū))。同時還包括CRC32的校驗值。
Partition entries – GPT Disk用簡單直接的條目來描述分區(qū)。最初的16個字節(jié)用來標識分區(qū)類型。第二個16直接用來記錄改分區(qū)唯一的GUID。接下來三個8字節(jié)的記錄分別描述的初始LBA地址,結束LBA地址和分區(qū)屬性。最后72個字節(jié)為分區(qū)名。單個分區(qū)記錄大小為128個字節(jié)。通常Partition entries會從LBA2地址開始。
最后,為了為了減少分區(qū)表損壞的風險,GPT在硬盤最后保存了一份分區(qū)表的副本。