UEFI与BIOS GPT与MBR 科普

  • 前言
在x86 中, 按下开机按钮之后.第一个运行的软件有可能为下面的其中一种(不能两者皆有),类似嵌入式系统中的bootrom
	1. BIOS
	2. UEFI
当我们在讨论 BIOS 和 UEFI 的时候,我们讨论的是 x86开机后运行的第一个软件

在x86 中, 硬盘的布局有可能为下面的其中一种(不能两者皆有)// ok6410a 支持 u-boot kernel rootfs 都在sd 中, 这时候sd的 布局 就类似于 硬盘的布局.
	1. MBR
	2. GPT
当我们在讨论 MBR 和 GPT 的时候,我们讨论的是 x86中硬盘的分区
x86开机后运行的第一个软件
  • 总结
x86的机器
2010年及以前 一般内置为 BIOS
2011年开始 	开始内置 UEFI,而不是BIOS
// 现在(2020年11月9日13:20:39) x86 的机器(裸机,没装系统) 基本上都内置了 UEFI,装上系统之后 x86开机后运行的第一个软件 UEFI
BIOS
  • 如何进入
// 开机后根据提示 按 F2 或者 enter 或者 其他的 Fn
  • 进入之后 BIOS是什么样子
显著特征: 不支持鼠标,界面是 文字界面(类似于 linux下面 ncurses 库 做出来的)
BIOS是一个统称,有很多实现版本,由不同厂家维护.代码都不一样.
下面的三张图依次是 Phoenix_BIOS AMI_BIOS Insyde_BIOS

Phoenix_BIOS
AMI_BIOS
Insyde_BIOS

  • BIOS 有什么问题
BIOS实现 有很多套代码,接口不统一.
例如:写个 要在全部的BIOS实现中跑通 的 驱动 很难实现.
UEFI
  • 如何进入
// 开机后根据提示 按 F2 或者 enter 或者 其他的 Fn
  • 进入之后 UEFI 是什么样子
显著特征: 支持鼠标,界面是 图形界面(非文字界面)
UEFI是一套标准和代码,有一个实现版本.但不同厂家(联想/华为/小米/戴尔)拿来代码之后,会更换图形界面的样式,但是内在的接口不会变化
下面的一张图依次是 thinkpad_BIOS 

在这里插入图片描述

  • UEFI 有什么问题
臃肿
同 如何在系统(linux或者windows或者mac)启动之后查询BIOS信息
x86中硬盘的分区
  • 总结
系统(linux/windows)在硬盘A中,如果通过 BIOS/UEFI 将 硬件A中的 系统启动是一个问题

此时涉及到几个问题.
1.硬盘上是否需要引导代码
2.硬盘分区信息

x86开机后运行的第一个软件 决定了 这两个 问题的答案
对于BIOS来讲
	1. 硬盘上需要引导代码
	2. 硬盘分区最多只能分四个主分区或(三个分区一个逻辑分区)
对于UEFI来讲
	1. 硬盘上不需要引导代码
	2. 硬盘分区最多分区的数目没有限制

MBR
  • MBR 结构
    在这里插入图片描述
  • MBR 分区中的 MBR 一般是什么
安装不同的系统(windows/linux)会编程不同代码
对于 windows: TODO
对于 linux  : grub 的 stage1 或者grub2 的 boot.img
GPT
  • GPT 结构
    在这里插入图片描述
  • MBR分区中的 PMBR(LBA0) 什么作用
在GPT分区表的最开头,出于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外,能够识别GPT分区表的操作系统会检查保护MBR中的分区表,如果分区类型不是0xEE或者MBR分区表中有多个项,也会拒绝对硬盘进行操作。

在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。如Boot Camp就是使用这种方式启动Windows。
x86开机后运行的第一个软件 与 x86中硬盘的分区 配合 , 启动系统
x86开机后运行的第一个软件 有两个 
	1.BIOS
	2.UEFI
x86中硬盘的分区 有两个
	1. MBR
	2. GPT

自由组合 得到 4个
	BIOS+MBR(互联网上经常提到的)
	BIOS+GPT
	UEFI+MBR
	UEFI+GPT(互联网上经常提到的)
  • BIOS+MBR
原生支持
  • BIOS+GPT
GPT 的 LBA0 与 MBR的结构一样,只需要将 GPT 的 LBA0 中的内容改写为正确的 MBR 就行了

对于 grub ,MBR中可以装 grub的stage1 ,不装stage1_5,然后grub 的 stage2 在 /boot/grub/stage2 . // 如果 原来是 UEFI +GPT , 修改成 BIOS + GPT,不确定  UEFI +GPT 还能启动成功
 
对于 grub2, 可以采用 Bios boot partition 的方式 修改 UEFI +GPT 为 BIOS+GPT,且 修改后 UEFI +GPT 还能正常启动 // 请查看 https://www.cnblogs.com/f-ck-need-u/p/7084627.html


  • UEFI+MBR
原生支持
只需要设置启动模式为 Auto 或者 Legacy only

UEFI可设置成三种启动模式,即:Auto、UEFI、Legacy。
各种模式含义如下:
Auto/Both:自动按照启动设备列表中的顺序启动,优先采用UEFI方式.// 优先识别GPT分区
UEFI only:只选择具备UEFI启动条件的设备启动;// 只识别 GPT分区
Legacy only:只选择具备Legacy启动条件的设备启动。 // 只识别 MBR分区


  • UEFI+GPT
原生支持
只需要设置启动模式为 Auto 或者 UEFI only
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值