在我们每天使用 Linux 系统的过程中,很少有人会去关心系统在启动时都发生了什么。但如果你是一位系统爱好者、开发者或者准运维工程师,了解 BIOS 和 UEFI,以及它们如何与 Linux 协同工作,是非常重要的一步。
什么是 BIOS 和 UEFI? #
- BIOS(Basic Input/Output System)
BIOS 是一种传统的固件接口,自 1980 年代以来一直被用于 IBM PC 兼容系统。它在计算机开机时运行,完成以下几件事:
- 进行 POST(电源自检)
- 初始化硬件
- 查找启动设备
- 加载启动加载器(如 GRUB)
BIOS 通常是以 16 位实模式运行,受内存寻址限制,且对硬盘支持能力较差(最多只能支持 2TB 的硬盘)。
- UEFI(Unified Extensible Firmware Interface)
UEFI 是 BIOS 的现代替代品,由 Intel 主导开发。与 BIOS 相比,UEFI 具备以下优势:
- 图形化界面、鼠标支持
- 更快的启动速度
- 支持超过 2TB 的硬盘(使用 GPT 分区表)
- 安全启动(Secure Boot)机制,增强安全性
- 运行在 32 位或 64 位环境,支持更多内存
UEFI 使用一个称为 EFI 系统分区(ESP) 的 FAT 文件系统来存放启动程序(如 grubx64.efi)。
Linux 下的启动流程(UEFI 与 BIOS 对比) #
BIOS 模式下的 Linux 启动流程:
[BIOS] -> [MBR] -> [GRUB/GRUB2] -> [Linux Kernel] -> [init/systemd]
- BIOS 读取硬盘的 MBR(主引导记录)
- MBR 中的 bootloader(如 GRUB)加载并执行
- GRUB 载入内核 (
vmlinuz
) 和initramfs
- 内核启动,交给
init/systemd
进程
UEFI 模式下的 Linux 启动流程:
[UEFI Firmware] -> [EFI System Partition] -> [GRUB2 .efi 文件] -> [Linux Kernel] -> [init/systemd]
- UEFI 固件查找
ESP
分区中的.efi
文件(启动器) - 加载 GRUB 的 EFI 版本(如 grubx64.efi)
- GRUB 启动 Linux 内核
如何判断你的系统使用的是 BIOS 还是 UEFI? #
可以在 Linux 系统中通过以下方法判断:
ls /sys/firmware/efi
如果该目录存在,则表示系统使用的是 UEFI 模式启动;如果不存在,说明系统在 BIOS(Legacy)模式下启动。
Linux 安装时的分区建议(UEFI vs BIOS) #
BIOS 模式下:
- /boot 分区(可选,方便 GRUB 管理)
- 根 / 分区
- swap 分区(可选)
UEFI 模式下:
- ESP 分区(FAT32 格式,约 100~512MB,挂载到 /boot/efi)
- /boot 分区(可选)
- 根 / 分区
- swap 分区(可选)
GRUB 在 BIOS 与 UEFI 下的不同表现 #
- 在 BIOS 模式下,GRUB 安装到 MBR(如 /dev/sda)。
- 在 UEFI 模式下,GRUB 安装为一个 .efi 文件,放入 EFI 系统分区。
安装时的 GRUB 命令也不同:
# BIOS 模式安装 GRUB
grub-install /dev/sda
# UEFI 模式安装 GRUB
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
Secure Boot 与 Linux 的关系 #
UEFI 引入了 Secure Boot,目的是防止恶意软件在启动过程中加载。默认状态下,某些发行版(如 Ubuntu)会提供签名的 bootloader,确保能在开启 Secure Boot 的环境中正常启动。
如果你使用的是自定义内核或启动器,可能需要关闭 Secure Boot 或手动签名。
总结 #
对比点 | BIOS | UEFI |
---|---|---|
启动分区 | MBR(最多2TB) | GPT(可支持更大硬盘) |
启动方式 | 读取 MBR,引导 GRUB | 加载 ESP 分区中的 .efi 文件 |
内存模式 | 实模式(16位) | 保护模式(32/64位) |
分区限制 | 最多支持 4 个主分区 | 支持多个分区,无主扩展限制 |
启动速度 | 相对较慢 | 更快 |
安全启动 | 不支持 | 支持 Secure Boot |
如果你正在准备装 Linux 系统,建议优先选择 UEFI 模式安装,除非硬件不兼容。未来的主板几乎都默认启用了 UEFI,并逐渐淘汰 Legacy BIOS。