读《鸟哥的linux私房菜》第二章

2019-03-04  本文已影响0人  明年决赛小牛打雄鹿

原文地址: 第二章、主機規劃與磁碟分割

磁区有512bytes和4kbytes两种物理设置量
实体机的分割槽档名为/dev/sd[a-], 虚拟机的分割槽档名为/dev/vd[a-p]

磁盘分割使用分割表, 分割表有两种格式, MBR 或者 GPT

MSDOS(MBR) :

早期使用, 磁盘磁区为512bytes, 第一个磁区存有:

  1. 主要开机记录区(Master Boot Record, MBR): 446 bytes
  2. 分割表(partition table):64 bytes
分割表只有64bytes, 最多只能形成4个分割的记录, 分割的记录称为分割槽, 分割槽有两种, 主要分割槽(Primary) 和 延伸分割槽(Extend)

可以使用延伸分割槽来拓展分割槽数量, 使分割槽数量大于4, 如下图


分割表作用示意图
几个点:
  1. 主要分割槽和延伸分割槽加起来最多4个
  2. 延伸分割槽最多1个
  3. 延伸分割槽分割出来的叫逻辑分割
  4. 主要分割和延伸分割可以被格式化, 延伸分割不行
分割原因:
  1. 资料安全性
  2. 执行速度, 分割槽使资料集中在某个磁柱的区段, 磁盘搜索范围减小
缺点:
  1. 磁盘容量不能超过2.2T, 因为一个分割记录只有16bytes
  2. MBR只有一个磁区,被破坏后难以补救
  3. 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 的开机流程:
  1. BIOS:开机主动执行的固件,会认识第一個可开机的装置;
  2. MBR:第一个可开机装置的第一个磁区內的主要开机记录区块, 內含开机管理程序;
  3. 开机管理程序(boot loader):一支可读取核心档案來执行的软件;
  4. 核心档案:开始操作系统的功能...

BIOS和MBR是硬件提供的, boot loader是操作程序提供的

boot loader主要任务:
  1. 提供开机选单
  2. 读取核心档案
  3. 转交其他loader
开机管理程序示意图
  1. 每個分割槽都擁有自己的開機磁區(boot sector)
  2. 圖中的系統槽為第一及第二分割槽,
  3. 實際可開機的核心檔案是放置到各分割槽內的!
  4. loader只會認識自己的系統槽內的可開機核心檔案,以及其他loader而已;
  5. loader可直接指向或者是間接將管理權轉交給另一個管理程式。
UEFI BIOS 搭配 GPT 开机的流程

传统BIOS无法识别GPT, 且为16位的程序, 所以产生了UEFI来取代BIOS, 也称UEFI 为 UEFI BIOS

比較項目 傳統 BIOS UEFI
使用程式語言 組合語言 C 語言
硬體資源控制 使用中斷 (IRQ) 管理
不可變的記憶體存取
不可變得輸入/輸出存取
使用驅動程式與協定
處理器運作環境 16 位元 CPU 保護模式
擴充方式 透過 IRQ 連結 直接載入驅動程式
第三方廠商支援 較差 較佳且可支援多平台
圖形化能力 較差 較佳
內建簡化作業系統前環境 不支援 支援
上一篇下一篇

猜你喜欢

热点阅读