系统启动流程详解:从BIOS/UEFI到GRUB/Bootloader

举报
Echo_Wish 发表于 2024/11/19 08:16:51 2024/11/19
【摘要】 系统启动流程详解:从BIOS/UEFI到GRUB/Bootloader

系统启动是计算机操作的基础过程,涉及多个关键阶段。本文将详细介绍系统启动的核心步骤,包括BIOS/UEFI的启动过程、GRUB/Bootloader的加载过程,并通过通俗易懂的语言和示例代码进行说明。

一、BIOS与UEFI的启动过程

BIOS(Basic Input/Output System)和UEFI(Unified Extensible Firmware Interface)是计算机开机时首先运行的固件,负责硬件初始化和系统引导。

BIOS启动过程:

  • 上电自检(POST):BIOS进行硬件自检,包括内存、硬盘、键盘等设备,确保系统硬件正常工作。

  • 加载BIOS设置:BIOS读取存储在CMOS中的配置参数,如启动顺序、硬盘设置等。

  • 查找引导设备:BIOS按照设置的启动顺序查找引导设备(如硬盘、光驱、USB等)。

  • 加载Bootloader:BIOS加载第一个可引导设备的主引导记录(MBR),并将控制权交给Bootloader。

UEFI启动过程:

  • 硬件初始化:UEFI固件初始化系统硬件设备。

  • 执行UEFI固件:UEFI执行固件中的初始化代码,加载存储在非易失性存储器中的UEFI配置。

  • 加载引导管理器:UEFI查找并加载引导管理器(通常是EFI分区中的启动文件)。

  • 执行操作系统启动程序:引导管理器加载并执行操作系统的启动程序。

二、GRUB的启动过程

GRUB(GRand Unified Bootloader)是常用的开源引导加载程序,广泛用于Linux系统。它的启动过程分为多个阶段:

GRUB启动过程:

阶段1:主引导记录(MBR):

  • BIOS从MBR加载GRUB的第一个阶段引导代码。

  • 该阶段代码加载GRUB的第二阶段引导程序。

阶段1.5(可选):

  • GRUB 1.5阶段代码通常存储在MBR和分区之间的未分配空间中。

  • 该阶段负责识别文件系统和加载阶段2代码。

阶段2:

  • 加载GRUB配置文件(如grub.cfg)。

  • 显示GRUB菜单,允许用户选择操作系统或内核。

  • 加载并执行选定的操作系统内核。

示例GRUB配置文件(grub.cfg):


set default=0
set timeout=5

menuentry 'Ubuntu' {
    set root='(hd0,1)'
    linux /vmlinuz root=/dev/sda1 ro quiet splash
    initrd /initrd.img
}

menuentry 'Windows 10' {
    set root='(hd0,2)'
    chainloader +1
}

三、Bootloader的启动过程

Bootloader是负责加载操作系统内核的程序,GRUB是其中一种流行的Bootloader。

Bootloader启动过程:

  • 加载内核:从GRUB菜单选择操作系统后,Bootloader加载内核到内存中。

  • 传递参数:Bootloader传递内核参数(如启动选项)并将控制权交给内核。

  • 初始化内核:内核开始执行,初始化硬件和系统资源。

  • 启动用户空间:内核启动init系统,加载系统服务和应用程序,进入操作系统环境。

示例GRUB命令加载Linux内核:

grub> set root=(hd0,1)
grub> linux /vmlinuz root=/dev/sda1 ro quiet splash
grub> initrd /initrd.img
grub> boot

总结

本文详细介绍了计算机系统的启动流程,包括BIOS/UEFI的硬件初始化和引导过程、GRUB引导加载程序的分阶段启动过程,以及Bootloader加载操作系统内核的过程。通过掌握这些关键步骤和配置技巧,运维人员可以更好地理解和管理系统启动,提高系统的可用性和稳定性。

希望这篇文章能为您提供有价值的参考,帮助您深入了解计算机系统启动的原理和实践。如果有任何问题或需要进一步讨论,欢迎交流探讨。让我们共同提升运维技术水平,保障系统的高效运行。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。