Linux启动过程 - RHEL7
启动过程与细节
按下电源键,开机自检。
- 这个过程中的主导程序来自系统固件,传统的 BIOS 和后来的 UEFI
- 该过程无论是Windows系统还是Linux系统均一致
- 无法完成自检一般是硬件问题
自检完成后会通过 BIOS/UEFI 的配置按顺序搜索所有磁盘上的主启动记录(MBR),并从MBR中读取启动加载器
- 在Windows下可能为 Windows Boot Loader,Linux下一般为 GRUB
- 此时系统固件将主导权转交给启动加载器
启动加载器从磁盘加载配置,向用户显示用于启动的菜单
- 配置文件位于:/etc/grub.d/, 、/etc/default/grub 和 /boot/grub2/grub.cfg
- 看到启动菜单,说明前面的步骤均正常
启动加载器根据用户选择或系统默认的选项,加载内核和initramfs到内存中。
- initramfs 是经过 gzip 的 cpio 归档,包含启动时所有必要硬件的内核模块,初始化脚本
- 配置文件为:/etc/dracut.conf
- 此时启动加载器将系统控制权转交给内核
对内核可以在 initramfs 中找到驱动的所有硬件,内核会初始化这些硬件。然后使用 PID 1 从 initramfs 执行 /sbin/init
- 在RHEL7之后的版本中 /sbin/init 指向 /sbin/lib/systemd/systemd
- 此时的启动还会包含 udevd 守护进程
- initramfs 中的 systemd 实例会执行 initrd.target 目标的所有单元。包括在 /sysroot 上挂载的实际 root 文件系统
内核 root 文件系统从 initramfs root 文件系统切换到之前挂载到 /sysroot 上的系统 root 文件系统
- systemd 会使用系统中安装的 systemd 副本自动重新执行
systemd 从系统中配置的默认目标(图形界面或多用户),启动对应的单元
- 默认目标可以通过 /etc/systemd/system/default.target , /etc/systemd/system 来配置
上面的过程,简单通俗一点概述就是:
开机自检
–> 读MBR加载启动加载器Grub
–> 启动一个包含基本驱动的临时文件系统initramfs,主要是为了驱动基本硬件,为真正的根文件系统启动作准备
–> 准备好之后切换根文件系统
–> 切换后重新加载 systemd,然后启动后续的服务单元
–> 登录界面
可以手动干预的阶段:
- 自检过程中 F2 或 Del (根据硬件厂商的定义)进入 BIOS/UEFI 配置硬件选项
- 正常加载 Grub 后通过 grub-shell 执行 grub 命令,启动菜单界面按 ‘c’ 进入
- 后续要么启动配置不正确被卡住,要么能正常执行到 login 界面
PS:(重要)不自己一条一条认真过脑理解和实践是真记不住。
Linux启动过程 - RHEL7相关推荐
- 嵌入式Linux启动过程中的问题积累
嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...
- 深入理解Linux启动过程 0号进程,1号进程
深入理解Linux启动过程 Linux系统的启动过程由很多阶段组成,这篇博客从初始化引导程序到第一个用户空间应用程序探索Linux启动进程. 我们先从Linux启动的顶层视图开始分析,以便能有一个整体 ...
- Linux启动过程详细介绍
Linux启动过程详细介绍 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相 ...
- Linux启动过程学习
该学习过程是一个Linux从主引导记录到第一个用户空间程序的指导. 启动一个Linux系统的过程包含一系列步骤.但是无论你是启动一个标准的X86桌面或嵌入式PowerPC,大部分流程是相似的.该文章探 ...
- linux系统需要占多大的内存,linux启动过程Bootloader、kernel
256M可以推1080P屏幕 128M可以基本运行并安装 256M可以勉强开启特效 512M流畅运行特效 当然内存越大越好,特效与显卡也有关系 和windows相比,当然linux对内存的需求小 Bo ...
- linux 启动过程
Linux 启动过程详解 下面来详细了解一下 Linux 的启动过程. Linux 的启动 过程包含了 Linux 工作原理的精髓, 而且在嵌入式的开发过程也非常需要这方面知识的积累 ...
- Linux 启动过程详解
随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Window ...
- linux 启动脚本 tty,Linux启动过程简介
许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过.其实, Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段: 1.启动内核.在这个阶段,内核装入内存并 ...
- [转载] Linux启动过程详解-《别怕Linux编程》之八
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
最新文章
- 介绍几本专业的书籍,一起学习
- 什么是IDOC,以及IDOC的步骤
- Fiddler对手机抓包
- 随机数是真是假你说了算???
- css overflow属性的测试
- Nginx担当WebSockets代理
- python wmi 重启网卡_python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法...
- 不看可惜!无需代码,小白都会的可视化大屏,领导不重用你都难
- 华夏常春藤_这是您可以立即免费在线学习的450个常春藤盟军课程
- js实现的万年历显示
- C语言求素数/质数最高效的方法
- 商务办公软件应用与实践【1】
- 肝了一晚帮她搭建完个人网站——利用Docker在单节点上实现内外网隔离网站部署(Nginx、Wordpress、MySQL)
- 【奇葩瑞萨-002】调教Renesas RX130独立看门狗
- 7年时间,从功能测试到测试开发月薪30K,有志者事竟成
- 龙芯1D处理器用户手册
- html怎么制作图文混排页面,CSS 网页图文混排的10个技巧
- ubuntu容器下时区修改方法
- 11201zxx学习日报
- 常见的几种web容器(Apache、Nginx、Tomcat)