Linux系统引导过程

Oracle Linux 8 系统引导过程详解

Linux系统引导过程

理解引导过程可以帮助你解决引导系统时遇到的问题。引导过程涉及一些文件,这些文件中的错误通常造成了引导问题。引导过程和配置是不同的,这取决于你的硬件是使用UEFI固件还是传统的BIOS去处理系统引导。

该文章描述的操作系统为Oracle Linux 8。

UEFI引导

在一个基于UEFI的系统中,系统引导过程按如下顺序执行:

  1. 系统的UEFI固件执行开机自检(POST),然后定位和初始化外围设备,包括硬盘。

  2. UEFI查找一个带有特定的全局唯一标识符(GUID)的GPT分区,标识符标识该分区为EFI系统分区(ESP),它包含了EFI应用程序例如引导加载程序。如果存在多个引导设备,UEFI引导管理器将使用一个合适的ESP,这取决于它们在引导管理器中定义的顺序。如果你不想使用默认的顺序,通过efibootmgr工具,你可以定义不同的顺序。

  3. UEFI引导管理器确定Secure Boot是否被启用。如果Secure Boot没有被启用,引导管理器将运行在ESP中的GRUB 2引导加载程序。

    否则,引导管理器从引导加载程序请求一个证书然后验证这个通过对比存储在UEFI Secure Boot key database中的键。为了处理证书验证过程,环境被配置为执行两阶段的引导过程,并在加载GRUB 2引导加载程序之前先加载负责认证的shim.efi应用程序。如果证书有效,那么引导加载程序将运行,并依次验证被配置为加载的内核。

  4. 引导加载程序加载vmlinuz内核镜像文件到内存,然后提取initramfs镜像文件的内容到一个临时的,基于内存的文件系统(tmpfs)。

  5. 内核从initramfs文件系统加载访问根文件系统所需的驱动模块。

  6. 内核启动systemd进程,进程ID为1(PID 1)。

  7. systemd运行为它定义的其他进程。

注意

通过定义你自己的systemd单元,指定在引导过程中要处理的任何其他操作。与使用/etc/rc.local文件相比,该方法是首选方法。

BIOS引导

在一个基于BIOS的系统中,系统引导过程如下:

  1. 系统的BIOS执行开机自检(POST),然后定位和初始化所有外围设备,包括硬盘。
  2. BIOS从引导设备读取主引导记录(MBR)到内存。MBR存储有关该设备上分区组织的信息,即分区表,以及用于错误检测的引导签名。另外,MBR包含指向引导加载程序(GRUB 2)的指针。引导程序自身可在同一设备上,也可以在另一个设备上。
  3. 引导加载程序加载vmlinuz内核镜像文件到内存,然后提取initramfs镜像文件的内容到一个临时的,基于内存的文件系统(tmpfs)。
  4. 内核从initramfs文件系统加载访问根文件系统所需的驱动模块。
  5. 内核启动systemd进程,进程ID为1(PID 1)。
  6. systemd运行为它定义的其他进程。

注意

通过定义你自己的systemd单元,指定在引导过程中要处理的任何其他操作。与使用/etc/rc.local文件相比,该方法是首选方法。

参考

https://docs.oracle.com/en/operating-systems/oracle-linux/8/osmanage/ol-bootconf.html

Linux 系统引导过程可以分为以下几个步骤: 1. BIOS/UEFI 自检:当计算机启动时,BIOS(基本输入输出系统)或 UEFI(统一固件接口)会对硬件进行自检,以确保所有硬件都能正常工作。 2. 加载引导程序:BIOS/UEFI 确认硬件后,会在启动设备(通常是硬盘)上查找引导程序。在 Linux 中,这个引导程序通常是 GRUB(GRand Unified Bootloader)。 3. 加载内核:GRUB 加载内核文件(vmlinuz),这个文件包含了操作系统的核心代码,用于管理硬件和其他系统资源。 4. 初始化 RAM 磁盘:在加载内核之后,Linux 会初始化 RAM 磁盘(ramdisk),这是一个虚拟的文件系统,用于临时存储一些系统文件。 5. 执行 init 程序:内核启动后,它会执行 init 程序,这个程序是 Linux 启动过程中的第一个用户空间进程,它负责初始化系统并启动其他进程。 6. 加载驱动程序:在 init 程序启动之后,Linux 会加载设备驱动程序,这些驱动程序用于管理系统硬件,如网卡、磁盘、声卡等。 7. 启动系统服务:一旦驱动程序被加载,Linux 就会启动各种系统服务,如网络服务、时间同步服务、系统日志服务等。 8. 启动登录界面:最后,Linux 启动登录界面,用户可以通过该界面登录到系统并开始使用。 以上是 Linux 系统引导过程的主要步骤。不同的 Linux 发行版可能会有一些差异,但大体上都是类似的。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值