启动过程与细节

  1. 按下电源键,开机自检。

    • 这个过程中的主导程序来自系统固件,传统的 BIOS 和后来的 UEFI
    • 该过程无论是Windows系统还是Linux系统均一致
    • 无法完成自检一般是硬件问题
  2. 自检完成后会通过 BIOS/UEFI 的配置按顺序搜索所有磁盘上的主启动记录(MBR),并从MBR中读取启动加载器

    • 在Windows下可能为 Windows Boot Loader,Linux下一般为 GRUB
    • 此时系统固件将主导权转交给启动加载器
  3. 启动加载器从磁盘加载配置,向用户显示用于启动的菜单

    • 配置文件位于:/etc/grub.d/, 、/etc/default/grub 和 /boot/grub2/grub.cfg
    • 看到启动菜单,说明前面的步骤均正常
  4. 启动加载器根据用户选择或系统默认的选项,加载内核和initramfs到内存中。

    • initramfs 是经过 gzip 的 cpio 归档,包含启动时所有必要硬件的内核模块,初始化脚本
    • 配置文件为:/etc/dracut.conf
    • 此时启动加载器将系统控制权转交给内核
  5. 对内核可以在 initramfs 中找到驱动的所有硬件,内核会初始化这些硬件。然后使用 PID 1 从 initramfs 执行 /sbin/init

    • 在RHEL7之后的版本中 /sbin/init 指向 /sbin/lib/systemd/systemd
    • 此时的启动还会包含 udevd 守护进程
    • initramfs 中的 systemd 实例会执行 initrd.target 目标的所有单元。包括在 /sysroot 上挂载的实际 root 文件系统
  6. 内核 root 文件系统从 initramfs root 文件系统切换到之前挂载到 /sysroot 上的系统 root 文件系统

    • systemd 会使用系统中安装的 systemd 副本自动重新执行
  7. systemd 从系统中配置的默认目标(图形界面或多用户),启动对应的单元

    • 默认目标可以通过 /etc/systemd/system/default.target , /etc/systemd/system 来配置

上面的过程,简单通俗一点概述就是
开机自检
–> 读MBR加载启动加载器Grub
–> 启动一个包含基本驱动的临时文件系统initramfs,主要是为了驱动基本硬件,为真正的根文件系统启动作准备
–> 准备好之后切换根文件系统
–> 切换后重新加载 systemd,然后启动后续的服务单元
–> 登录界面

可以手动干预的阶段

  1. 自检过程中 F2 或 Del (根据硬件厂商的定义)进入 BIOS/UEFI 配置硬件选项
  2. 正常加载 Grub 后通过 grub-shell 执行 grub 命令,启动菜单界面按 ‘c’ 进入
  3. 后续要么启动配置不正确被卡住,要么能正常执行到 login 界面

PS:(重要)不自己一条一条认真过脑理解和实践是真记不住。

Linux启动过程 - RHEL7相关推荐

  1. 嵌入式Linux启动过程中的问题积累

    嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...

  2. 深入理解Linux启动过程 0号进程,1号进程

    深入理解Linux启动过程 Linux系统的启动过程由很多阶段组成,这篇博客从初始化引导程序到第一个用户空间应用程序探索Linux启动进程. 我们先从Linux启动的顶层视图开始分析,以便能有一个整体 ...

  3. Linux启动过程详细介绍

    Linux启动过程详细介绍 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相 ...

  4. Linux启动过程学习

    该学习过程是一个Linux从主引导记录到第一个用户空间程序的指导. 启动一个Linux系统的过程包含一系列步骤.但是无论你是启动一个标准的X86桌面或嵌入式PowerPC,大部分流程是相似的.该文章探 ...

  5. linux系统需要占多大的内存,linux启动过程Bootloader、kernel

    256M可以推1080P屏幕 128M可以基本运行并安装 256M可以勉强开启特效 512M流畅运行特效 当然内存越大越好,特效与显卡也有关系 和windows相比,当然linux对内存的需求小 Bo ...

  6. linux 启动过程

    Linux 启动过程详解 下面来详细了解一下 Linux 的启动过程.     Linux 的启动 过程包含了 Linux 工作原理的精髓,      而且在嵌入式的开发过程也非常需要这方面知识的积累 ...

  7. Linux 启动过程详解

    随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Window ...

  8. linux 启动脚本 tty,Linux启动过程简介

    许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过.其实, Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段: 1.启动内核.在这个阶段,内核装入内存并 ...

  9. [转载] Linux启动过程详解-《别怕Linux编程》之八

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

最新文章

  1. 介绍几本专业的书籍,一起学习
  2. 什么是IDOC,以及IDOC的步骤
  3. Fiddler对手机抓包
  4. 随机数是真是假你说了算???
  5. css overflow属性的测试
  6. Nginx担当WebSockets代理
  7. python wmi 重启网卡_python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法...
  8. 不看可惜!无需代码,小白都会的可视化大屏,领导不重用你都难
  9. 华夏常春藤_这是您可以立即免费在线学习的450个常春藤盟军课程
  10. js实现的万年历显示
  11. C语言求素数/质数最高效的方法
  12. 商务办公软件应用与实践【1】
  13. 肝了一晚帮她搭建完个人网站——利用Docker在单节点上实现内外网隔离网站部署(Nginx、Wordpress、MySQL)
  14. 【奇葩瑞萨-002】调教Renesas RX130独立看门狗
  15. 7年时间,从功能测试到测试开发月薪30K,有志者事竟成
  16. 龙芯1D处理器用户手册
  17. html怎么制作图文混排页面,CSS 网页图文混排的10个技巧
  18. ubuntu容器下时区修改方法
  19. 11201zxx学习日报
  20. 常见的几种web容器(Apache、Nginx、Tomcat)

热门文章

  1. uniapp将时间日期格式化的组件uni-dateformat的用法
  2. redis面试必备的十大面试题
  3. 【星球精选】Obsidian 中的 excalibrain 插件:免费的 theBrain ?
  4. 若将瑞星比Borland 刘旭略胜Anders
  5. 安全中心开启小米云服务器,用小米手机一定要知道云服务还有这些功能,要不然手机真白买了...
  6. net share 基本语法
  7. 趣学算法系列-动态规划
  8. 对Adobe Flex的十大误解 转载
  9. OpenCV连续图片读取问题
  10. PHP6S临时管,6S管理实战——工具柜