CentOS6 的启动流程以及 系统启动时常见故障及修复方法

CentOS6 的启动流程以及 系统启动时常见故障及修复方法

CentOS6启动流程

POST --> Boot Sequence(BIOS) --> Boot Loader -->Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init-->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本rc.sysinit--> 关闭或启动对应级别的服务 --> 启动终端

 CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第1张图片

1 post  加电自检 检查硬件环境

2 读取第一个启动设备MBR的引导加载程序,启动grubstage 1  --grub加载完毕运行内核,内核运行完之后通过grub文件读取内核加载的根分区

3 grub stage1.5  存放在mbr后续的27个扇区 加载/boot 分区 加载分区文件系统驱动

4 grub stage2  存放在boot分区上 /boot/grub/grub.conf 定义了内核的路径,告诉我们内核文件在哪,下一步就开始加载内核了

5通过 vmlinuz内核文件 配合//boot/initramfs.xxx.img (识别根文件系统的驱动) 开始加载根

6 加载根后运行第一个进程/sbin/init  通过读取/etc/inittab这个文件决定系统的运行模式

7 使用 rc.sysinit进行系统的初始化

8  系统初始化完成之后根据系统默认的运行模式运行对应文件夹(/etcrc3.d/)下面的很多脚本去启动各项服务--/etc/rc3.d/S,Kxxx --> /etc/init.d/xxx

(运行模式:不同服务的各种组合)

9.启动终端开启一个应用程序 login

一:grub 三个阶段 损坏应该怎么恢复

1.GRUB阶段故障

grub stage1  存放在MBR前 446个字节 如果第一阶段破坏  系统中的硬盘就不具有启动功能。直接进入下一引导的启动设备

//(hexdump -C-n 512 /dev/sda查看;dd if=/dev/sda of=/data/mbr bs=1 count=512备份;sz /data/mbr上传;dd if=/dev/zero of=/dev/sda bs=1count=446) 模拟破坏grub stage1

grub stage1.5 加载boot 分区文件系统。

//hexdump -C /dev/sda -n 13824 -v ;dd  if=/dev/zero  of=/dev/sda bs=1 count=10000  skip=512 seek=512 模拟破坏grub stage1.5

grub stage2 加载boot分区的配置文件。

2:故障现象

1)grub  stage1 故障现象 如下图所示:系统硬盘不再具有启动功能,直接进入下一引导的启动设备
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第2张图片

2)grub stage1.5 故障现象如下图所示 :,从此硬盘启动黑屏,在第一行有一个光标,但是无法进入系统,也不会去读取下一个可引导设备
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第3张图片

3)grub stage2 故障 grub第2阶段是提供了grub菜单界面,如果损坏了和1.5相似,也是无法看到grub启动界面

3:解决方法

1)用安装光盘启动,在安装界面选择Recuseinstalled system 进入救援模式.

2)根据提示选择 ok

3)选择是否配置网卡,选择no

4)#chroot /mnt/sysimage/ 改变磁盘根目录 (注意:系统一直提示我们当前所在的shell环境中 真实根目录是 /mnt/sysimage/)
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第4张图片

5)#grub-install /dev/sda (生成grub,此命令可恢复全阶段的grub 内容)----注意:如果有备份文件也可用备份文件恢复
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第5张图片

6)执行完grub命令 最好使用sync命令写入磁盘。最后重启系统修复成功。

二:grub配置文件损坏 /boot/grub/grub.conf

 

1.故障现象 系统读取不到grub配置文件,系统无法启动
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第6张图片

2.解决方法

1)在grub命令行界面 把那关键的两行补上 内核和initraid 文件
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第7张图片

2)输入boot回车,系统就可以正常启动了

3)系统启动成功后再去编辑完善 /boot/grub/grub.conf文件

三、boot分区下的两个核心文件(内核:vmlinuz;虚拟根文件系统:initramfs)遭到损坏 ,恢复方法

1.故障现象
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第8张图片

2.解决方法 安装包的方法

1)进救援模式,开启shell步骤和上面一样

2)#mount /dev/sr0  /mnt/cdrom 挂载光盘
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第9张图片

3)#rpm命令安装包,最后再查看以下文件已生成,重启

 CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第10张图片

四:配置文件/etc/fstab 和boot下所有文件都被损坏(rm -f /etc/fstab;rm -f /boot/*)修复方法

1.故障现象(问题很严重):
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第11张图片

2.解决方法:

1)和之前一样进救援模式

2)下图告诉我们系统正在尝试去找根,并且正在尝试挂载到/mnt/sysimage/,继续会提示,你没有任何linux分区,然后敲回车,开启一个shell

  CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第12张图片
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第13张图片

3)找到文件系统所在的根分区

#fdisk -l   //查看所有分区   找到根分区方法(新建一个文件夹/mnt/rootfs,将分区挨个挂载一下,查看哪个是根分区)

#mkdir /mnt/rootfs

#mount /dev/sda1 /mnt/rootfs    //挂上

#ls /mnt/rootfs //查看 ,如果空就不是根分区

#mount /dev/sda2 /mnt/rootfs

#ls /mnt/rootfs     //如下图所示/dev/sda2是根分区

4)#vi /mnt/rootfs/etc/fstab  //因为文件已删除所以手动编辑fstab文件 系统就可以启动了,启动之后再去完善fstab文件

---blkid 可以查看文件系统

5)重新进救援模式 让系统自动识别根,自动挂载。修复boot--重复实验三步骤

五:/sbin/init文件损坏。修复方法

1.故障状态 内核加载完之后,挂载根,然后找第一个进程,找不到就进行不下去了
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第14张图片

2.解决方法

1)救援模式

2)重装包,init这个进程来自upstart
CentOS6 的启动流程以及 系统启动时常见故障及修复方法_第15张图片

3)重启

你可能感兴趣的:(CentOS6 的启动流程以及 系统启动时常见故障及修复方法)