首页IT科技linux启动引导器安装在哪里(解析Linux系统启动的引导流程)

linux启动引导器安装在哪里(解析Linux系统启动的引导流程)

时间2025-06-15 12:01:56分类IT科技浏览5049
导读:LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的....

LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.

使用的LINUX版本是CentOS5,CentOS和Ubuntu都是自己联系使用时的较理想版本.

下面以CentOS5.5版本为例,介绍LINUX的引导流程,具体流程如下:

下面详细介绍每一步:

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

2)第二步读取硬盘中MBR的BootLoader      ,自启动程序         ,Linux下常用的自启动程序是GRUB      。这一步主要的功能是载入内核         。内核存放在/boot目录下

3)第三步就是载入的内核Kernel的过程                    ,

主要功能是:1             、驱动硬件         ,Kernel中含有大量驱动程序                    。2                    、启动init进程         。

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

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

命令主要格式是:id: runlevels : 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 重启

可以根据这7个运行级别来进行切换

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

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

1 initdefault:指定系统缺省启动的运行级别,如上图中标出,通常用于修复                 ,比如我们要进入单用户模式                   ,则可以将其设置为1,不可将默认设置为0或6,否则无法启动.

2sysinit:系统启动执行process中指定的命令

由inittab文件内容可以看出   ,没有设置运行级别,即为无论是哪个运行级别             ,都会执行/etc/rc.d/rc.sysinit

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

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

在inittab文件中运行到第21行,变是启动这个脚本                    。完成系统服务程序的启动         ,如系统环境变量的设置         、设置系统时钟      、加载字体                    、检查加载文件系统            、生成系统启动信息日志文件等               。由于是基础服务                    ,因为其run-level设置为空::即任何级别         ,action设置为sysinit。即该脚本在任何运行级别下都要启动      ,以完成基础服务的启动

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

加载完基础服务后            ,就要根据不同的运行级别去启动相对应的下的目录   ,它的工作原理是先去判断系统的默认运行级别即第6步中的东西                    ,然后再执行相应的rcN.d目录下的服务启动脚本如图

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

看下该目录下的内容:

其中S表示要启动的脚本,K表示要关闭的脚本

数字表示启动顺序               ,数值小的优先.主要是对一些服务的管理

在这一步里,需要说明一下/etc/rc.d/init.d这个目录,这个目录里放的脚本是真正的脚本,而rcN.d里放置的都是init.d目录里的软连接,也就是说所有rcN.d里的文件最终都需要来init.d里找真正的脚本

看一下具体细节:

执行到这一步,界面就会提示输入用户名和密码了,也就是说系统已经起来了,输入用户名和密码的过程后面再说,这次的引导流程就结束了

最后需要说明的是,LINUX的引导流程的思想大致相同,但细节因为版本的问题,在配置文件的名字或者是位置都不尽相同,此次我用的是CentOS版本,而Ubuntu版本是没有inittab文件和grup.conf文件的,所以如果有兴趣,大家可以按照这种思路去探索探索.

PS:关于GRUB

GNU GRUB(简称“GRUB            ”)是一个来自GNU项目的启动引导程序                 。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统                 ,并在计算机启动时选择希望运行的操作系统                   。GRUB可用于选择操作系统分区上的不同内核                   ,也可用于向这些内核传递启动参数   。

GNU GRUB的前身为Grand Unified Bootloader             。它主要用于类Unix系统;同大多Linux发行版一样   ,GNU系统也采用GNU GRUB作为它的启动器                    。Solaris从10 1/06版开始在x86系统上也采用GNU GRUB作为启动器      。

GRUB可动态配置;它在启动时加载配置信息             ,并允许在启动时修改                    ,如选择不同的内核和initrd         。为此目的      ,GRUB提供了一个简单的类似Bash的命令行界面         ,它允许用户编写新的启动顺序                    。

GRUB非常轻便         。它支持多种可执行格式;它除了可适用于支持多启动的操作系统外                    ,还通过链式启动功能支持诸如Windows和OS/2之类的不支持多启动的操作系统      。GRUB支持所有的Unix文件系统         ,也支持Windows适用的FAT和NTFS文件系统      ,还支持LBA模式                    。GRUB允许用户查看它支持的文件系统里文件的内容            。

GRUB具有多种用户界面   。多数Linux发行版利用GRUB对图形界面的支持                    ,提供了定制的带有背景图案的启动菜单            ,有时也支持鼠标                    。通过对GRUB的文字界面的设定   ,可以通过串口实现远程终端启动               。

GRUB可以从网络上下载操作系统镜像                    ,因此可以支持无盘系统。GRUB支持在启动操作系统前解压它的镜像                 。

与其它启动器不同               ,GRUB可以通过GRUB提示符直接与用户进行交互                   。载入操作系统前,在GRUB文本模式屏幕下键入c键可以进入GRUB命令行   。在没有作业系统或者有作业系统而没有"menu.lst"文件的系统上                 ,同样可以进入GRUB提示符             。通过类似bash的命令                   ,GRUB提示符允许用户手工启动任何操作系统                    。把合适的命令记录在"menu.lst"文件里   ,可以自动启动一个操作系统      。

GRUB拥有丰富的终端命令             ,在命令行下使用这些命令                    ,用户可以查看硬盘分区的细节      ,修改分区设置         ,临时重新映射磁盘顺序                    ,从任何用户定义的配置文件启动         ,以及查看GRUB所支持的文件系统上的其它启动器的配置         。因此      ,即便不知道一台电脑上安装了什么                    ,也可以从外部设备启动一个操作系统                    。

GRUB采用滚动屏幕选择想要启动的操作系统         。通过向"menu.lst"文件中添加相关信息            ,GRUB可以控制150或者更多的启动选项   ,在启动时用方向键进行选择      。

通过链式启动                    ,一个启动器可以启动另一个启动器                    。GRUB通过2到3行的命令就可以从DOS   、Windows                    、Linux               、BSD和Solaris系统启动            。

尽管GRUB为类Unix系统进行了编译和打包               ,但也有供DOS和Windows使用的GRUB   。GRUB也可以不附带任何操作系统而作为孤立系统安装                    。从CD上启动时运用GRUB需要1个文件,而从软盘、硬盘和USB设备上启动时需要2个文件               。这些文件可以在任何支持GRUB的Linux CD上找到                 ,用户可以很容易的找到它们。

声明:本站所有文章                   ,如无特殊说明或标注   ,均为本站原创发布                 。任何个人或组织             ,在未征得本站同意时                    ,禁止复制                 、盗用                   、采集   、发布本站内容到任何网站             、书籍等各类媒体平台                   。如若本站内容侵犯了原著者的合法权益      ,可联系我们进行处理   。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue表单数据回显(ElementUI的Form表单使用slot-scope=“scope“获取当前表格行数据实现数据回显、修改表单操作) 网站流量指标(解锁网站流量新高峰,SEO辅助工具助您一臂之力!)