`
xukenetwork
  • 浏览: 77398 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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)

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

 

 

 

三、总结

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

分享到:
评论

相关推荐

    运维技术课程 Linux学习教程 第5讲 Linux引导流程解析 共23页.pptx

    ### Linux引导流程解析知识点详述 #### Linux引导流程概述 - **固件 (Firmware):** 计算机启动时首先由固件(通常是BIOS或UEFI)进行加载,进行基本硬件检测和初始化。 - **自举程序 (Boot Loader):** 通过固件...

    Linux基础知识及系统管理视频教程

    主要由42节组成,主要内容有Linux应用与发展、Linux应用与发展总结、Linux系统安装总结、Linux常用命令、文本编辑器vin第13节文本编辑器vim总结第14节Linux引导流程解析(一) 第15节Linux引导流程解析(二) 第16节...

    剖析Linux系统引导流程

    Linux 的引导流程是一个复杂的过程,下面将分阶段进行详细解析。 #### 第一阶段:开机至 INT19H 中断 当用户打开 PC 电源时,系统首先会进行上电自检(POST),这是一个检查系统硬件配置的过程。若检测无误,则会...

    linux引导流程

    Linux引导流程是操作系统启动的核心过程,它涉及到多个关键步骤,从硬件初始化到用户登录界面的显示。下面将详细解析Linux的引导流程,包括从硬件层面的启动到内核的加载,以及系统初始化和服务启动的过程。 ### 1....

    剖析Linux系统引导流程.pdf

    《剖析Linux系统引导流程》这篇文献深入探讨了Linux操作系统启动的全过程,从用户开启电源直至出现Shell提示符的每一个步骤。Linux系统引导流程是学习和理解Linux系统的基础,特别是对于系统开发人员而言,掌握这一...

    Linux教程PPT课件(shell命令、Apache服务器配置、iptables防火墙等等).zip

    Linux具有如下优点: ...Linux引导流程解析; Linux用户及用户组管理; Linux服务与进程管理; Linux文件系统管理; shell命令; Apache服务器配置;; iptables防火墙; gvim编辑器使用; dns域名服务器等等。

    兄弟连(lampbrother)李明linux课程pdf 资料完整版

    课件05_第5讲.Linux引导流程解析.pdf [LAMP兄弟连李明老师讲Linux].课件06_第6讲.Linux软件包管理课件.pdf [LAMP兄弟连李明老师讲Linux].课件07_第7讲.Linux用户管理.pdf [LAMP兄弟连李明老师讲Linux].课件08_第8讲....

    Linux系统引导概述.pdf

    本文将深入探讨这一过程,帮助读者理解Linux引导的各个环节。 首先,引导程序是启动过程的起点,它负责将操作系统加载到内存并启动。在Linux中,常见的引导程序有GRUB和LILO。当计算机开启,BIOS(Basic Input/...

    运维技术课程 Linux学习教程 Linux教程课件 全部PPT课件 共21个章节.rar

    第5讲 Linux引导流程解析 共23页.pptx 第6讲 Linux软件包管理 共17页.pptx 第7讲 Linux用户及用户组管理 共23页.pptx 第8讲 Linux服务与进程管理 共30页.pptx 第9讲 Linux文件系统管理 共32页.pptx 第12讲 dns域名...

    运维技术课程 Linux学习教程 第1讲 Linux应用与发展 共32页.pptx

    第5讲 Linux引导流程解析 共23页.pptx 第6讲 Linux软件包管理 共17页.pptx 第7讲 Linux用户及用户组管理 共23页.pptx 第8讲 Linux服务与进程管理 共30页.pptx 第9讲 Linux文件系统管理 共32页.pptx 第12讲 dns域名...

    LAMP兄弟连李明老师Linux讲义笔记PPT下载

    课件05_第5讲.Linux引导流程解析.pdf [LAMP兄弟连李明老师讲Linux].课件06_第6讲.Linux软件包管理课件.pdf [LAMP兄弟连李明老师讲Linux].课件07_第7讲.Linux用户管理.pdf [LAMP兄弟连李明老师讲Linux].课件08_第8...

    Linux_LAMP兄弟连李明老师讲Linux

    4. **课件05_第5讲.Linux引导流程解析.pdf**:详细解析了Linux系统的启动流程,包括BIOS、GRUB引导加载器、内核加载等环节,有助于理解系统启动原理。 5. **课件06_第6讲.Linux软件包管理课件.pdf**:介绍了Linux下...

    Linux兄弟连课件

    6. **Linux引导流程解析**:Linux的启动过程涉及到多个阶段,包括BIOS/UEFI、GRUB加载器、内核加载、初始化系统等。这一课件将帮助学习者理解这个复杂的过程,以便在遇到启动问题时能进行有效的排查。 7. **Linux...

    Linux系统启动流程详解3-1

    Linux系统启动流程详解3-1 在深入了解Linux系统启动流程之前,我们首先需要理解什么是操作系统启动。操作系统是计算机硬件和用户应用之间的桥梁,它的启动过程是计算机加电后执行的第一步,也是确保系统正常运行的...

    运维技术课程 Linux学习教程 第14讲 iptables防火墙 共27页.pptx

    第5讲 Linux引导流程解析 共23页.pptx 第6讲 Linux软件包管理 共17页.pptx 第7讲 Linux用户及用户组管理 共23页.pptx 第8讲 Linux服务与进程管理 共30页.pptx 第9讲 Linux文件系统管理 共32页.pptx 第12讲 dns域名...

    运维技术课程 Linux学习教程 第12讲 dns域名服务器 共34页.pptx

    第5讲 Linux引导流程解析 共23页.pptx 第6讲 Linux软件包管理 共17页.pptx 第7讲 Linux用户及用户组管理 共23页.pptx 第8讲 Linux服务与进程管理 共30页.pptx 第9讲 Linux文件系统管理 共32页.pptx 第12讲 dns域名...

    Linux启动流程 Linux启动流程

    ### Linux启动流程详解 #### 第一阶段:BIOS启动引导阶段 当计算机开启电源时,首先启动的是主板上的BIOS(基本输入/输出系统),它会执行一系列的自检程序,即POST(加电自检),以确保系统的关键组件如CPU、内存...

Global site tag (gtag.js) - Google Analytics