一、名词解释
POST: Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测。
BIOS:Basic Input and
Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等,为ROM(只读)。
CMOS:互补金属氧化物半导体,保存各项参数的设定,其储存的信息RAM(可读写),按次序查找引导设备,是第一个有引导程序的设备为本次启动设备
MBR:主引导记录(Main
Boot Record)是位于磁盘最前边的一段引导(Loader)代码。446: bootloader,64: 分区表, 2: 55AA; bootloader:
引导加载器,引导程序
二、启动流程
第一阶段:
POST加电自检,加载BIOS的硬件信息,获取第一个启动设备MBR,读取第一个启动设备MBR的引导bootloader加载程序(grub)的启动信息。
下图为MBR引导信息:
第1.5阶段:
在后续扇区的首部存放有其它引导信息
这些信息能够帮助识别到boot分区。
第二阶段:
发生在boot分区上,通过程序引导找到内核文件/boot/grub。
第三阶段:
加载启动内核,在boot分区的/grub/grub.conf中找到引导根/的驱动,即initramfs-2.6.32-642.el6.x86_64.img(虚拟内存盘[主要用来模拟文件系统],ramdisk),进而加载内核,从而把根/所在分区进行挂载,初次是以只读方式挂载根,然后内核自动启动根下/sbin/init进程,内核最终启动之后再以读写方式挂载根。
第四阶段:
启动核心的外挂模块,init执行运行的各个批处理文件(scripts),init执行/etc/rc.d/rc.local。
内核启动init进程后会首先运行/etc/rc.d/rc.sysinit脚本读取fstab[含有挂载关系]文件,然后再读取/etc/inittab[运行级别]文件,执行/bin/login程序,等待用户登录,用户登录之后开始以Shell控制主机。
三、Centos6 启动流程图
四、误删恢复
1、打开/boot/目录,保持vmlinuz-2.6.32-642.el6.x86_64(出厂时存在,与硬件相关)文件不动,删除initramfs-2.6.32-642.el6.x86_64.img(安装系统时候制作生成)文件,则不能挂载根/,内核不能完全启动,导致机器打不开。
解决方法:
进入救援模式
切到根:chroot
/mnt/sysimage/
cd /boot
使用命令生成:mkinitrd
/boot/initramfs-`uname –r[只是为文件命名]`.img `uname -r`[告诉mkinitrd生成那个版本的内核]
cat /boot/grub/grub.conf 检查文件中的内核名称是否与新生成的内核文件一致
最后,退出并重新启动。
2、如果把vmlinuz-2.6.32-642.el6.x86_64文件破坏了,则机器也打不开。
解决方法:
进入救援模式
方法一:重装内核文件
方法二:挂载光盘,mkdir
/mnt/cdrom ;mount /dev/sr0 /mnt/cdrom
cp
/mnt/cdrom/Packages/kernel-2.6.32-642.el6.x86_64.rpm /mnt/sysimage/root[由于没切换根,/mnt/sysimage/root为自己的根]
cd /mnt/sysimage/root
rpm2cpio
kernel-2.6.32-642.el6.x86_64.rpm |cpio –tv|less 用于查找要解压的文件
rpm2cpio kernel-2.6.32-642.el6.x86_64.rpm |cpio –id ./boot/
vmlinuz-2.6.32-642.el6.x86_64
cp
vmlinuz-2.6.32-642.el6.x86_64 /mnt/sysimage/boot/
退出,重启
方法三:挂载光盘,mkdir
/mnt/cdrom ;mount /dev/sr0 /mnt/cdrom
cd /mnt/cdrom
cd isolinux 可以查看里面有个vmlinuz文件
cp /mnt/cdrom/isolinux/vmlinuz
/mnt/sysimage/boot/ vmlinuz-2.6.32-642.el6.x86_64
chroot /mnt/sysimage
ls /boot ;cat
/boot/grub/grub.conf 进行文件对比,确保生成文件没问题。
退出,重启
原创文章,作者:chenxu@magedu.com,如若转载,请注明出处:http://www.178linux.com/72085