Linux系统的启动过程
下面是整个Linux系统的启动过程:
Linux Boot Step |
||
Start |
BIOS |
|
|
grub/lilo |
|
|
Kernel boot |
|
|
init |
rc.sysinit |
|
|
rc |
|
mingetty |
login |
|
shell |
|
|
登录系统 |
|
一.BIOS自检
计算机在接通电源之后首先由BIOS进行POST自检,然后依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入引导块。Linux系统是人BIOS中的地址oxFFFF0处开始引导的。BIOS的第1个步骤是加电POST自检。POST的工作是对硬件进行检测。BIOS的第2个步骤是进行本地设备的枚举和初始化。BIOS由两部分组成:POST代码和运行时的服务。当POST完成之后,它被从内存中清理出来,但是BIOS运行时服务依然保留在内存中,目标操作系统可以使用这些服务。
BIOS运行时会按照CMOS的设置定义的顺序来搜索处于活动状态并且可以引导的设备。引导设备可以是软盘、CD-ROM、硬盘上的某个分区、网络上的某个设备甚至是USB闪存。通常,Linux系统都是从硬盘上引导的,其中主引导记录(MBR)中包含主引导加载程序。MBR是一个512字节大小的扇区,位于磁盘上的第一个扇区(0道0柱面1扇区)。当MBR被加载到RAM中之后,BIOS就会将控制权交给MBR。
如果要查看MBR的内容,用户需要以root用户的身份运行如下命令:
#dd if=/dev/had of=mbr.bin bs=512 count=1
读入了1+0个块
输出了1+0个块
#od –xa mbr.bin
… …
它从/dev/had(第一个IDE盘)上读取前512个字节的内容,并将其写入mbr.bin文件中。od命令会以十六进制和ASCII码格式打印这个二进制文件的内容。
二.启动GRUB/LILO
GRUB和LILO都是引导加载程序。引导加载程序用于引导操作系统启动。当机器引导它的操作系统时,BIOS会读取引导介质上最前面的512字节(主引导记录)。在单一的MBR中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会出现问题,需要更灵活的引导加载程序。
所有引导加载程序都以类似的方式工作,满足共同的目的,但LILO和GRUB之间也有很多不同之处:
LILO没有交互式命令界面,而GRUB拥有;
LILO不支持网络引导,而GRUB支持;
LILO将可以引导操作系统的信息存储在MBR中。
如果修改了LIL
相关新闻>>
- 发表评论
-
- 最新评论 更多>>