GPT
計算機技術
GUID磁碟分區表(GUID Partition Table,縮寫:GPT)其含義為“全局唯一標識磁碟分區表”,是一個實體硬碟的分區表的結構布局的標準。它是可擴展固件介面(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一64bits來存儲邏輯塊地址和大小信息的主開機紀錄(MBR)分區表。
• GUID磁碟分區表(GUIDPartition Table,縮寫:GPT)是一個實體硬碟的分區表的結構布局的標準。它是可擴展固件介面(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一個扇區來存儲邏輯塊地址和大小信息的主開機紀錄(MBR)分區表。對於那些扇區為512位元組的磁碟,MBR分區表不支持容量大於1TB(1 × 10^12位元組)的分區,然而,一些硬碟製造商(諸如希捷和西部數據)注意到了這個局限性,並且將他們的容量較大的磁碟升級到了4KB的扇區,這意味著MBR的有效容量上限提升到了16 TB。這個看似“正確的”解決方案,在臨時地降低了人們對改進磁碟分配表的需求的同時,也給市場帶來了關於在有較大的塊(block)的設備上從BIOS啟動時,如何最佳的劃分磁碟分區的困惑。GPT分配64bits給邏輯塊地址,因而使得最大分區大小在2^64-1個扇區成為了可能。對於每個扇區大小為512位元組的磁碟,那意味著可以有9.4ZB(9.4 x 10^21位元組)或18 E 個512位元組(9,444,732,965,739,290,426,880位元組 或 18,446,744,073,709,551,615(2^64-1)個扇區 x 512(=2^9)位元組每扇區)。
• 截止至2010年,大多數操作系統對GPT均有所支持,儘管包括Mac OS X和Windows在內的一些僅支持在EFI基礎上自GPT分區啟動,見#操作系統支持。
• GPT分區表的結構。此例中,每個邏輯塊(LBA)為512位元組,每個分區的記錄為128位元組。負數的LBA地址表示從最後的塊開始倒數,−1表示最後一個塊。
GPT[計算機技術]
• 在MBR硬碟中,分區信息直接存儲於主引導記錄(MBR)中(主引導記錄中還存儲著系統的引導程序)。但在GPT硬碟中,分區表的位置信息儲存在GPT頭中。但出於兼容性考慮,硬碟的第一個扇區仍然用作MBR,之後才是GPT頭。
• 跟現代的MBR一樣,GPT也使用邏輯區塊位址(LBA)取代了早期的CHS定址方式。傳統MBR信息存儲於LBA 0,GPT頭存儲於LBA 1,接下來才是分區表本身。64位Windows操作系統使用16,384位元組(或32扇區)作為GPT分區表,接下來的LBA 34是硬碟上第一個分區的開始。
• 蘋果公司曾經警告說:“不要假定所有設備的塊大小都是512位元組。”一些現代的存儲設備如固態硬碟可能使用1024位元組的塊,一些磁光碟(MO)可能使用2048位元組的扇區(但是磁光碟通常是不進行分區的)。一些硬碟生產商在計劃生產4096位元組一個扇區的硬碟,但截至2010年初,這種新硬碟使用固件對操作系統偽裝成512位元組一個扇區。
徠• 使用英特爾架構的蘋果機也使用GPT。
• 為了減少分區表損壞的風險,GPT在硬碟最後保存了一份分區表的副本。
(LBA 0)
• 在GPT分區表的最開頭,處於兼容性考慮仍然存儲了一份傳統的MBR,用來防止不支持GPT的硬碟管理工具錯誤識別並破壞硬碟中的數據,這個MBR也叫做保護MBR。在支持從GPT啟動的操作系統中,這裡也用於存儲第一階段的啟動代碼。在這個MBR中,只有一個標識為0xEE的分區,以此來表示這塊硬碟使用GPT分區表。不能識別GPT硬碟的操作系統通常會識別出一個未知類型的分區,並且拒絕對硬碟進行操作,除非用戶特別要求刪除這個分區。這就避免了意外刪除分區的危險。另外,能夠識別GPT分區表的操作系統會檢查保護MBR中的分區表,如果分區類型不是0xEE或者MBR分區表中有多個項,也會拒絕對硬碟進行操作。
• 在使用MBR/GPT混合分區表的硬碟中,這部分存儲了GPT分區表的一部分分區(通常是前四個分區),可以使不支持從GPT啟動的操作系統從這個MBR啟動,啟動后只能操作MBR分區表中的分區。如Boot Camp就是使用這種方式啟動Windows。 [2]
GPT分區的一大優勢就是針對不同的數據建立不同的分區,同時為不同的分區創建不同的許可權。就如其名字一樣,GPT能夠保證磁碟分區的GUID唯一性,所以GPT不允許將整個硬碟進行複製,從而保證了磁碟內數據的安全性。想比與我們目前通常使用的MBR分區,GPT本身就有著得天獨厚的優勢。
GPT分區的創建或者更改其實並不麻煩,但是一塊硬碟如果想從MBR分區轉換成GPT分區的話,就會丟失硬碟內的所有數據。所以我們在更改硬碟分區格式之前需要先將硬碟備份,然後使用Windows自帶的磁碟管理功能或者使用DiskGenius等磁碟管理軟體就可以輕鬆地將硬碟轉換成GPT(GUID)格式,轉換完成後,我們就可以真正開始系統的安裝過程了。
(LBA 1)
• 分區表頭定義了硬碟的可用空間以及組成分區表的項的大小和數量。在使用64位Windows Server 2003的機器上,最多可以創建128個分區,即分區表中保留了128個項,其中每個都是128位元組。(EFI標準要求分區表最小要有16,384位元組,即128個分區項的大小)
• 分區表頭還記錄了這塊硬碟的GUID,記錄了分區表頭本身的位置和大小(位置總是在LBA 1)以及備份分區表頭和分區表的位置和大小(在硬碟的最後)。它還儲存著它本身和分區表的CRC32校驗。固件、引導程序和操作系統在啟動時可以根據這個校驗值來判斷分區表是否出錯,如果出錯了,可以使用軟體從硬碟最後的備份GPT中恢復整個分區表,如果備份GPT也校驗錯誤,硬碟將不可使用。所以GPT硬碟的分區表不可以直接使用16進位編輯器修改。
• 主分區表和備份分區表的頭分別位於硬碟的第二個扇區(LBA 1)以及硬碟的最後一個扇區。備份分區表頭中的信息是關於備份分區表的。
(LBA 2–33)
• GPT分區表使用簡單而直接的方式表示分區。一個分區表項的前16位元組是分區類型GUID。例如,EFI系統分區的GUID類型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下來的16位元組是該分區唯一的GUID(這個GUID指的是該分區本身,而之前的GUID指的是該分區的類型)。再接下來是分區起始和末尾的64位LBA編號,以及分區的名字和屬性。