Linux的启动流程(CentOS 6)

  • 时间:
  • 浏览:10
  • 来源:彩神欢乐生肖_神彩欢乐生肖官方

   这张图大体上描述了Linux 的启动流程,在Linux的不同启动阶段,标注的相应的注释。本文将在此图的基础上,对Linux的启动过程分阶段的进行删改的描述。一齐某些自身能力有限,文中描述难免有纰漏之处,还请各位读者留言指出,我会及时改正。

   系统进入到MBR阶段中,就会直接将磁盘的前446字节读入内存中,也全都我BootLoader。stage 1阶段全都我指的这俩段。

   stage 1 阶段的任务非常简单,全都我将硬盘中的这446个字节读入内存中,并解析,某些为下有4个 阶段做好准备。

cat /proc/cmdline 会显示与grub.conf 一致的内核信息。

本文帕累托图资料参考了以下博文。

都可不能能图片上点击右键,确定在新的标签页中打开,从前都可不能能查看大图。此图为笔者根据参考资料重制,转载请注明出处。

下面某些人 就会删改的解释一下grub.conf 这俩配置文件。如下图所示,是某些人 自定义的grub.conf文件。

stage1 位于/boot基本磁盘分区中,为识别内核文件所在的文件系统提供系统识别扩展。

Stage 1.5 是桥梁,Stage 1 我太多 说能直接识别文件系统,全都还要Stage 1.5来引导某个文件系统当中的Stage 2.

   Kernel,内核,Kernel是Linux系统最主要的程序池池,实际上,Kernel的文件很小,只保留了最基本的模块,并以压缩的文件形式存储在硬盘中,当GRUB将Kernel读进内存,内存前一天现在现在开始英文解压缩内核文件。讲内核启动,应该先讲下initrd这俩文件,

   在计算机完成了BIOS阶段前一天,系统会找到BIOS中指定的硬盘的MBR,此时系统启动的控制权就移交到MBR阶段。如图所示,在MBR由三帕累托图组成,分别是BootLoader(主引导程序池池),DPT(硬盘分区表)和55AA(硬盘有效标志)。其删改特性可参考上图。

前面某些人 说过,Stage1 主要位于BootLoader 中,也全都我硬盘的第0个磁道的第有4个 扇区的前446个字节,先要某些人 而且我将446个字节破坏掉了就都可不能能模拟这俩实验。先看下面有4个 动图。

   关于Linux系统的分区特性有本身法律办法,分别是MBR分区和GPT分区。二者在分区特性上有很大的不同,区别也全都,二者的异同都可不能能去查看相关的资料,某些人 在这里不做删改的介绍。

   某些人 以MBR分区为例,来介绍Linux的启动过程。

   硬盘上第0磁道第有4个 扇区被称为MBR,也全都我Master Boot Record,即主引导记录,它的大小是512字节,预启动信息、分区表信息。

   initrd(Initial RAM Disk),它在stage2这俩步骤就被拷贝到了内存中,这俩文件是在安装系统时产生的,是有4个 临时的根文件系统(rootfs)。某些Kernel为了精简,只保留了最基本的模块,某些,Kernel上并先要各种硬件的驱动程序池池,也就无法识rootfs所在的设备,故产生了initrd这俩文件,该文件装载了必要的驱动模块,当Kernel启动时,都可不能能从initrd文件中装载驱动模块,直到挂载真正的rootfs,某些将initrd从内存中移除。

   一齐,某些人 在这里提出有4个 间题,有谁知道Windows的启动过程呢?某些启动过程出了间题,某些人 该缘何办呢?恐怕答案只能重启系统了吧……

   Linux 系统的启动过程对于管理员来说是删改透明的,了解了Linux的启动过程,就好像有了透视眼一样,促进清楚的了解Linux的一切。知道了哪些地方地方,不仅促进补救实际生产中的间题,更促进本人来制作Linux,本人定制Linux了,总之Linux大法好……

quiet 默认隐藏内核的启动信息,某些再加,启动时不光显示服务的启动信息,还显示内核的启动信息。

   init 过程,顾名思义,全都我对操作系统进行初始化的有4个 过程,此时操作系统内核某些在内存中加载。实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行,第有4个 被执行的脚本为/etc/rc.d/rc.sysinit,这俩是真正的OS初始化脚本

某些某些人 隐藏了内核的启动信息,去哪都可不能能够查看内核的启动信息呢?

grub.conf 文件在启动过程含高着很大的作用

   Linux启动的过程在实际生产含高着至关重要的作用。试想一下,某些某些人 在实际生产中服务器某些某有4个 服务出了间题,而只能启动,这时某些人 应该缘何办。某些某些人 了解Linux的删改启动过程,知道是在哪有4个 环节出了间题,某些人 就促进进入到相应的环节,排除掉相应的间题,从而补救实际生产中的间题。

实验 某些仅仅保留 grub.conf 文件,系统促进正常启动吗?

  stage 2阶段是GRUB的核心程序池池,能让用户以菜单法律办法将操作系统加载、新增参数、修改选项,哪些地方地方全删改全是stage2的功用。对GRUB来说,stage2除了只能本人启动外,剩下的事情全都由stage2完成。像是用户在启动时所看了的GRUB启动倒数画面,或是紧接着的启动菜单画面,就删改全是由stage2所提供的。 在 /boot/grub/目录下都可不能能看了由有4个 stage2 的文件,全都我这俩文件起到了至关重要的作用。

   在Stage 2阶段 会读取 grub.conf 文件,而grub.conf 文件也是在Linux的整个启动过程中位于着尤为重要的一环。

   硬件引导启动过程在Linux和Windows上是类式的。熟悉Windows系统的某些人 都可不能能结合Windows的启动过程来理解。

相关的内容以及配置在图中某些有了删改的描述,此处不再详述。

综上,系统启动流程进行了大体的介绍,无奈,时间紧张,有全都地方全都我简单地一笔带过。实际生产中,某些细节全是点儿要,包括整个启动过程中每有4个 环节某些出了故障应该怎样修复,删改全是值得删改描述的知识点。前一天有时间会回来重新更新补充,以图做到更好。

   Kernel会以只读法律办法挂载根文件系统,当根文件系统被挂载后,前一天现在现在开始英文装载第有4个 程序池池(用户空间的程序池池),执行/sbin/init,前一天就将控制权交接给了init程序池池。

   Linux 中的grub 启动位于/boot/grub/目录下

仅仅保留 grub.conf 在启动过程位于的错误,提示信息如下图所示

从图中都可不能能看了,这时系统会直接进入救援模式。某些系统找只能找只能硬盘启动代码。全都某些人 就进入到救援模式,进行一系列的救援操作。

   稍有计算机基础的人全是知道BIOS(Basic Input / Output System),又称为基本输入输出系统,它是一组固化到计算机主板上的一段程序池池,存储在ROM中。上边保存了计算机最基本的输入输出程序池池,计算机启动的前一天首先根据BIOS中提供的信息去查找相应的硬件,并完成最基本的检测。某些这俩过程中出現了间题,系统就我太多 启动。

   举有4个 最简单的例子,某些系统在BIOS阶段发现,内存条先要成功加载,先要系统还促进正常启动吗?即便Windows系统在这俩点上也是先要的。

   系统启动到MBR阶段的前一天会读取MBR中记录的BootLoader。所谓的BootLoader指的全都我在操作系统内核运行前一天运行的一段小程序池池。通过这段小程序池池,某些人 都可不能能初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到有4个 大概的状态,以便为最终调用操作系统内核做好一切准备。在Linux 中全都我grub。

实验 某些Stage1 阶段被破坏了,怎样修复启动?

grub-install 的作用全都我重新安装grub,会恢复/boot/grub 目录下的文件。

某些人 在执行 grub-install的过程,不仅修复了stage1 阶段,还修复了stage1.5阶段和stage2阶段。