由系统切换引发的 UEFI 的简析

  • 背景
  • BIOS vs UEFI
  • 磁盘概要简析
  • MBR vs GPT

背景

起因是家里的台式连不上 wifi 了。check 了以下几点:

  • 电脑之前能正常连接 wifi
  • 手机能连 wifi
  • 路由器没屏蔽电脑 mac 地址
  • 电脑使用路由器有线能连接
  • 电脑尝试两个无线网卡,均无效
  • 电脑尝试双系统(至此,确定为路由器的问题)

最后发现将路由器手动切换 wifi 信道即能正常连接。排查完问题之后,就是怎么把系统恢复回去了,然后就有接下来的坑。

BIOS vs UEFI

BIOS

BIOS 一般和硬件系统集成在一起,直接将 BIOS 指令刻录在 Integrated Circuit (IC)中,所以有时候称之为固件。早期 BIOS 被存放在 Read-Only Memery(ROM)中,无法被用户修改。后来由于硬件更新频繁,BIOS 大小和复杂度不断上升,随后,BIOS 指令被存放至 Electrically-Erasable Programmable Read-Only Memory (EEPROM 电可擦除可编程只读存储器)以满足需求。

用户的参数配置则保持在 Complementary Metal-Oxide-Semiconductor(CMOS 互补式金属氧化物半导体) 中

EEPROM vs EPROM

电可擦除?为什么?原来以前的 Erasable Programmable 是由紫外线等,小时候拆各种电子设备的时候,还很好奇这些芯片为什么有个“窗户“呢。

电可擦除相比原来的紫外线方式,显然要更稳定(太阳有紫外线)、更方便些(电路上本来就有电位,无需额外的紫外线技术了)。

SRAM vs DRAM vs SDRAM vs DDR

  • Static Random-Access Memory 需要保持通电,才能使存储数据保持。

  • Dynamic Random Access Memory 是一种半导体存储器,主要的作用原理是利用电容内存储电荷的多寡来代表一个二进制比特(bit)是1还是0。由于在现实中晶体管会有漏电电流的现象,导致电容上所存储的电荷数量并不足以正确的判别数据,而导致数据毁损。因此对于DRAM来说,周期性地充电是一个无可避免的要件。由于这种需要定时刷新的特性,因此被称为“动态”存储器。

    需要周期性地充电

  • 同步动态随机存取內存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取內存(DRAM)。通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。时钟被用来驱动一个有限状态机,对进入的指令进行管线(Pipeline)操作。这使得SDRAM与没有同步接口的异步DRAM(asynchronous DRAM)相比,可以有一个更复杂的操作模式。

  • 双倍数据率同步动态随机存取存储器(英语:Double Data Rate Synchronous Dynamic Random Access Memory,简称DDR SDRAM)为具有双倍数据传输率SDRAM,其数据传输速度为系统时钟频率的两倍,由于速度增加,其传输性能优于传统的SDRAM。

    SDRAM在一个时钟周期内只传输一次数据,它是在时钟上升期进行数据传输;而DDR则是一个时钟周期内可传输两次数据,也就是在时钟的上升期和下降期各传输一次数据。

UEFI

统一可扩展固件接口(英语:Unified Extensible Firmware Interface,缩写UEFI)是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案[1]。可扩展固件接口负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。

UEFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力。 [1]

和 BIOS 相比

二者显著的区别就是UEFI是用模块化,C语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较BIOS而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。

我比较关心的一点是:

在EFI规范中,一种突破传统MBR磁盘分区结构限制的GUID磁盘分区系统(GPT)被引入,新结构中,磁盘的主分区数不再受限制(在MBR结构下,只能存在4个主分区),另外EFI/UEFI+GUID结合还可以支持2.1 TB以上硬盘(有测试显示,3TB硬盘使用MBR,并且安装Windows 6.x 64位系统,只能识别到2.1TB),并且分区类型将由GUID来表示。

磁盘概要图解

  • 磁道(Track)
  • 柱面(Cylinder)
  • 扇区(Sector)
  • 磁头(Heads)
  • 盘片(Platters) 每个碟片都有两面,因此也会相对应每碟片有2个磁头。

image

两个磁头的示意图

  • A:磁道

  • B:扇面

  • C:扇区

  • D:(扇区组)

    在硬盘上定位某一数据记录位置—C扇区,使用了三维定位。

MBR vs GPT

MBR

主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。

主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB)。它不依赖任何操作系统,而且启动代码也是可以改变的,从而能够实现多系统引导

GPT

全局唯一标识分区表GUID Partition Table缩写GPT)是一个实体硬盘分区表的结构布局的标准。它是可扩展固件接口EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主引导记录(MBR)分区表。

其中在查看分区中,可以看到 GUID 有 (用 Disk Genius )2

  • MSR 微软保留分区 E3C9E316-0B5C-4DB8-817D-F92DF00215AE
  • EFI系统分区 C12A7328-F81F-11D2-BA4B-00A0C93EC93B
  • Windows恢复环境 DE94BBA4-06D1-4D40-A16A-BFD50179D6AC

Conclusion

UEFI & GPT

使用 MBR 格式的磁盘,使用 BIOS 直接引导启动,在开机选项中,直接选择对应的磁盘即可。

使用 GPT 格式的磁盘,必须使用 UEFI 来引导,直接使用磁盘无法正常引导系统。

References

  1. 统一可扩展固件接口
  2. 全局唯一标识分区表
  3. BIOS和UEFI的区别