BIOS

TOC

启动顺序

  • 按下电源开关。
  • CPU 从地址 FFFF0000H 处开始执行 JUMP 指令,跳转到固化在 BIOS ROM 的自检程序代码。
  • 读取 Flash ROM 加载 BIOS 程序。
  • 读取 CMOS RAM 加载 BIOS 设置。
  • BIOS 执行 POST 进行开机自检。
  • BIOS 根据 CMOS 中设置的启动顺序 (Boot Sequence) 搜寻可引导的存储设备(比如硬盘、U 盘、光盘等)的第一个扇区是否有 bootloader,如有则读入内存地址为 0000:7C00H 处,将系统控制权交给 bootloader。
    • 检查地址 0000:01FEH-0000:01FFH(MBR 的结束标志位)是否等于 55AAH。若不等于则尝试搜索下一个启动设备,如果没有启动设备满足要求,则死机。
  • 当检测到有启动设备满足要求后,BIOS 将控制权交给相应启动设备。启动设备的 MBR 将自己复制到内存 0000:0600H 处,然后继续执行。根据 MBR 中的引导代码启动引导程序。
  • 进入 bootloader

BIOS 芯片

BIOS 程序存储在 Flash ROM 芯片上,容量一般为 1~8M。

CMOS 芯片

CMOS (Complementary Metal Oxide Semiconductor) 是可读写的 RAM 芯片,存储主板的重要参数, 包括系统时间、CPU 电压与频率、BIOS 设置。由主板上的纽扣电池供电,断电会丢失数据。

如果 BIOS 设置出问题导致无法开机,终极解决方案是取下 CMOS 电池重置 BIOS 设置。

POST

POST (Power-On Self-Test) 过程会非常快速,用户几乎感觉不出来。

POST 之后会有峰鸣声表示检查结果。一声简短的 beep 声表示系统正常。如果在 POST 过程中系统设备存在致命的问题,BIOS 会发出不同含义的蜂鸣声来报告检测过程中出现的错误,同时启动中止,声音的长短及次数对应着系统的错误类型。不同 BIOS 系统的峰鸣声类型不同。

查看 BIOS 信息

sudo dmidecode -t bios

BIOS 唤醒

在系统关机后,自动唤醒启动系统。

  • RTC 唤醒 (时钟唤醒)
  • 来电唤醒
  • 网络唤醒 (WOL, Wake On LAN)