Linux系统开机从BIOS到登录环境过程

 更新时间:2023年06月07日 16:21:27   作者:Sunny_Future  
这篇文章主要介绍了Linux系统开机从BIOS到登录环境过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Linux系统开机从BIOS到登录环境

  • 通电
  • bios初始化
  • grub2磁盘引导阶段
  • grub2文件引导阶段
  • 指定boot所在分区
  • 启动内核,只读挂载 / 设备
  • 启动init程序进入初始化阶段
  • 启动systemd初始化阶段
  • 取/etc/systemd/中的文件
  • 启动程序
  • 启动登陆环境

可以总结为五个阶段

  • 内核的引导

检测硬件设备,设备驱动初始化,将 / 只读挂载,载入初始进程 systemd,内核文件丢失请重新安装内核

  • 运行 init
##查看当前默认启动级别
[root@test ~]# ls -l /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 36 Oct 14  2017 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
##启动级别
runlevel0.target  -> poweroff.target
runlevel1.target  -> rescue.target
runlevel2.target  -> multi-user.target
runlevel3.target  -> multi-user.target
runlevel4.target  -> multi-user.target
runlevel5.target  -> graphical.target
runlevel6.target  -> reboot.target
  • 系统初始化进程
  • 建立终端
  • 用户登录系统

描述Linux系统从开机到登陆界面的启动过程

开机过程:

1、加载 BIOS

系统固件加载 BIOS(基本输入输出系统),然后进行开机自检(POST),并开始初始化部分硬件;

BIOS:basic input output system,它是一套程序,写死到主 板上的一个内存芯片中,这个内存芯片在没有通电的情况下也能将数 据记录下来(ROM,非挥发性)。

2、读取 MBR系统固件搜索磁盘上的主启动记录(MBR)

由于我们的系统软件大多放置在硬盘中,所以 BIOS 会指定启动 的设备,好让我们可以读取磁盘中的操作系统内核文件,这时候就需要 一个引导装载程序来处理内核文件加载(LOAD)的问题,这个引导装 载程序就被称为 BootLoader。

那这个 BootLoader 放在哪里呢?

就放在我们系统上第一个硬盘上的第一个扇区里面。也就是我们 说的 MBR:master boot record。

3、启动加载器(grub2)

系统固件从磁盘中读取启动加载器(Boot Loader),然后将系统

控制权交给启动加载器。在 7 中,我们的 BootLoader 是通过一个 grub 程序来实现的。

现在是 grub2.0,前一版本是 grub0.97。

grub2 的主要功能:

  • 1、提供菜单:选择不同的启动选项;
  • 2、加载内核文件:直接指向可启动的程序区段来开始 OS;
  • 3、转交其他 Loader(多系统时)。
  • 4、显示菜单

启动加载器从我们的磁盘中加载其配置,然后向用户显示用于启 动的可能配置的菜单,这就是我们在开机的时候会看到的让你上下选 择什么什么版本啊,什么什么东西的那个界面。

我们可通过以下方式进行配置:

  • /etc/grub.d/
  • /etc/default/grub
  • /boot/grub2/grub.cfg(非手动)

5、加载内核

在用户做出选择(超时)后,启动加载器会从磁盘中加载配置的

内核及 initramfs,并将其置于内存中;

initramfs 是一个归档文件,里面包含了启动时所需要的必要硬 件的内核模块、初始化脚本等等。

在 RHEL7 中,initramfs 得到了加 强,包含自身可用的整个系统。

6、系统内部传递信息

这时候我们的启动加载器又将系统控制权交给内核,从而传递启 动加载器的内核命令行中指定的任何选项,以及 initramfs 在内核中 的位置。

7、初始化内核这时候会在 initramfs

中找到驱动程序的所有硬件,并且初始化它,然后作为 PID1 从 initramfs 中执行/sbin/init。

PID1 就是systemd,代表的是系统启动的第一个用户级 进程,是所有其他进程的父进程。

8、执行单元初始化完成后

我们的 systemd 会执行 initrd.target 目标 的所有文件,这些所有的东西都包括在/sysroot 上挂载实际的 root 文件系统中。

9、系统回归

接下来内核 root 文件系统会回到之前挂载于/sysroot 上的系统 root 文件系统,然后就是我们 systemd 的事情了,它会使用系统中 安装的 systemd 副本来自行重新执行。

10、开机界面

我们们熟悉的输入账号密码的界面了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解linux安装软件的几种方法

    详解linux安装软件的几种方法

    这篇文章主要介绍了linux安装软件的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Linux expect实现自动登录脚本实例代码

    Linux expect实现自动登录脚本实例代码

    expect是一个基于Tcl的用于自动交互操作的工具语言,它适合用来编写需要交互的自动化脚本,比如上面提到的SSH输入用户名密码,自动FTP等等场景。下面这篇文章主要给大家介绍了关于Linux expect实现自动登录脚本的相关资料,需要的朋友可以参考下。
    2018-03-03
  • 判断Unix系统及库文件是32位还是64位的详解

    判断Unix系统及库文件是32位还是64位的详解

    这篇文章主要介绍了判断Unix系统及库文件是32位还是64位的的相关资料,这里整理下查看系统位数的命令,需要的朋友可以参考下
    2016-11-11
  • 无法启动Apache的问题解决方法

    无法启动Apache的问题解决方法

    这篇文章主要介绍了无法启动Apache的问题解决方法,需要的朋友可以参考下
    2014-05-05
  • Tomcat中的catalina.bat原理详细解析

    Tomcat中的catalina.bat原理详细解析

    这篇文章主要给大家详细介绍了关于Tomcat中catalina.bat的原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们可以参考借鉴,下面随着小编来一起学习学习下吧。
    2017-08-08
  • Linux模拟实现sleep函数

    Linux模拟实现sleep函数

    这篇文章主要为大家详细介绍了Linux模拟实现sleep函数,让程序休眠一定的秒数,到时间后自动恢复运行
    2017-04-04
  • 详解Linux 主机网络接入配置

    详解Linux 主机网络接入配置

    这篇文章主要介绍了详解Linux 主机网络接入配置的相关资料,希望通过本文能帮助到大家,让大家实现网络接入配置的功能,需要的朋友可以参考下
    2017-10-10
  • Linux中 find查找命令用法详解

    Linux中 find查找命令用法详解

    本篇文章主要介绍了Linux中 find查找命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • SSH在登录服务器后如何显示基础信息

    SSH在登录服务器后如何显示基础信息

    这篇文章主要介绍了SSH在登录服务器后如何显示基础信息的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • Centos安装MYSQL8.X的教程

    Centos安装MYSQL8.X的教程

    这篇文章主要介绍了Centos安装MYSQL8.X的教程,本文以CentOS版本为7.6,安装的MySQL版本为8.0.17,感兴趣的朋友跟随小编一起看看吧
    2019-10-10

最新评论