我們昨天應該是聊完MSDOS的部分,今天應該是要來聊 GUID partition table(GPT 磁碟分割表)
昨天有提到說MSDOS 在磁碟容量超過2.2TB的時候會出問題,所以才出現GPT磁碟分割表來解決。
為了相容於所有磁碟,因此在磁區的定義上面,大多會使用所謂的邏輯區塊位址(Logic Block Address, LBA)來處理,GPT將所有磁碟區塊以此LBA來規劃,第一塊LBA就被稱為LBA0。
與MBR不同,MBR僅使用第一個512bytes區塊來記錄不同,GPT使用了34個LBA區塊來記錄分割資訊。
GPT除了前面34個LBA以外,整個磁碟的最後33個LBA也被拿來做另外一個備份,所以就不會像MBR一樣,一個區域掛掉,全部都爆炸。
接下來就來稍微介紹一下分割結構
LBA0
與MBR模式相似,這個相容區塊也分為兩個部分,一個是儲存第一階段開機管理程式,而在原本的分割表紀錄區內,這個相容模式僅放入一個特殊標幟的分割,用來表示這顆磁碟式GPT格式。
LBA1
這個部分記錄了分割表本身的位置與大小,同時記錄了備份用的GPT分割放置的位置,同時放置了分割表的檢驗機制碼,作業系統可以根據這個檢驗碼來判斷GPT是否正確。假如不幸出錯,還可以透過這個紀錄區來取得備份的GPT來恢復正常運作
LBA2-33
從LBA2開始,每個LBA區塊都能儲存4筆分割資訊,所以在預設的情況下,總共可以有128筆分割資訊。還有,GPT在每筆紀錄中分別提供了64bits來記載開始/結束的磁區號碼。基本上暫時解除了容量過大帶來的困擾。
現在的GPT分割預設提供多達128筆紀錄,而在Linux本身的核心裝置紀錄中,針對單一磁碟來說,雖然過去最多只能到達15個分割槽,不過由於Linux kernel 透過 udev 等方式處理,現在Linux 也已經沒有這個限制了。
對了,GPT格式中並沒有主分割、延伸分割、邏輯分割這三種概念,每筆紀錄都是獨立的存在,也能被視為是主要分割,所以每一個分割都拿被格式化使用。
以上就是本人介紹磁碟分割的部分,如果有缺漏的部分,也麻煩大家多指教