Linux基础之开机流程

开机流程

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的功能

在这里插入图片描述

每个操作系统默认是会安装一套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。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值