Linux操作系统的启动流程简述
使用个人Linux系统的朋友们几乎每天都要看到自己的Linux开机,但是,Linux开机时需要哪些设备或文件,以及每种设备或文件在哪个时候发挥作用,以及我们怎么按照自己的想法修改开机画面或输出字符呢?这些问题在这里我们都将给予解决.
我们来了解开机的流程,以及开机所需要的设备,文件和他们的作用:
1、POST:加电自检,当开机给予电源后,BOIS将对设备的硬件进行自检,看设备的状态是否OK.
2、根据启动次序的设定,寻找启动次序对应的设备中是否存在MBR,如果哪个启动设备有MBR那么就在BOIS的帮助下将bootloader加载进内存,让bootloader运行起来.bootloader是一个程序,是在安装系统的时候设定在MBR 的,一般不同的操作系统需要的bootloader是不同的,如果我们安装多个操作系统的话,开机时会有一个操作系统选择菜单,这个就是bootloader提供的,然后根据你的选择去加载相应的系统内核.
在系统的启动中,绝对不可以没有bootloader这个功臣,下面一个将提到bootloader的作用,我们先来了解一下bootloader这个程序.
Linux 著名的bootloder有:
(1)LILO是Linux早起的早期引导操作系统的程序,可支持多系统引导,但不支持1024以外的柱面,不能支持大硬盘,现在几乎绝迹了.
(2)GRUB 是心在普遍使用的bootloader,功能十分强大,可以引导Linux和Windows,部分Unix系统,不必非得装在MBR里,也可以装在某个分区的引导扇区里.如果没有其他程序帮住引导GRBU,那么GRUB还得放在MBR里.
GRUB分为两段分别存放在:
(1)bootloder,是为了引导启动第二阶段的
(2)在磁盘分区上的/boot/grub,
GRUB的功能:
(1)启动时,可以让用户选择操作系统.
(2)可以向内核传递参数,以便让内核在不同环境下运行.
(3)具有加密保护功能
3、bootloader 加载成功之后,bootloader根据目录中的grub.conf文件的设定到设定的活动磁盘分区上找操作系统的内核,将内核加载进内存,并解压缩,使内核展开,自行运行,此时bootloader就完成任务,接着内核将开始登台.
4、内核进行系统的初步初始化,识别基本的硬件,并加载相应硬件驱动,然后内核装载/sbin/init进程,但是/sbin/init文件在根文件系统内,根文件系统又在LVM中,内核中没有LVM 驱动,就无法读取根文件系统,从而无法运行/sbin/init进程,此
时内核通过/boot/initrd-2.6.18-164.el5.img文件这个文件为内核提供一个根分区的驱动程序,从而向开始读取/sbin/init(initrd-2.6.18-164.el5.img文件是一个很小的完整的Linux).
内核展开后进行的动作:
(1)硬件探测 此时将输入硬件设备的信息,信息保存在日志里/var/log/dmesg这是一个二进制文件,用dmesg查看
(2)驱动程序初始化
(3)以只读方式加载根文件系统
(4)装载并启动init进程
5、然后init进程通过/etc/rc.d/rc.sysinit的支配对系统进程完整初始化,init的所有工作都在/etc/inittab的支配下完成,运行完init进程之后就打印出一个登录终端提示,我们就可以登录系统了,至此整个开机启动过程完成.
时间的原因,我们将在下一篇文章中,讲解开机过程的个性化,以及基本的系统恢复等技巧,大家要熟悉了解这篇文章中提到的文件,这对理解我们的操作系统的恢复有很大的帮助.
本文出自 “redhat” 博客,谢绝转载!
|