文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Linux 操作系统启动流程以及trouble shooting思路

Linux 操作系统启动流程以及trouble shooting思路

时间:2010-04-14  来源:unixthisyear

Linux系统启动的基本过程和步骤:

最近在某个版块看到有人讨论GRUB的问题,这里是我个人的一些理解。
我想大部分还是正确的,但肯定也有理解错误的地方,在这里抛砖引玉了!

Linux系统启动过程大致按照如下步骤进行(这是一个简述):
第一阶段:BIOS启动引导阶段;
                        在该过程中实现硬件的初始化以及查找启动介质;
                        从MBR中装载启动引导管理器(GRUB)并运行该启动引导管理
第二阶段:GRUB启动引导阶段;
                        装载stage1
                        装载stage1.5
                        装载stage2
                        读取/boot/grub.conf文件并显示启动菜单;
                        装载所选的kernel和initrd文件到内存中
第三阶段:内核阶段:
                        运行内核启动参数;
                        解压initrd文件并挂载initd文件系统,装载必须的驱动;
                        挂载根文件系统
第四阶段:Sys V init初始化阶段:
                        启动/sbin/init程序;
                        运行rc.sysinit脚本,设置系统环境,启动swap分区,检查和挂载文件系统;
                        读取/etc/inittab文件,运行在/et/rc.d/rc<#>.d中定义的不同运行级别的服务初始化脚本;
                        打开字符终端1-6号控制台/打开图形显示管理的7号控制台

同时在上述过程中各阶段所需要读取的文件和操作的对象:
BIOS启动引导阶段                          GRUB启动引导阶段                    内核阶段                            /init/sysinit阶段
==================================================================================================
None                                         /boot/grub/grub.conf               /boot/vmlinuz-<version>      /etc/rc.d/rc.sysinit
                                                /boot/grub/stage1_5               /boot/initrd-<version>         /etc/inittab
                                                /boot/grub/stage2                                                         /etc/rc.d/rc<#>.d
                                                                                                                                 /etc/rc.d/init.d/*
                                                                                                                                             



(下面是详细的过程)                                                                                                                     
第一阶段:
系统上电开机后,主板BIOS(Basic Input / Output System)运行POST(Power on self test)代码,检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)。硬件配置信息及一些用户配置参数存储在主板的CMOS( Complementary Metal Oxide Semiconductor)上(一般64字节),实际上就是主板上一块可读写的RAM芯片,由主板上的电池供电,系统掉电后,信息不会丢失。
执行POST代码对系统外围关键设备检测通过后,系统启动自举程序, 根据我们在BIOS中设置的启动顺序搜索启动驱动器(比如的硬盘、光驱、网络服务器等)。选择合适的启动器,比如通常情况下的硬盘设备,BIOS会读取硬盘设备的第一个扇区(MBR,512字节),并执行其中的代码。实际上这里BIOS并不关心启动设备第一个扇区中是什么内容,它只是负责读取该扇区内容、并执行,BIOS的任务就完成了。此后将系统启动的控制权移交到MBR部分的代码。
注: 在我们的现行系统中,大多关键设备都是连在主板上的。因此主板BIOS提供了一个操作系统(软件)和系统外围关键设备(硬件)最底级别的接口,在这个阶段,检测系统外围关键设备是否“准备好”,以供操作系统使用。

第二阶段:
BIOS通过下面两种方法之一来传递引导记录:
第一,        将控制权传递给initial program loader(IPL),该程序安装在磁盘主引导记录(MBR)中
第二,        将控制权传递给initial program loader(IPL),该程序安装在磁盘分区的启动引导扇区中
无论上面的哪种情况中,IPL都是MBR的一部分并应该存储于一个不大于446字节的磁盘空间中,因为MBR是一个不大于512字节的空间。
因此IPL仅仅是GRUB的第一个部分(st
相关阅读 更多 +
排行榜 更多 +
阿克里危机手机版下载

阿克里危机手机版下载

飞行射击 下载
贪婪洞窟重生手游下载

贪婪洞窟重生手游下载

角色扮演 下载
贡贡托儿所手机版下载

贡贡托儿所手机版下载

休闲益智 下载