欢迎来到天天文库
浏览记录
ID:27195738
大小:511.50 KB
页数:14页
时间:2018-12-01
《开机流程分析,进程,故障排错》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一:RHEL6的开机流程分析:开机――是件很简单的事情,只要按下电源开关,然后系统就会自然启动,很多人认为没有什么需要学习的。其实不然,如果系统没有什么问题,可以正常登陆的时候,当然开机很简单。但更多的时候,我们需要知道当机子不能正常开机的如何解决,这才是我们学习的目的。那么我们就来分析一下Linux的开机流程系统开机的过程可以汇整成下面的流程:1.加载BIOS的硬件信息、进行自我测试,并依据设定获得第一个可开机的设备;2.读取并执行第一个开机设备内MBR的bootLoader(grub等程序);3.依据bootloader的设置加载Kernel,Kernel会开始检测硬件与
2、加载驱动程序;4.内核启动init5.系统初始化:(根据/etc/init/rcS.conf文件中的记录“exec/etc/rc.d/rc.sysinit”执行rc.sysinit系统初始化脚本)6.init找到/etc/inittab文件,确定默认的运行级别(X)(根据/etc/init/rcS.conf文件中的记录“exectelinit$runlevel”)7.触发相应的runlevel事件(根据/etc/init/rc.conf文件中的记录“exec/etc/rc.d/rc$RUNLEVEL)”8.开始运行/etc/rc.d/rc,传入参数X9./etc/rc.d/r
3、c脚本进行一系列设置,最后运行相应的/etc/rcX.d/中的脚本10./etc/rcX.d/中的脚本按事先设定的优先级依次启动11.最后执行/etc/rc.d/rc.local12.加载终端或X-Window接口BIOS:开机自检与MBR要启动系统首先就得去加载BIOS(BasicInputOutputSystem),并通过BIOS程序去加载CMOS的信息,并且由CMOS内的设定值取得主机的各项硬件配置信息(如开机设备的搜寻顺序、硬盘的大小与类型、系统时间、各周边总线的是否启动PlugandPlay(PnP,即插即用设备)、等等)。在取得这些信息后,BIOS还会进行开机自检
4、(Power-onSelfTest,POST)。然后开始执行硬件检测的初始化,并设定PnP设备,之后再定义出可开机的设备顺序,接下来就会开始进行开机设备的数据读取了(MBR相关的任务开始)。我们还需要一个开机管理程序来处理内核文件的加载问题,这个开机管理程序就被称为BootLoader。这个BootLoader程序安装在开机设备的第一个扇区(sector)内,也就是MBR(MasterBootRecord,主要启动记录区,第一个扇区的512字节)。BootLoader最主要功能是加载内核到主存储器中去执行,由于不同操作系统的文件格式不一致,因此每种操作系统都有自己的bootl
5、oader。由bootloader的管理而开始读取内核文件后,接下来,Linux就会将内核解压缩到主存储器当中,并且利用内核的功能,开始测试与驱动各个周边设备,包括储存设备、CPU、网卡、声卡等等。此时Linux内核会以自己的功能重新检测一次硬件,内核会被放置到/boot里面,并且取名为/boot/vmlinuzinit及配置文件/etc/inittab与runlevel在内核加载完毕、进行完硬件检测与驱动程序加载后,此时主机硬件已经准备就绪了,这时候内核会启动第一个程序,那就是/sbin/init;/sbin/init最主要的功能就是准备软件执行的环境,包括系统的主机名、网
6、络设定、语言、文件系统格式及其他服务的启动等。而所有的动作都会通过init的配置文件/etc/inittab来规划,而inittab内还有一个很重要的设定内容,那就是默认的runlevel(开机运行级别)。Linux就是通过设定runlevel来规定系统使用不同的服务来启动,让Linux的使用环境不同。这个inittab文件里面的支持级别(RHEL6系统里面的,和以前的其它版本有很大的差别)现在我们来看一看/etc/inittab文件中内容:#vim/etc/inittab部分内容解释如下:0-halt(系统直接关机)1-singleusermode(单人维护模式,用在系统出
7、问题时的维护)2-Multi-user,withoutNFS(类似底下的runlevel3,但无NFS服务)3-Fullmulti-usermode(完整含有网络功能的纯文本模式)4-unused(系统保留功能)5-X11(与runlevel3类似,但加载使用XWindow)6-reboot(重新启动)0,4,6不是关机、重新启动就是系统保留的,所以不能将预设的runlevel设定为这三个值。RHEL6系统上的这个文件和以前的版本有很大的差别,目前这个文件只能设置运行级别,其它的相关配置文件,在此文件中
此文档下载收益归作者所有