欢迎来到天天文库
浏览记录
ID:37277096
大小:73.00 KB
页数:8页
时间:2019-05-20
《redhat启动流程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Redhat启动流程当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导Linux,Linux首先进行内核的引导,接下来执行init程序,init程序调用了rc.sysinit和rc等程序,rc.sysinit和rc当完成系统初始化和运行服务的任务后,返回init;init启动了mingetty后,打开了终端供用户登录系统,用户登录成功后进入了Shell,这样就完成了从开机到登录的整个启动过程。Linux系统启动过程大致按照如下步骤进行(这是一个简述):第一阶段:BIOS启动引导阶段;在该过程中实现
2、硬件的初始化以及查找启动介质;从MBR(MasterBootRecord)中装载启动引导管理器(LILO或GRUB)并运行该启动引导管理第二阶段:GRUB为例启动引导阶段;装载stage1装载stage1.5装载stage2读取/boot/grub.conf文件并显示启动菜单;装载所选的kernel和initrd文件到内存中第三阶段:内核阶段:运行内核启动参数;解压initrd文件并挂载initd文件系统,装载必须的驱动;挂载根文件系统第四阶段:SysVinit初始化阶段:启动/sbin/init程序;运行rc.sysinit脚本,设置系统环境,启动swap分区,检查和挂载文件系统;读
3、取/etc/inittab文件,运行在/et/rc.d/rc<#>.d中定义的不同运行级别的服务初始化脚本;打开字符终端1-6号控制台/打开图形显示管理的7号控制台(下面是详细的过程)第一阶段:系统上电开机后,主板BIOS(BasicInput/OutputSystem)运行POST(Poweronselftest)代码,检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)。硬件配置信息及一些用户配置参数存储在主板的CMOS(ComplementaryMetalOxideSemiconductor)上(一般64字节),实际上就是主板上一块可读写的RAM芯片,由主板上的电池
4、供电,系统掉电后,信息不会丢失。执行POST代码对系统外围关键设备检测通过后,系统启动自举程序,根据我们在BIOS中设置的启动顺序搜索启动驱动器(比如的硬盘、光驱、网络服务器等)。选择合适的启动器,比如通常情况下的硬盘设备,BIOS会读取硬盘设备的第一个扇区(MBR,512字节),并执行其中的代码。实际上这里BIOS并不关心启动设备第一个扇区中是什么内容,它只是负责读取该扇区内容、并执行,BIOS的任务就完成了。此后将系统启动的控制权移交到MBR部分的代码。注:在我们的现行系统中,大多关键设备都是连在主板上的。因此主板BIOS提供了一个操作系统(软件)和系统外围关键设备(硬件)最底级别
5、的接口,在这个阶段,检测系统外围关键设备是否“准备好”,以供操作系统使用。第二阶段:BIOS通过下面两种方法之一来传递引导记录:第一,将控制权传递给initialprogramloader(IPL),该程序安装在磁盘主引导记录(MBR)中第二,将控制权传递给initialprogramloader(IPL),该程序安装在磁盘分区的启动引导扇区中无论上面的哪种情况中,IPL都是MBR的一部分并应该存储于一个不大于446字节的磁盘空间中,因为MBR是一个不大于512字节的空间。因此IPL仅仅是GRUB的第一个部分(stage1),他的作用就是定位和装载GRUB的第二个部分(stage2);
6、stage2对启动系统起关键作用,该部分提供了GRUB启动菜单和交互式的GRUB的shell。启动菜单在启动时候通过/boot/grub/grub.conf文件所定义的内容生成。在启动菜单中选择了kernel之后,GRUB会负责解压和装载kernelimage并且将initrd装载到内存中。最后GRUB初始化kernel启动代码。完成之后后续的引导权被移交给kernel。假设BootLoader为grub(grub-0.97),其引导系统的过程如下:grub分为stage1(stage1_5)和stage2两个阶段。stage1可以看成是initialprogramloaderI(IP
7、L),而stage2则实现了grub的主要功能,包括对特定文件系统的支持(如ext2,ext3,reiserfs等),grub自己的shell,以及内部程序(如:kernrl,initrd,root)等。stage1:MBR(512字节,0头0道1扇区),前446字节存放的是stage1,后面存放硬盘分区表信息,BIOS将stag1载入内存中0x7c00处并跳转执行。stage1(/stage1/start.S)的任务非常单纯,仅仅是将硬盘0头
此文档下载收益归作者所有