<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>引导 on Kang&#39;s Blog</title>
        <link>https://blog.coderkang.top/tags/%E5%BC%95%E5%AF%BC/</link>
        <description>Recent content in 引导 on Kang&#39;s Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Wed, 23 Apr 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.coderkang.top/tags/%E5%BC%95%E5%AF%BC/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>BIOS 与 UEFI：从历史到现代的引导之路</title>
            <link>https://blog.coderkang.top/p/bios_and_uefi/</link>
            <pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://blog.coderkang.top/p/bios_and_uefi/</guid>
            <description>&lt;img src=&#34;https://blog.coderkang.top/&#34; alt=&#34;Featured image of post BIOS 与 UEFI：从历史到现代的引导之路&#34; /&gt;&lt;p&gt;在计算机发展的历史长河中，启动固件扮演着至关重要的角色。从早期的 BIOS 到如今功能强大的 UEFI，它不断进化以满足硬件日益增长的性能、安全与管理需求。&lt;/p&gt;&#xA;&lt;h2 id=&#34;缘起bios-的黄金时代&#34;&gt;缘起：BIOS 的黄金时代&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;1980 年代，IBM PC 推出 BIOS（Basic Input/Output System），它被刻录在主板 ROM 中，承担了计算机启动的三大要务：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;自检（POST）&lt;/strong&gt;：检测 CPU、内存、显卡、键盘等硬件是否可用。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MBR 加载与硬件中断接口&lt;/strong&gt;：从硬盘第一个扇区（Master Boot Record，512 字节）读取初级 Bootloader，并通过 INT 13h/INT 10h 等中断调用提供统一硬件访问能力。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;尽管 BIOS 架构简单、兼容性高，却在以下方面遇到瓶颈：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;磁盘容量限制&lt;/strong&gt;：MBR 最多支持 2 TB，且最多 4 个主分区。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;固件更新困难&lt;/strong&gt;：驱动代码写死在 ROM，无法灵活扩展或修补。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;图形与网络能力匮乏&lt;/strong&gt;：仅提供最基础的文本界面与简单的 PXE 网络微码加载。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;颠覆uefi-的登场&#34;&gt;颠覆：UEFI 的登场&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;进入 21 世纪，Intel 发起了 UEFI（Unified Extensible Firmware Interface）联盟，旨在打造更灵活、可扩展、安全的启动环境。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;GPT 分区支持&lt;/strong&gt;：突破 TB 级存储限制，可管理数百个分区。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;模块化驱动&lt;/strong&gt;：通过可加载的 &lt;code&gt;.efi&lt;/code&gt; 驱动扩展硬件支持，无需刷 ROM。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;现代图形界面&lt;/strong&gt;：支持 GUI、鼠标、多语言，用户交互更友好。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;安全与远程管理&lt;/strong&gt;：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;验证各阶段引导程序与操作系统签名，防止篡改与 Rootkit（Secure Boot）。&lt;/li&gt;&#xA;&lt;li&gt;内置 HTTP/FTP 客户端与 UEFI Shell，可远端更新或执行脚本。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;uefi-启动流程简述&#34;&gt;UEFI 启动流程简述&#xD;&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;固件并行初始化&lt;/strong&gt;：多线程加载硬件驱动与固件组件。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;扫描 ESP&lt;/strong&gt;：读取 EFI 系统分区（FAT32 格式），查找 &lt;code&gt;�EFI\&lt;/code&gt; 路径下的 &lt;code&gt;.efi&lt;/code&gt; 文件。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;运行 Boot Manager&lt;/strong&gt;：根据 NVRAM 存储的引导选项顺序执行 EFI 应用。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;加载内核&lt;/strong&gt;：EFI 应用（如 &lt;code&gt;bootx64.efi&lt;/code&gt;）引导操作系统内核，并将控制权交给它。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;对比小结&#34;&gt;对比小结&#xD;&#xA;&lt;/h2&gt;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;特性&lt;/th&gt;&#xA;          &lt;th&gt;BIOS + MBR&lt;/th&gt;&#xA;          &lt;th&gt;UEFI + GPT&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;磁盘支持&lt;/td&gt;&#xA;          &lt;td&gt;≤ 2 TB；最多 4 分区&lt;/td&gt;&#xA;          &lt;td&gt;理论上 ≥ 9.4 ZB；最多 128 分区&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;驱动与扩展&lt;/td&gt;&#xA;          &lt;td&gt;ROM 固化，不易更新&lt;/td&gt;&#xA;          &lt;td&gt;动态加载 .efi 模块，易升级&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;启动界面&lt;/td&gt;&#xA;          &lt;td&gt;文本或极简图形&lt;/td&gt;&#xA;          &lt;td&gt;丰富 GUI、鼠标、多语言支持&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;安全启动&lt;/td&gt;&#xA;          &lt;td&gt;不支持&lt;/td&gt;&#xA;          &lt;td&gt;支持签名验证，防篡改&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;网络功能&lt;/td&gt;&#xA;          &lt;td&gt;仅 PXE 简单引导&lt;/td&gt;&#xA;          &lt;td&gt;支持 HTTP/FTP，远程管理&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;现实世界的选择与迁移&#34;&gt;现实世界的选择与迁移&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;老旧设备 &amp;amp; 嵌入式系统&lt;/strong&gt;：BIOS+MBR 因体积小、兼容性强依旧有效。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;现代 PC &amp;amp; 服务器&lt;/strong&gt;：UEFI+GPT 标配，提升启动速度、安全性与大盘支持。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;双系统／多重引导&lt;/strong&gt;：推荐统一 UEFI 模式，Windows 用 BCD，Linux 用 shim+GRUB EFI，以减少启动冲突。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;迁移要点&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;BIOS → UEFI&lt;/strong&gt;：备份数据，使用 Windows &lt;code&gt;mbr2gpt&lt;/code&gt; 或 Linux &lt;code&gt;gdisk&lt;/code&gt; 转换 GPT，创建 ≥100 MB 的 ESP，切换固件模式并重建引导。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;UEFI → BIOS&lt;/strong&gt;：将 GPT 转为 MBR（注意丢失 GPT 信息），重新写入传统 MBR 引导代码，调整固件为 Legacy 模式。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;常见启动问题与排查技巧&#34;&gt;常见启动问题与排查技巧&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;无法识别 ESP&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;检查分区类型：ESP 必须设置为 &lt;code&gt;EF00&lt;/code&gt;（GPT）或 &lt;code&gt;FAT32&lt;/code&gt;（MBR）。&lt;/li&gt;&#xA;&lt;li&gt;验证文件：确认 &lt;code&gt;�EFI\BOOT\BOOTX64.EFI&lt;/code&gt;（或对应平台）存在。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Secure Boot 报错&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;关闭或配置：进入固件设置，临时禁用 Secure Boot，或导入正确的公钥（PK/KEK）。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;引导选项丢失&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;使用 &lt;code&gt;efibootmgr&lt;/code&gt;（Linux）或 &lt;code&gt;bcdedit&lt;/code&gt;（Windows）重新创建引导条目。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;硬盘切换模式后无法启动&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;检查控制器模式：IDE/RAID/AHCI 切换后需同步更新内核模块和驱动签名。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;高级自定义与扩展&#34;&gt;高级自定义与扩展&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;UEFI Shell 自动化&lt;/strong&gt;：编写 &lt;code&gt;.nsh&lt;/code&gt; 脚本，自动挂载分区、执行自检或远程下载固件更新。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;驱动注入&lt;/strong&gt;：将厂商 &lt;code&gt;.efi&lt;/code&gt; 驱动放入 ESP，可扩展对 NVMe、RAID 控制器等的原生支持。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;变量管理&lt;/strong&gt;：利用 &lt;code&gt;dmpstore&lt;/code&gt;（Shell）或 &lt;code&gt;efivar&lt;/code&gt; 工具读写固件变量，实现自动化启动或日志收集。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;开放固件替代品&lt;/strong&gt;：如 TianoCore（OVMF）、Coreboot，可根据需要定制体积与功能。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
