1.BOIS 自检
BIOS会根据用户设置的启动顺序来由那个设备来启动电脑的操作系统,这个设备一般是硬盘。
2.MBR引导
也就是进入到硬盘的MBR区域,这个区域中的有512个字节的大小,其中前446个字节中保存的程序是选择启动分区,也就是电脑由那个硬盘分区来载入开机的程序。那么在这个446个字节的空间中保存的就是启动程序!
3.grub引导菜单
启动程序加载MBR其它位置的引导程序,也就是grub程序。它的配置文件是 /etc/grub.conf。
[root@lnmp ~]# grep -v "^#" /etc/grub.conf
default=1
#0,是指第一组操作系统开机。如果有两组操作系统的开机设定,而defaule=1,那么预设使用第二组操作系统开机。
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
#splashp_w_picpath表示开机使用的背景图案,hd0,表示第一个硬盘;0指的是硬盘的第一个分区;/grub/splash.xpm.gz就是开机使用的背景图案的文件名称
hiddenmenu
#hiddenmenu指令是隐藏开机的选单
password --md5 $1$bXHOi0gc$VzOlhBx8260Ab.B6Ww.nB.
title CentOS (2.6.18-308.8.2.el5xen)
#title开机先单的标题名称
root (hd0,0)
#下面文件(内核文件)存放的路径,(hd0,0)指的是/boot目录
kernel /xen.gz-2.6.18-308.8.2.el5
module /vmlinuz-2.6.18-308.8.2.el5xen ro root=LABEL=/ rhgb quite
#ro root=LABEL=/就是设根目录的位置,ro表示read only,所以有这行的设定,才能读取根目录;rhgb图形界面启动,取代以前的文本界面。如果要使用文本界面的形式启动,只要将rhgb删除即可。quite:在开机过程中不要显示错误的信息。如果要显示错误信息,只要删除quite即可。
module /initrd-2.6.18-308.8.2.el5xen.img
title CentOS (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ selinux=0
initrd /initrd-2.6.18-194.el5.img
#initrd:将initrd映像文件加载到内存。这个文件里面存放的都是驱动程序
4.加载内核
内核主要作用是
取得BIOS所检测到的硬件设备的信息,然后将这些硬件设备自己来管理,这样才能够提供给Linux系统使用。接手了硬件设备后,然后就要加载这些设备的驱动程序。以便于控制电脑上的设备如何正确的工作。
加载完硬件的驱动程序后,接下来就加载开机所需要的库文件!
5.init进程初始化
加载完成内核之后,Kernel会启动init这个程序,也是Linux内核启动后的第一个动作,这个程序的PID是永远是1;启动init服务的目的就是为了用来初始化Linux的环境。
init程序其实是去读取/etc/inittab配置文件的配置,根据配置来决定作什么工作;
[root@lnmp ~]# grep -v -E "^#|^$" /etc/inittab
id:3:initdefault:
#决定进入哪个运行级别(0-6)
si::sysinit:/etc/rc.d/rc.sysinit
#执行初始操作系统的程序;
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
#执行run level对应目录中的程序。
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now #设置重启热键
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" #定义UPS不间断电源系统
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" #当电源恢复工作时,执行shutdown -c 表示在关机前取消关机的操作,这个时候必须取消关机操作。
1:2345:respawn:/sbin/mingetty tty1 #最后进入虚拟控制终端
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
附:初始化系统的脚本rc.sysinit都做了哪些操作?
1、设定电脑的名称,hostname在/etc/sysconfig/network文件中
2、设定系统的时间
3、定义键盘
4、启用swap分区
5、检查根目录(/)有没有问题。并且挂载成可读可写的状态。
6、设定系统的时间

7、加载一些其他的设备,如RAID和LVM