开机流程

1、Linux的开机流程分析

系统开机的经过可以汇整成底下的流程:

  1. 加载BIOS或UEFI BIOS的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置;

  2. 读取并执行第一个开机装置内MBR的boot loader(亦即是grub2、spfdisk等程序);

  3. 依据boot loader的设定加载Kernel,Kernel会开始侦测硬件与加载驱动程序;

  4. 在硬件驱动成功后,Kernel会主动呼叫systemd程序,并以default.target流程开机;

    ​ systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统;

    ​ systemd 启动 multi-user.target 下的本机与服务器服务;

    ​ systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local 文件;

    ​ systemd 执行 multi-user.target 下的 getty.target 及登入服务;

    ​ systemd 执行 graphical 需要的服务


2、BIOS,boot loader 与 Kernel 载入

先给用到的专有名词做个解释:

BIOS:不论是 传统BIOS 还是 UEFI BIOS 都会被简称为BIOS;

MBR:虽然分区表有传统的MBR以及新的GPT,不过GPT也有保留一块兼容MBR的区块。总之,MBR就代表磁盘前边可安装boot loader的那个分区。

2.1、BIOS,开机自我测试与MBR/GPT

BIOS会指定开机设备让我们去读取磁盘中的操作系统核心文件。但由于不同的操作系统他的文件系统格式不相同,因此我们必须要以一个开机管理程序来处理核心文件加载(load)问题,因此这个文件管理程序就被称为Boot loader了。那这个Boot loader程序安装在哪呢?就在开机装置的第一个扇区内,也就是我们一直说的MBR(主要启动记录区)

我们知道每颗磁盘最前面区块都含有MBR和GPT分区表的提供loader的区块,那么如果我的主机上面有多个磁盘的话,系统会去哪个磁盘最前面的区块读取boot loader呢?这个要看BIOS的设定

2.2、Boot loader的功能

Linux基础之开机流程

每个操作系统默认是会安装一套boot loader到他自己的文件系统中,而在Linux系统安装时,你可以选择将boot loader安装到MBR去,也可以选择不安装。如果选择安装到MBR,那理论上你在MBR与boot loader都会有一份boot loader程序。至于Windows安装时,它会预设主动地将MBR与boot loader都装上一份boot loader!你会发现安装多重系统时,你的MBR常常会被不同的操作系统的boot loader覆盖

boot loader的主要功能:

  • 提供菜单:用户可以选择不同的开机项目,这也是多重引导的重要功能!
  • 载入内核文件:直接指向可开机的程序区段来开始操作系统;
  • 转交其他loader:将开机管理功能转交给其他loader负责。

Windows的loader预设不具备控制权转交的功能,因此你不能使用Windows的loader来加载Linux的loader。

Linux基础之开机流程

相关文章:

  • 2021-11-12
  • 2021-09-11
  • 2021-11-15
  • 2022-12-23
  • 2021-09-23
  • 2021-09-08
  • 2021-07-10
  • 2022-01-15
猜你喜欢
  • 2022-12-23
  • 2021-05-17
  • 2021-05-27
  • 2021-04-24
  • 2021-09-24
  • 2021-10-19
  • 2021-11-15
相关资源
相似解决方案