CentOS引导及启动全过程
实验环境,VMware workstation 10
实验版本:CentOS 5.3 ,linuxliveCD
系统的引导故障是我们平时可能遇到过的麻烦,虽然linux是一种非常稳定的操作系统,但也不能完全排除出错的可能性,下面就经常出现的几种故障我们进行模拟并进行排除

首先,我们要弄明白linux系统引导的大概过程,在计算机没有加电之前它只是一堆的硬件的组合,当我们加电后,首先工作的是我们主板,他会完成一系列的硬件自检,然后会去读取CMOS中有关设置,其中主要包括的就是引导顺序,然后是一些基本的比如时间,日期设置,之后去读取存储设备上的0磁道0扇区(MBR),在这512byte大小的扇区中有446byte用于引导加载程序,另外64byte存放分区表,然后会找到我们的操作系统并加载我们的内核,
一般我们会在grub界面停留5秒钟,5秒之内回车,会看到如下界面:

163403113.jpg

 

然后按下e键会出现如下界面:

163624340.jpg

 

 


其中root(hd0,0)并不表示我们的根分区,因为此时我们的系统还没有启动,其中hd既不表示ide硬盘,也不表示scsi硬盘,他只是单纯的表示硬盘的意思,0,0表示硬盘的0磁道0扇区,再往下表示要加载的内核及相关信息,在此按下e键,会看到更详细的信息:

163733271.jpg


此时的/也不是根分区,他与上一行选项的root含义相同,此行意为,要加载root下的名为vmlinuz-2.6.18-128.e15的内核,并且以ro的方式,内核加载完之后,此时的(centos的版本5的root=/dev/VoIGroup00/LogVoI00 rghb quiet)root=UUID=788636e8-3a23-4571-9627-94e57c6ee075) 表示此时的根要交给某一个地址或卷标  

164041669.jpg


crashkenel表示我们在安装时与kdump有关,既内核崩溃时怎样存储kdump的大小,图中为自动

164132782.jpg


最后两项的rhgb表示使用图形界面引导,quiet表示静默,既不显示内核引导启动时的具体信息

 

164157118.jpg


返回上一级菜单我们发现还有一个选项,如图:他的作用是初始化我们的内存,作用是硬盘化我们的内存,就是把我们的内存模拟成一个磁盘,然后加载根下的相关驱动,(内核的功能虽然是能驱动硬件,但不可能包含全部驱动及文件,在它初始化之后还要继续加载如图所示驱动文件

164226502.jpg

 

 到内核被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等之后,就会启动一个用户级程序init的方式,完成引导进程。所以他始终是用户的第一个进程,进程号始终为1

在启动了init进程后,init就会接着读取根文件系统下的有关目录,比如/etc/init.d/rc  /etc/init.d/rc.local /etc/init.d/sysinit完成用户数据的加载,来完成启动171442574.jpg

 

 介绍完有关的启动后,会发现grub菜单在启动过程中起了很重要的做用,而打开grub所在的文件路径,会看到如下内容:

174020154.jpg

 

174240401.jpg

我们会发现在stage1中,他的大小只有512,而stage2却大得多,这说明阶段是可以写在MBR中的,二阶段却无法写入,