Linux 引导流程解析

本文主要记录下linux的引导流程(实例采用centOS 5.5)。

内容主要如下:引导流程、解析下GRUB的作用。

 

一、引导流程

 

1.1主要的流程图如下:

 

image

 

1.2每一步的作用

1)第一步firmware固件自检,主要是进行CMOS/BIOS对硬件进行POST加电自检,在物理层次上对硬件进行检测是否正常。

2)读取硬盘中MBR的BootLoader(自启动程序,Linux下常用的自启动程序是GRUB)。这一步主要的功能是载入内核。

3)载入的内核Kernel主要功能是:1、驱动硬件(Kernel中含有大量驱动程序),2、启动init进程。

4)init进程,主要是读取/etc/inittab文件,执行缺省运行级别,从而继续引导。(需要注意的是它的PID恒为1,0为内核调度器Kernel scheduler)。

5)/etc/inittab 定义了初始化的操作。 

内容如下:

image

命令主要格式是:id : runlevels : action : process

[解析]

id :标识符,一般为两位字或数字

run-levels :指定运行级别,可以指定多个

action :指定运行状态

process :指定要运行的脚本或命令

其中,

1、run-levels运行级别有7个,0—6分别如下:

0 —— halt 关机

1 —— Single user mode 单用户模式

2 —— Multiuser,withoutNFS 多用户模式但不带网络(text模式)

3 —— Full multiuser mode 完整功能的多用户模式(text模式)

4 —— unused 预留

5 —— X11 图形化多用户模式

6 —— reboot 重启

主要命令:查看当前运行级别 #runlevel、 切换运行级别 #init[0 |1 |2 |3 |4 |5 |6]

2、而acion中也有几个比较重要的取值:

① initdefault:指定系统缺省启动的运行级别(通常用于修复,比如我们要进入单用户模式,则可以将其设置为1)

image

( 由截图中可以知道缺省的run-level是:3)

② sysinit:系统启动执行process中指定的命令(每次都会执行)

image

(由截图知,无论是哪个运行级别,都会执行/etc/rc.d/rc.sysinit)

③ wait:执行process中指定的命令,并等其结束后再运行其他命令

④ once:执行process中指定的命令,不等待其结束

⑤ ctrlaltdel:按下Ctrl + Alt + Del时执行process指定的命令

6)initdefault

如第五步所说到的,主要是读取/etc/inittab中的信息,判断缺省的运行级别是什么。

7)/etc/rc.d/rc.sysinit

启动这个脚本。完成系统服务程序的启动,如系统环境变量的设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。(由于是基础服务,如截图所示,默认是将其run-level设置为空::即任何级别,action设置为sysinit。即该脚本在任何运行级别下都要启动,以完成基础服务的启动)【可以自定义自己希望启动的脚本,然后加到这个脚本的最后面,便会在启动时被加载】

8)基础服务启动后,会执行/etc/rc.d/rc这个脚本

加载完基础服务后,就要根据不同的运行级别去启动相对应的下的目录,(如3是命令行模式,5是图形模式,他们需要启动的服务不同),但系统如何去加载呢?这就是rc这个脚本的作用了,它的工作原理是先去判断系统的默认运行级别即第6步中的东西,然后再执行相应的rcN.d目录下的服务启动脚本 如图

image

 

9)执行/etc/rc.d/rcN.d目录下的服务启动脚本

看下该目录下有什么东西:

image

[解析]

S —— start表示要启动的脚本

K —— kill 表示要关闭的脚本

数字表示启动顺序,数值小的优先

 

1.3自定义服务启动或关闭

1)关键目录 /etc/rc.d/init.d/ 下,找到相关的服务再对其进行关闭或启动(所以运行级别的脚本都是来自这个目录的软链接)。

image

通过服务脚本名 start |stop等操作去启动或关闭服务

image

2)自定义服务并启动

实际上,无论是哪个运行级别,他们要启动的脚本都位于/etc/rc.d/init.d这个目录中,而启动的时候相对应的/etc/rc.d/rcN.d目录中的脚本只是一个软链接,指向的还是init.d这个目录中的脚本

如图:rc3.d目录中的内容,可以看到都是软链接(概念类似引用)

image

 

了解了上面的原理后,我们就可以定义我们自己的服务脚本,并让系统在引导的时候加载我们的脚本。

方式有以下几种:

1、增加软链接 #ln -s

例子:

先写好一个脚本,再用 ln –s 脚本名 /etc/rc.d/rcN.d/Sxx脚本名

这样系统就会在引导运行级别N时就会加载这个脚本

如:ln  –s  /etc/rc.d/init.d/xx.script  /etc/rc.d/rc3.d/S100xx.script

这样系统就会在运行级别3时加载我们的xx.script这个服务。(注意脚本放在init.d目录中,并且软链接的名字要用S开头)

2、使用 chkconfig

image

3、使用 ntsysv (图形界面选择)

用ntsysv –-level N进入对于相应运行级别服务的启动设置

image

通过空格选择启动或否(*表示启动),上下方向键选择

 

1.4小结

大概的引导流程就是以上的几步了。

最后说下如何查看引导日志,主要有两种方式

1、# dmesg

记录了内核kernel驱动硬件的信息

如查询下硬盘eth0的信息:

image

 

2、查看 /var/log/messages的日志信息

记录了服务的启动信息

如查看ntpd的启动情况

image

 

 

 

 

二、GRUB解析及应用

了解了基本的引导流程,我们再来着重看下流程中最重要的自启动程序BootLoader,Linux常用的是GRUB。

2.1GRUB的配置与运用

GRUB的配置文件默认位置 /boot/grub/grub.conf (即GRUB它的实际位置在/boot下)

他有个软链接是 在/etc/grub.conf

先看下grub.conf

image

[解析]

default 定义缺省启动系统(多系统的时候会用到)

timeout 定义缺省等待时间

splashimage 定义GRUB界面图片

hiddenmenu 隐藏菜单

title 定义菜单项名称

root 设置GRUB的根设备

kernerl 定义内核文件所在位置 ro —只读

initrd 定义加载镜像文件

其中root中 (hd0,0) hd为硬盘类型 0为第一块硬盘 ,0为第一个分区

这个实际上是指定了 /boot所在的硬盘分区

可以看下/boot目录

image

 

2.2列子

2.2.1进入单用户模式

适合场合:忘记root密码、修复系统

方法:

1、在启动倒数的时候按ESC进入GRUB操作界面

image

e ——编辑当前的启动菜单项

b ——启动当前的菜单项

d ——删除当前行

c ——进入GRUB的命令行模式

Esc ——返回GRUB启动菜单界面,取消对当前所做的修改

2、按e进入,再选kernerl按e去编辑kernerl项

image

3、在最后加" 1"(空格 1),即运行级别1的单用户模式

4、按回车确定,再按B重启,便可以进入当用户模式

image

 

在单用户模式下,可以对root密码进行重置(命令 #passwd root)

同时可以做其他需要修复的操作。

 

 

 

三、总结

主要是掌握好系统的引导流程,明白在启动的时候系统的每一步在干什么,这样当系统出现问题了,我们就可以判断出是在哪一步出现了问题。这样才能在寻找解决方案的时候有的放矢,缩小范围。

使用 Cadence ams 仿真器 对 混合信号电路 进行仿真 文章目录Cadence 基于ams仿真器的混合信号电路仿真建立数字(Digital)模块建立 Analog - Digital 混合仿真原理图建立 Analog - Digital 混合仿真config文件配置混合信号电路仿真环境针对混合信号电路demo进行仿真 Cadence 基于ams仿真器的混合信号电路仿真 你好,这里是一篇关于使用 Cadence 软件通过 ams 仿真器对混合信号电路(D... 阅读详情

相关推荐

GEO优化实战:用AnswerBit量化AI搜索可见度与品牌监控体系

生成式引擎优化(GEO)正取代传统SEO,成为品牌在AI搜索生态中获取可见度的关键。当用户习惯从“翻列表”转向“直接问AI”,品牌能否被生成式引擎识别、引用并正向推荐,直接决定了其在用户决策链条中的存在感。AI搜索可见度因此从模糊概念演变为可度量的运营指标,涵盖提及率、引文率、情感分与回源质量等维度。腾讯AnswerBit作为答案侧分析工具,帮助运营者拆解AI回复中的品牌语境与引用来源,让优化动作有据可循。从内容结构化改造、品牌实体建设到第三方权威背书,GEO要求团队建立“度量-优化-再度量”的闭环。文章结

weixin_31100517的博客 150

Linux操作系统引导过程

Linux引导过程与服务

LBP20001204的博客 2703

【板栗糖GIS】新装ArcGIS必调的12个隐藏设置——【效率翻倍指南】

本文详细介绍了新装ArcGIS后必调的12个隐藏设置,涵盖性能优化、路径管理、显示调校、工作流定制等方面,帮助用户显著提升GIS工作效率。从关闭后台地理处理到启用硬件加速,再到个性化快捷键配置,这些实用技巧能让ArcGIS运行更流畅,操作更便捷。

weixin_42524945的博客 544

Linux操作系统引导过程及排障详解

目录 一、Linux操作系统引导过程 1.1引导过程讲解 1.2init进程(CentOS 6) 1.3 Systemd 进程(CentOS 7) 1.4 Systemd 单元 1.5运行级别对应的systemd 1.5.1查看target单元类型 1.5.2查看当前系统默认启动target 1.5.3设置默认启动target 1.6systemd服务管理 1.6.1查看服务状态命令: 1.6.2服务状态关键字 1.6.3启动与停止服务 1.6.4开机自动启用与停用服务 1.6.5屏蔽与取消屏蔽服务 1.6

xy_1212的博客 1022

数字IC设计(8)之AHB-Lite总线(持续更新)

AHB总线全称Advanced High-performance Bus,意为先进高性能总线。推出该总线的目的是补充APB总线在性能上的不足,APB总线适合挂载低速外设,所以AHB总线用来挂载高性能的外设,这样子可以分工合作,节约资源。AHB总线可以实现多主多从的连接,此时需要设计仲裁机和matrix(矩阵),AHB-Lite一般用于一主多从,此时则不需要仲裁机和matrix,但是也可以用AHB-Lite来实现多主多从,就是设计多个layer,每个layer是一主多从,再把各个layer连起来;

qq_69440734的博客 2254

遗传病变异注释预测工具安装系列之------Exomiser 安装及bug处理

Exomiser是一个Java程序,它从全外显子组或全基因组测序数据中发现潜在的致病变异。 Java 版本必须为1.8以上。 Exomiser 最新版本下载 wget -c https://github.com/exomiser/Exomiser/releases/download/11.0.0/exomiser-cli-11.0.0-distribution.zip unzip ...

qq_37329349的博客 1535

Linux 操作系统引导过程

linux 操作系统引导过程

m0_69354915的博客 437

是德频谱分析仪相位噪声测量实战指南:从原理到精准操作

本文详细介绍了是德频谱分析仪在相位噪声测量中的实战操作指南,从基础概念到高级技巧全面解析。通过5G基站时钟测量等实际案例,展示如何利用是德N9030B等设备精准测量相位噪声,并分享设备预热、参数设置、环境干扰排除等关键操作要点,帮助工程师提升测量精度和效率。

jenkins8butler的博客 229

linux系统引导流程,[操作系统](五)Linux引导流程解析

[操作系统](五)Linux引导流程解析02015-04-15 15:00:10目录Linux引导流程Linux运行级别Linux启动服务管理GRUB配置与应用启动故障分析与解决Linux引导流程Linux系统引导流程如下图:固件(Firmware)就是写入EROM或EEPROM(可编程只读存储器)中的程序一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本...

weixin_28947723的博客 150

MediaCreationToolW11:Windows11系统升级与修复利器

在日常使用Windows11系统的过程中,我们可能会遇到一些棘手的问题,比如系统更新时出现异常导致无法成功更新,或者系统本身出现异常需要进行无损修复。此外,当我们的电脑尚未升级到Windows11,而我们又希望进行升级时,一款高效且可靠的工具就显得尤为重要。接下来,MediaCreationToolW11将开始下载Windows11的安装文件,并创建Windows11介质。在“选择你要执行的操作”界面中,选择“ISO文件”。此时,你可以使用你的账户登录系统,并开始使用全新的Windows11系统了。

nntxthml的博客 2404

silvaco——GaN HEMT探索

上图为输出特性曲线 ,分别是在栅压为1v、3v、5v的情况下,可以看出在1v时器件处于截止状态,只有非常小近似于0的电流通过,随着栅压逐渐增大,沟道开启,产生漏极电流。上图为栅极漏电流曲线和转移特性曲线以及其提取的参数,可以看到阈值电压为=1.30249V,当栅压为0v时,Id=8.01032e-006,当栅压为5V时,Ig=3.11627e-006。albrct.n,低场迁移率模型,bn.albrct,an.albrct是albrct模型中的参数,可以由用户自己设定。lat.temp,晶格自热模型;

weixin_61913839的博客 7616

linux引导流程解析

linux引导流程解析

乐杨俊浅谈LAMP 1157

多智能体强化学习算法【三】【QMIX、MADDPG、MAPPO】

相关文章: 1.QMIX算法简述 QMIX是一个多智能体强化学习算法,具有如下特点: 1. 学习得到分布式策略。 2. 本质是一个值函数逼近算法。 3. 由于对一个联合动作-状态只有一个总奖励值,而不是每个智能体得到一个自己的奖励值,因此只能用于合作环境,而不能用于竞争对抗环境。 4. QMIX算法采用集中式学习,分布式执行应用的框架。通过集中式的信息学习,得到每个智能体的分布式策略。 5. 训练时借用全局状态信息来提高算法效果。是后文提到的VDN方法的改进。 6. 接上一条,QMIX设计一个神经网络来

丨汀、的博客 5470

Linux引导流程解析

Linux引导流程解析 1.Linux引导流程 固件firmware(CMOS/BIOS)---------------------POST加电自检       ----------------------与操作系统无关                               ---------------常见固件设置:安全设置、可引导介质列表、可引导介质搜索顺序、电源管

lcc15805152605的博客 479

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

linux引导initrd流程解析

因此early_initrd()函数在start_kernel()–>setup_arch()–>parse_early_param();unpack_to_rootfs()调用decompress()解压initrd, 不断调用flush_buffer()流式的获取到解压结果,使用状态机处理cpio格式的结果。init/do_mounts.h 文件中根据是否支持RAMDISK(即是否定义了CONFIG_BLK_DEV_RAM宏)定义不同的函数。2.2 根据initrd的物理地址填充initrd虚拟地址。

Austin_2020的博客 1108

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

五、linux引导流程解析

linux引导流程以前没有接触过,这次记录的详细点~ 目标: 1、linux从启动电源到正常登陆,中间经历了哪些引导步骤。--linux引导流程 了解linux无法正常启动时,应该怎么排查错误。 2、linux的运行级别,运行级别的切换。 3、linux启动服务管理,查看linux的某一个服务是否启动,怎么启动linux服务 4、自举程序GRUB的配置与应用...

weixin_30551947的博客 178

linux 自学笔记 (七) linux引导流程解析

12 linux引导流程解析 12.1 linux引导流程  常见的固件设置            安全设置            可引导介质列表            可引导介质搜索顺序            电源管理            启动细节 -----------------------------------------------------------------

知识小屋 990

【Linux】引导流程解析

启动:固件firmware (CMOS/BIOS)(POST加电自检)- ---->自举程序BootLoader(在硬盘MBR中)(GRUB)(载入内核) ----->载入内核Kernel 驱动硬件 ----->启动进程init ----->读取执行配置文件/etc/inittab   VI查看文档时过滤掉注释行:grep -v “^ #” /etc/inittable | more

342

5linux引导流程解析

课程大纲  Linux引导流程Linux运行级别  Linux启动服务管理  GRUB配置与应用  启动故障分析与解决 常用固件设置 安全设置 可引导介质列表 可引导介质搜索顺序 电源管理 启动细节显示 ....... date 系统时间 hwclock 固件时间 hwclock --help --hctosys...

weixin_30730151的博客 146

linux引导程序对比,解析Linux系统启动的引导流程

LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.使用的LINUX版本是CentOS5,CentOS和Ubuntu都是自己联系使用时的较理想版本.下面以CentOS5.5版本为例,介绍LINUX的引导流程,具体流程如下:下面详细介绍每一步:1)第一步firmware固件自检,主要是进行CMO...

weixin_35934603的博客 274

linux修改启动引导文件,解析Linux系统启动的引导流程

LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.使用的LINUX版本是CentOS5,CentOS和Ubuntu都是自己联系使用时的较理想版本.下面以CentOS5.5版本为例,介绍LINUX的引导流程,具体流程如下:下面详细介绍每一步:1)第一步firmware固件自检,主要是进行CMO...

weixin_39797693的博客 1232

Linux学习笔记之Linux引导流程解析

1、Linux引导流程:frimeware--bootloader--kernel--init--/etc/inittab--initdefault--/etc/rc.d/rc.sysinit--/etc/rc.d/rc/--/etc/rc.d/rcN.d(N代表0~6的数字)--username--password     ->固件firmware(CMOS/BIOS) -->POST加电自

寒雪痕的专栏 948
上一篇: RHEL6系统启动过程解析
下一篇: 使用Sudo让Solaris更加安全
xukeworknet
博客等级 码龄16年 7粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值