第一步:BIOS
计算机接通电源后,主板被唤醒。BIOS对计算机硬件进行检测,即加电自检(POST,Power On Self Test ),功能是检查计算机是否良好,例如接线是否正确,内存有无故障等。检测成功并初始化硬件完成后。BIOS会寻找CMOS中所记录的第一启动项(通常是硬盘)。
第二步:MBR (Master Boot Record)
MBR位于磁盘的0柱面 0磁头 1扇区 ,由引导程序(bootloader)磁盘分区表DPT 硬盘有效标志0x55AA组成,大小512字节其中bootloader占446字节。
grub的主要文件 :
stage1 位于MBR中 主要作用是引导stage2
stager1.5 位于磁盘的其他位置 主要作用是识别文件系统
stager2 位于/boot/grub/ 主要作用是加载ketnel 借助于 grub.conf 来完成工作
grub.conf配置文件:
default=0 #设置默认启动的title编号从0开始
timeout=5 #等待时间单位是秒
splashimage=(hd0,0)/grub/splash.xpm.gz #开机时的系统图片
hiddenmenu #隐藏菜音
title CentOS 6 (2.6.32-504.el6.i686) #内核标题,或操作系统名称,字符串,可自由修改
root (hd0,0) # 内核文件所在的设备;对grub而言,所有类型硬盘一律hd,格式为(hd#,N);hd#, #表示第几个磁盘;最后的N表示对应磁盘的分区;
kernel /vmlinuz-2.6.32-504.el6.i686 ro root=UUID=53ab89c9-c383-471f-9639-30234b04dfa9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet # 内核文件路径,及传递给内核的参数
initrd /initramfs-2.6.32-504.el6.i686.img #ramdask(可以把内存当成磁盘来用)文件
当BIOS找到第一启动项后将MBR中的bootloader(grub中的stage1)加入到内存这时BIOS将控制权交给grub,stage1载入stage2可通过stage1.5载入stage2
第三步:kernel
当bootloader开始读取内核文件时,kelnel将initramfs-2.6.32-504.el6.i686.img 解压到内存这时grub将控制权交到kernel.kernel会检测硬件以及加载驱动
第四步:init
init主要作用是准备软件运行的环境
当kernel加载驱动完成时表示计算机硬件已就绪,这时就会主动加载/sbin/inittab级确定运行级别。
linux运行级别:
0:halt 关机
1:single user mode, 直接以管理员身份切入, s,S,single 类似于安全模式
2:multi usermode, no NFS 多用户模式,不启动网络功能
3:multi user mode, text mode 正常模式,文本:只有命令行
4:reserved 未使用
5:multi user mode, graphic mode 正常模式图形
6:reboot 重启
使用runlevel和who -r可查看运行级别
第五步:初始化
取得运行级别后运行 /etc/rc.d/sysinit进行初始化
第六步:启动runlevel对应的服务 /etc/rc.d/rc.N
第七步:运行/etc/rc.d/rc.local来启动用户自定义开机运行的服务
第八步:启动终端等侍用户登陆