centos6启动流程及救援恢复

熟悉系统启动流程对于我们学习Linux系统是非常有帮助的,虽然基础,但能帮助我们更加理解Linux系统的工作机制,以下以CentOS6启动流程介绍:

  • 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控制主机

MBR(Master Boot Record)引导
MBR记录一般是在磁盘 0 磁道 1 扇区,共512个字节,BIOS找到并读取MBR到内存中。前446个字节是BootLoder,后 4*16 的 64 个字节是存放分区信息的,最后 2 个字节是校验信息,一般是 55AA。

GRUB(GRand Unified Bootloader)
就是MBR中的前446个字节,它的作用是要选择要启动的内核。

  • stage1:存放于MBR的前446Bytes,用于加载stage1.5阶段,目的是为了识别并驱动stage2(或者/boot)所在分区的文件系统;

  • stage1.5:存放于MBR之后的扇区,加载stage2所在分区的文件系统驱动,让stage1中的bootloader能识别stage2所在分区的文件系统;

  • stage2:存放于磁盘分区之上,具体存放于/boot/grub目录之下,主要用于加载内核文件(vmlinuz-VERSION-RELEASE)以及ramdisk这个临时根文件系统(initrd-VERSION-RELEASE.img或initramfs-VERSION-RELEASE.img)。

  • 加载内核,初始化进程
    通过grub加载到内核后,就在内存中解压并展开就可完成后续操作即内核自身初始化。
    (1)探测可识别到的所有硬件设备
    (2)加载硬件驱动程序(借助于ramdisk加载驱动)
    (3)以只读方式挂载根文件系统
    (4)运行用户空间的第一个应用程序:/sbin/init
    设置默认运行级别:为系统运行或维护等目的而设定;0-6:7个级别
    d
    0:关机
    1:单用户模式(root自动登录), single, 维护模式
    2: 多用户模式,启动网络功能,但不会启动NFS;维护模式
    3:多用户模式,正常模式;文本界面
    4:预留级别;可同3级别
    5:多用户模式,正常模式;图形界面
    6:重启
    默认级别: 3, 5
    切换级别:init #
    查看级别:runlevel ; who -r


模拟启动问题处理实验

1阶段

1阶段出问题症状:不会进入GRUB菜单,如果没有挂光盘,就直接黑屏,挂上光盘后,会直接进入安装菜单(因为GRUB主程序被破坏,检测以为系统没有安装)
我们可以用dd if=/dev/zero of=/dev/sda bs=1 count=446去破坏MBR中的GRUB,模拟出1阶段错误
恢复步骤:

  • 开机按ESC键,选择第三项进入救援模式
    centos6启动流程及救援恢复_第1张图片
  • 切根
    这里写图片描述
  • 重新生成grub
    centos6启动流程及救援恢复_第2张图片
  • exit;exit;然后reboot重启

1.5阶段

1.5阶段模拟破环条件:用dd if=/dev/zero of=/dev/sda bs=1 count=3000 skip=512 seek=512来将MBR之后的扇区内容删除一些
恢复步骤同1阶段处理流程

2阶段

2.1模拟把boot目录清空: rm -rf /boot/*
  • 首先光盘模式启动进入linux rescue救援模式。

  • 切根、安装kernel内核

chroot   /mnt/sysimage
mount /dev/sr0  /media
rpm -ivh /media/Packages/kernel-2.6.32-71.el6.i686.rpm  --force 
  • 安装grub
    grub-install /dev/sda 此命令可以修复1阶段、1.5阶段和2阶段
    sync

  • 手动添加/boot/grub/grub.conf配置文件,如下
    centos6启动流程及救援恢复_第3张图片

  • 修复完成后,保存,退出救援模式,重启。

sync
exit
reboot
2.2模拟把grub.conf配置文件删除

centos6启动流程及救援恢复_第4张图片

2.3模拟删除/etc/fstab文件 和清空/boot目录
rm -rf /etc/fstab
rm -rf /boot/*
修复步骤:
一:开机进入救援模式
找到根对应在哪个分区(这里默认为/dev/sda2)
mount /dev/sda2 /mnt/tmp
vi /mnt/tmp/fstab
这里写图片描述
编辑完后,退出重启进入救援模式,

你可能感兴趣的:(Linux)