linux操作系统入门篇(2):MBR分区和GPT分区、linux开机过程

#重新刷基础知识系列#

linux操作系统入门篇准备重刷《鸟哥的linux私房菜》和linux 命令行。

鸟哥的网站:http://linux.vbird.org/Searching.php

1.MBR分区与GPT分区

1.1 MBR分区

linux支持通过MBR(Master Boot Record, 主要开机记录区) 管理开机管理程序与分区表。MBR存放在磁盘0磁道0柱面的第一个扇区,这个扇区一般512Bytes,其中:

  • 主要开机记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446 Bytes
  • 分区表(partition table):记录整颗硬盘分区的状态,有64 Bytes

因为分区表只有64字节,最多只能记录4个分区,这个4个分区最多只能有一个扩展分区。也就是说liniux可以有4个主分区,或者3个主分区+1个扩展分区,而扩展分区可划分出来很多的逻辑分区。

注意:

  • 1-4是留给前四个P+E分区的,扩展分区划分逻辑分区后,逻辑分区编号一定是从5开始。如下图,划分为P+E的模式,/dev/sdb3, /dev/sdb4被保留下来没有用到。
  • 扩展分区不可以被格式化

MBR分区表,每个分区只有16字节,能记录的信息相当有限。

  • 操作系统无法抓取到 2.2T 以上的磁盘容量!
  • MBR 仅有一个区块,若被破坏后,经常无法或很难救援。
  • MBR 内的存放开机管理程序的区块仅 446Bytes,无法容纳较多的程序码。

出现大容量磁盘后,MBR分区格式的局限性非常明显,于是出现了GPT磁盘分区格式。

1.2 GPT分区

GPT将磁盘按照逻辑区块(Logical Block Address, LBA)划分处理,可以理解逻辑区块为扇区。

与 MBR 仅使用第一个 512Bytes 区块来纪录不同, GPT 使用了 34 个 LBA 区块来纪录分区信息!同时与过去 MBR 仅有一的区块,被干掉就死光光的情况不同, GPT 除了前面 34 个 LBA 之外,整个磁盘的最后 33 个 LBA 也拿来作为另一个备份。

 LBA0:512字节,前446字节同MBR一样,存放开机管理程序,后64字节不是存放分区表,而是存放一个特殊标志,表明此磁盘是GPT磁盘。如果磁盘管理程序不支持GPT分区,就不认识该磁盘,从而保护该磁盘不被修改。因此LBA0具有保护机制,保护该分区不被破坏。

LBA1:记录分区表本身的位置和大小,同时记录备份GPT分区的位置,并加入了分区表CRC32校验机制。

LBA2-33:每个LBA都记录4个分区,所以GPT默认有4*32=128个分区。

GPT分区最大磁盘容量达233T,且GPT分区没有主分区、扩展分区、逻辑分区的概念,所有分区是独立的,都可以作主分区,都可以格式化使用。

 2.开机流程

2.1 BIOS开机

BIOS是写入到主板的一个固件(固件是写入硬件的一个软件程序),BIOS是系统开机主动执行的第一个程序,接下来BIOS识别第一个可启动的存储设备,启动第一个存储设备上MBR开机管理程序,BIOS完成任务。MBR中的开机管理程序载入操作系统内核文件,MBR完成任务,操作系统内核开始操作系统功能。

如果分区表是GPT格式,BIOS也能从LBA0中读取开机管理程序,如果开机管理程序认识GPT,能够读取操作系统内核就能正常开机,否则开机失败。

开机流程:

  1. BIOS:开机主动执行的固件,会认识第一个可开机的设备;
  2. MBR:第一个可开机设备的第一个扇区内的主要开机记录区块,内含开机管理程序;
  3. 开机管理程序(boot loader):一支可读取核心文件来执行的软件;
  4. 核心文件:开始操作系统的功能...

Centos使用GRUB boot loader,需要一个额外的分区bios boot,存放更多开机程序。

2.2 UEFI

BIOS不太懂GPT,需要GPT的LBA0提供兼容模式才能读取MBR中的开机管理程序。为此,有了UEFI (Unified Extensible Firmware Interface)统一可扩展固件界面接口,

UEFI使用C语言编写,UEFI提供硬件资源管理(轮询模式,bios是中断模式),开机管理,软件设置等功能,载入操作系统后,停止工作。与BIOS差异不大,但是在某些场景下,UEFI可以协助操作系统在找不到特定设备时,该特定设备可以再uefi的操作下继续运行。

UEFI加入安全启动机制,系统必须经过UEFI验证才能开机,否则无法顺利开机。

  • 30
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值