ECS Linux系统启动过程的具体流程
发布日期:2015-12-11 15:12:16
Linux系统启动流程简述如下: 1.、加电自检加载BIOS 这一步启动加载BIOS,BIOS中包含了CPU的相关信息、设备启动顺序信息、内存信息、硬盘信息、时钟信息、PnP特性等等,系统在此读取boot选项读取从哪个设备启动,比如主板上的设置第一启动为硬盘,u盘,光盘等设备。 2.、读取MBR MBR,即Master Boot Record,也就是主引导记录,在磁盘的的0磁道1扇区,大小为512字节,系统通过上面的步骤读取主机从哪个设备启动,根据上面的启动选项找到对应设备的MBR,如果第一个设备未找到MBR,将根据BIOS的设置去读取第二个设备的MBR。 3.、读取boot loader 由于各个操作系统格式不同,我们需要一个管理程序来处理核心档案加载问题即boot loader,每个用自己的loader扄能够加载属于自己的操作系统核心,其中Grub、spfdisk和Lilo是常见的Loader,linux中我们以grub为例,系统读取内存中的grub配置信息(一般为menu.lst或grub.lst)在Redhat系统中是在/boot/grub/grub.conf,根据这个启动不同的操作系统。 4.、加载内核 根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会提示“Uncompressing Linux”。当解压缩内核完成后,屏幕提示“OK, booting the kernel”。 5.、启动第一个进程init 此这一步启动系统的第一个进程/sbin/init进程,读取配置文件为 /etc/inittab,此文件的id:5:initdefault决定了系统的启动级别为5级别。 请注意各级别的意义: 级别0:关机 级别1:单用户模式 ,类似于windows中的安全模式 级别2:无网络的多用户模式 级别3:有网络的多用户模式 级别4:预留 级别5:图形化界面 级别6:重启 如果设定为6,那么系统会不停重启。 6.、执行系统的初始化脚本rc.sysinit脚本 此脚本是系统的初始化脚本,它做了很多工作,包括设定PATH、设定网络配置(/etc/sysconfig/network)、设定/proc激活udev、启动swap分区等。 7.、启动内核模块 根据系统的配置文件etc/modules.conf文件或/etc/modules.d加载内核模块。 8.、执行不同级别的脚本程序 根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。 9.、执行/etc/rc.d/rc.local脚本内容 此脚本执行开机自启动的脚本,可将你准备开机启动的脚本写在此文件中,相当于winodows中的开启自动启动的功能。 10.、执行打印登录的程序/bin/login程序 到此系统算启动完毕,打印客户的登录界面mingetty程序待用户输入密码执行就行了。
|