原文地址: 第二章、主機規劃與磁碟分割
磁区有512bytes和4kbytes两种物理设置量
实体机的分割槽档名为/dev/sd[a-], 虚拟机的分割槽档名为/dev/vd[a-p]
磁盘分割使用分割表, 分割表有两种格式, MBR 或者 GPT
MSDOS(MBR) :
早期使用, 磁盘磁区为512bytes, 第一个磁区存有:
- 主要开机记录区(Master Boot Record, MBR): 446 bytes
- 分割表(partition table):64 bytes
分割表只有64bytes, 最多只能形成4个分割的记录, 分割的记录称为分割槽, 分割槽有两种, 主要分割槽(Primary) 和 延伸分割槽(Extend)
可以使用延伸分割槽来拓展分割槽数量, 使分割槽数量大于4, 如下图
分割表作用示意图
几个点:
- 主要分割槽和延伸分割槽加起来最多4个
- 延伸分割槽最多1个
- 延伸分割槽分割出来的叫逻辑分割
- 主要分割和延伸分割可以被格式化, 延伸分割不行
分割原因:
- 资料安全性
- 执行速度, 分割槽使资料集中在某个磁柱的区段, 磁盘搜索范围减小
缺点:
- 磁盘容量不能超过2.2T, 因为一个分割记录只有16bytes
- MBR只有一个磁区,被破坏后难以补救
- MBR里存开机管理程序的区块只有446bytes, 不能写太多程序
GPT 磁碟分割表(partition table):
上面说了磁区有512bytes和4kbytes两种, 为了兼容, GPT
使用逻辑区块位址(LBA), 一个LBA占 512bytes
GPT分割表结构示意图
GPT 使用磁盘前34个区块存放分割记录, 磁盘最后33个区块做备份,更加安全
LBA0(相容区块):
两部分, 一部分为开机程序, 另一部分是辨识GPT的一个标记
LBA1(GPT表头):
记录分割表的位置和大小, 以及备份的位置和分割表的检验机制码(CRC32), 验证错误时去使用备份
LBA2 - 33(分割记录):
里面的每个LBA可以记录4个记录, 每个记录为128bytes
开机流程中的BIOS 和 UEFI 开机检测程序
BIOS 搭配 MBR/GPT 的开机流程:
- BIOS:开机主动执行的固件,会认识第一個可开机的装置;
- MBR:第一个可开机装置的第一个磁区內的主要开机记录区块, 內含开机管理程序;
- 开机管理程序(boot loader):一支可读取核心档案來执行的软件;
- 核心档案:开始操作系统的功能...
BIOS和MBR是硬件提供的, boot loader是操作程序提供的
boot loader主要任务:
- 提供开机选单
- 读取核心档案
- 转交其他loader
- 每個分割槽都擁有自己的開機磁區(boot sector)
- 圖中的系統槽為第一及第二分割槽,
- 實際可開機的核心檔案是放置到各分割槽內的!
- loader只會認識自己的系統槽內的可開機核心檔案,以及其他loader而已;
- loader可直接指向或者是間接將管理權轉交給另一個管理程式。
UEFI BIOS 搭配 GPT 开机的流程
传统BIOS无法识别GPT, 且为16位的程序, 所以产生了UEFI来取代BIOS, 也称UEFI 为 UEFI BIOS
比較項目 | 傳統 BIOS | UEFI |
---|---|---|
使用程式語言 | 組合語言 | C 語言 |
硬體資源控制 | 使用中斷 (IRQ) 管理 不可變的記憶體存取 不可變得輸入/輸出存取 |
使用驅動程式與協定 |
處理器運作環境 | 16 位元 | CPU 保護模式 |
擴充方式 | 透過 IRQ 連結 | 直接載入驅動程式 |
第三方廠商支援 | 較差 | 較佳且可支援多平台 |
圖形化能力 | 較差 | 較佳 |
內建簡化作業系統前環境 | 不支援 | 支援 |
网友评论