Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复

引导过程总览

Linux操作系统的引导过程一般包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载Linux内核、init进程初始化。
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复

·开机自检

服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

·MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR的位置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)

·GRUB菜单

对于Linux操作系统来说,GRUB是使用最为广泛的多系统引导器程序,系统控制权传递给GRUB以后将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核,需要注意的是,CentOS7采用的是GRUB2启动引导器。

·加载Linux内核

Linux内核是一个预先编好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度,内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程,在CentOS中,默认的内核文件位于"/boot/vmlinuz-3.10.0-514.el7.x86_64"。

·init进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中的/sbin/init程序加载到内存中运行(运行中的程序称为进程),init进程负责一系列的系统初始化过程,最后等待用户进行登录。

修复MBR扇区故障

  • 故障原因
    1、病毒、木马等造成的破坏
    2、不正确的分区操作、磁盘读写误操作
  • 故障现象
    1、找不到引导程序,启动终端
    2、无法加载操作系统,开机后黑屏
  • 解决思路
    1、提前做好备份文件(生产环境中,可用硬盘去其他相同配置的服务器中拷一份)
    2、以安装光盘引导进入急救模式
    3、从备份文件中恢复

实验环境

VMware、rhel 7.4

实验步骤

1、在虚拟机关机的状态下,重新添加一块硬盘,大小为10G
2、开启虚拟机,fdisk -l查看新加入的硬盘
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
3、对硬盘进行格式化(创建文件系统的类型)mkfs.ext4 /dev/sdb
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
4、对磁盘挂载 mount /dev/sdb /opt (挂载到opt目录)
5、df -Th查看挂载
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
6、备份MBR扇区数据 dd if=/dev/sda of=/opt/mbr.bak bs=512 count=1
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
7、模拟MBR扇区故障 dd if=/dev/zero of=/dev/sda bs=512 count=1 (表示对第一块磁盘上的MBR扇区进行全0覆盖写入)
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
8、init 6 重启会发现系统起不来,此时选择进入troubleshooting
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
9、进入troubleshooting菜单 选择Rescue a Red Hat Enterprise Linux system
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
10、按1 再按回车进入sh-4.2#
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
11、mount /dev/sdb /mnt 将sdb备份的文件挂到mnt下,然后进mnt目录查看是否有mbr.bak
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
12、dd if=/mnt/mbr.bak of=/dev/sda bs=512 count=1 把MBR扇区备份数据拷贝到第一块磁盘,之后reboot重启,可以看到系统已修复好,可以登录
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复

修复GRUB菜单故障

实验环境

VMware RedHat 7.4

实验步骤

1、模拟GRUB菜单故障 cd /boot/grub2 rm -rf grub2.cfg 进入到grub2目录,删除grub2的配置文件,之后init 6重启,重启时快速按F2键进入BIOS界面
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
2、在BIOS界面切换到Boot,把CD-ROM Drive排在第一个启动,然后切换到Exit保存退出
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
3、之后选择进入troubleshooting
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复

4、进入troubleshooting菜单 选择Rescue a Red Hat Enterprise Linux system
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
5、按1 再按回车进入sh-4.2#
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
6、进入救援模式后切根 chroot /mnt/sysimage/ ;之后进入到grub2目录 cd /boot/grub2/; 修复grub.cfg配置文件grub2-mkconfig -o /boot/grub2/grub.cfg ;ls查看是否修复
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复
7、退出、重启(exit init 6)注意:重启时需要快速按F2键进入BIOS,把Boot里的启动顺序还原,然后切到Exit保存退出,可以看到系统已修复好可以正常登录
Linux操作系统引导过程中MBR引导与GRUB菜单的故障模拟与恢复