CentOS 6的启动过程及GRUB常见故障

Centos 6.9的启动

1.启动过程

启动流程详解图

CentOS 6的启动过程及GRUB常见故障_第1张图片
image

注:此图来自网络

  1. 加载BIOS的硬件信息,获取第一个启动设备
  2. 读取第一个启动设备MBR的引导加载程序(grub)的启动信息
  3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
  4. 核心执行init程序,并获取默认的运行信息
  5. init程序执行/etc/rc.d/rc.sysinit文件
  6. 启动核心的外挂模块
  7. init执行运行的各个批处理文件(scripts)
  8. init执行/etc/rc.d/rc.local
  9. 执行/bin/login程序,等待用户登录
  10. 登录之后开始以Shell控制主机

2. GRUB启动和常见故障

1. stage1是引导扇区中引导程序(MNR的前446字节为引导程序),功能是用来装载stage1.5或stage2的。

这一阶段的常见故障一般为grub引导程序被破坏。具体表现:无法进入启动菜单,计算机提示找不到系统,如果计算机装载有光盘会直接进入系统安装界面。

恢复步骤:装载系统光盘,进入救援模式(Rescue installed system),如果/etc/fstab文件损坏救援模式是无法找到系统根的

CentOS 6的启动过程及GRUB常见故障_第2张图片
image.png

选择第三项,这一步后面的两步是设置语言和键盘的默认即可。
CentOS 6的启动过程及GRUB常见故障_第3张图片
image.png

这一步是设置网络的,直接选择NO。
CentOS 6的启动过程及GRUB常见故障_第4张图片
image.png

这一步提示寻找系统的根,并把它挂载到/mnt/sysimage目录下,选择Continue。
CentOS 6的启动过程及GRUB常见故障_第5张图片
image.png

提示根找到了并把他挂载到/mnt/sysimage目录下。想要切换到根的,执行chroot /mnt/sysimage。后面的直接按ok即可。
CentOS 6的启动过程及GRUB常见故障_第6张图片
image.png

这里选择shell start shell,开启一个shell
image.png

进入命令行:执行 chroot /mnt/sysimage切换到系统的根
CentOS 6的启动过程及GRUB常见故障_第7张图片
image.png

执行 grub-install /dev/sda重新生成grub引导信息,/dev/sda系统安装的的硬盘,如果不知道可以先用 df查看。

  1. 然后,exit退出到救援模式,执行reboot重启系统
注:如果重启之后出现SElinux字样并卡在那里,没有关系那是Linux系统的一种安全机制发现了系统有更改在扫描系统。
2. 因为stage2是放在文件系统中stage1不能识别文件系统格式,所以需要stage1.5来引导位于文件系统中的stage2。stage1.5的文件存放于/boot/grub目录下后缀为“1_5”的文件。实际上stage1加载1.5时是无法识别文件系统的也无法找到stage1.5的文件,所以在/boot/grub目录下的文件只是备份文件,在安装grub时安装程序就已经把stage1.5文件写入到硬盘中紧邻着MRB的32K空间中,紧邻着MBR的一段硬盘空间通常是空白的,grub就把1.5的文件写入到这里。这个地方没有文件系统,所以stage1可以直接加载1.5的文件。
  1. 故障通常表现为:黑屏和error 15和17
  2. 修复方法和grub1阶段的修复一样

3.stage2:grub能让用户加载内核、改变参数、修改选项,这些全都是stage2的功能。stage2可以去获取grub.conf以及menu.lst等文件的内容。

1. /boot/initramfs-2.6.32-696.el6.x86_64.img文件损坏的表现和修复方法:内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问,并加载相应的硬件驱动。
  1. 先把/boot/initramfs文件删除来模拟损坏
  2. 故障通常表现为进入启动菜单后黑屏。
  3. 救援方法,在救援模式下通过下面的这条命令来重新生成文件
mkinitrd /boot/initramfs-`uname -r`.img `uname -r` 
CentOS 6的启动过程及GRUB常见故障_第8张图片
image.png
2. grub.conf文件损坏的表现和修复方法
  1. 把文件删除模拟损坏


    image.png
  2. 在grub命令行了手动输入grub.conf文件中的内容临时启动,支持TAB补全。
CentOS 6的启动过程及GRUB常见故障_第9张图片
J{E{7$NMLBVE2{SB$IDHTA1.png
  • root (hd0,0) 表示第一块硬盘的第一个分区。可以利用TAB补全来查看有几个分区
  • kernel 指定内核文件已只读的方式加载,指定系统分区
  • initrd 指定/initramfs文件
  • boot 运行,进入系统
3. 进入系统之后新建grub.conf文件

格式

  • default=#: 设定默认启动的菜单项;落单项(title)编号从0开始
  • timeout=#:指定菜单项等待选项选择的时长
  • splashimage=(hd#,#)/PATH/XPM_FILE:菜单背景图片文件路径
  • hiddenmenu:隐藏菜单
  • password [-- md5] STRING: 启动菜单编辑认证
  • title TITLE:定义菜单项“标题” , 可出现多次
  • root (hd#,#):查找stage2及kernel文件所在设备分区;为grub的根
  • kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
  • initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件
CentOS 6的启动过程及GRUB常见故障_第10张图片
image.png
3. /boot/grub/目录被删除和修复方法
  1. 删除/grub目录模拟故障,故障表现:计算机黑屏提示error 15
  2. 在救援模式下重新安装grub软件包和重新生成grub文件,安装grub软件包需要先挂载光盘。最后还需要在grub目录下写一个grub.conf文件。


    CentOS 6的启动过程及GRUB常见故障_第11张图片
    image.png

你可能感兴趣的:(CentOS 6的启动过程及GRUB常见故障)