本章學習內容
——–介紹MBR、GPT
——–不同的啟動流程
——–分區結構
——–分區差異
——–磁盤管理方式
一、介紹MBR、GPT
MBR(Master Boot Record)主引導記錄和GUID(GUID Partition Table,簡寫為GPT)全局唯一標識分區列表是磁盤的倆種的分區方式,它們各自占據了從磁盤的0磁道0扇區開始的不同的字節數大小,這倆種不同分區方式也決定了磁盤的各種特性,是計算機啟動之前最先加載的程序。
二、啟動流程
既然談到了了磁盤的分區方式,我想這里很有必要介紹一下與之對應的啟動方式。對于Legacy BIOS+MBR和UEFI BIOS+GPT這倆種技術而言,后者雖然使用人群不大,但是更先進,因為Windows8的誕生,讓這一技術真正走進了人們的視野。GRUB是一個多系統啟動引導程序,先啟動grub再記載磁盤的MBR或者GPT,是傳統的啟動方式。
三、詳解分區結構
1、分區展示
MBR磁盤示圖
在MBR磁盤的第一個扇區內保存著啟動代碼和硬盤分區表。啟動代碼的作用是指引計算機從活動分區引導啟動操作系統,也可以叫做Bootloader;分區表的作用是記錄硬盤的分區信息。在MBR中,分區表的大小是固定的,一共可容納4個主分區信息。最后是磁盤有效標志,它是磁盤分區的校驗位。
GPT磁盤示圖
在GTP磁盤的第一個扇區中同樣有一個與MBR(主引導記錄)類似的標記,叫做PMBR。PMBR的作用是,當使用不支持GPT的分區工具時,整個硬盤將顯示為一個受保護的分區,以防止分區表及硬盤數據遭到破壞。而其中存儲的內容和MBR一樣。
2、分區細看
<1>centos7默認從2048號扇區開始,1–2047號扇區(每個扇區512byte)的1M空間為grub預留
<3>演示MBR的作用
◆添加一塊200G的磁盤,并創建文件系統
◆把sda的MBR轉移至新磁盤
/dev/sda的MBR在/dev/sdb中生效,sdb擁有了和sda一樣的分區
◆破壞/dev/sdb的bootloader,sdb將無法啟動,此處只作破壞
以上證明了在MBR中,bootloader引導系統啟動,而分區標識符一旦被破壞,雖然文件系統不會被破壞,但是分區會隨之消失。
注意:生產生活中通常我們會備份MBR
四、倆種分區的差異
1、在MBR中,分區表的大小是固定的,一共可容納4個主分區信息。在MBR分區表中邏輯塊地址采用32位二進制數表示,因此一共可表示2^32(2的32次方)個邏輯塊地址。如果一個扇區大小為512字節,那么硬盤最大分區容量僅為2TB。
2、GPT的分區方案之所以比MBR更先進,是因為在GPT分區表頭中可自定義分區數量的最大值,也就是說GPT分區表的大小不是固定的。另外,GPT分區方案中邏輯塊地址(LBA)采用64位二進制數表示,可以計算一下2^64是一個多么龐大的數據,以我們的需求來講完全有理由認為這個大小約等于無限。除此之外,GPT分區方案在硬盤的末端還有一個備份分區表,保證了分區信息不容易丟失。
涉及專業術語:
CHS:標準的硬盤模式,它限定硬盤容量才8G,非常有效,現在市場上已經沒有了!
LAB:邏輯塊尋址模式,是現在最常用的一種,常見的為500G,1T
五、磁盤管理方式
其實在磁盤上,是分為一個個數據塊的,一個塊的大小通常時4K,而又把大量的數據塊,分為有限的塊組。每個塊組中,有DGT、Block bitmap、Inode bitmap、Inode table和不均勻超級塊,下圖:
換一種思路來理解磁盤數據塊的分布方式
關于各個數據塊存儲的信息,以下作簡要介紹
◆ Boot block: 前面已經介紹過,里面存儲的是MBR或者GDT等系統啟動的程序
◆ Super block:記錄著磁盤上所有數據塊組的信息以及數據塊的大小、inode大小……一旦損壞,數 據丟失,需備份多次
◆ GDT:存儲著每個塊組的磁盤塊的數量,需備份多次
◆ Block bitmap:是磁盤塊上數據塊的索引,是加快查找inode的一種非常重要的數據結構
◆ Inode bitmap:作用同Block bitmap
◆ Inode table:遍歷inode bitmap
所以:我們在操作一個數據時,在磁盤內部實現的機制是相當復雜的,首先通過inode table查找來分配空閑的inode,再根據inode bitmap找的對應的數據塊,當然,關于inode的詳細機制,我們前面已經介紹過,此處不做詳細解釋。
原創文章,作者:mfwing,如若轉載,請注明出處:http://www.www58058.com/41614
文章對于MBR和GPT兩種分區方式進行了詳細的介紹,同時也配上圖片來說明問題所在。如果加上實驗性驗證和歷史背景介紹會讓文章整體更有說服力,當然,整篇博客還是能讓人看到很多專業性所在,還能看出很用心的地方。