Linux修复MBR故障和GRUB引导故障

文章目录

  • 前言
  • MBR故障
    • 备份MBR扇区
    • 模拟故障
    • 进入紧急救援模式
    • 恢复数据
  • GRUB引导故障
    • 模拟故障
    • 修复故障

前言

本片博文主要讲述如何修复Linux的MBR故障和GRUB引导故障,实验环境为VMware软件下安装的CentOS7虚拟机,通过模拟故障来达到演示修复故障的目的。

MBR故障

主要思路是先在一块新硬盘上备份MBR扇区的数据,当原来的MBR扇区数据损坏时,通过紧急救援模式下使用备份文件来修复。

备份MBR扇区

给虚拟机插上新硬盘后,在虚拟机上将备份文件当到新硬盘中。

[root@localhost ~]# fdisk /dev/sdb			# 新硬盘创建新分区
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

创建挂载点,格式化为xfs

[root@localhost ~]# mkdir /abc
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# df -Th | grep abc		# 成功挂载
/dev/sdb1               xfs        20G   33M   20G   1% /abc

备份文件

[root@localhost ~]# dd if=/dev/sda of=/abc/mbr.bak bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000404116 s, 1.3 MB/s
[root@localhost ~]# ls /abc
mbr.bak

模拟故障

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000392009 s, 1.3 MB/s

重启,会发现主机开不了机,找不到系统。
Linux修复MBR故障和GRUB引导故障_第1张图片

这时候需要插入安装系统时的镜像,再重新开机。

进入紧急救援模式

插入安装系统时的镜像
Linux修复MBR故障和GRUB引导故障_第2张图片

开机。

在VMware读条的时候,按下ESC(眼疾手快,按一下就行),进入下图界面,通过该界面进入紧急救援模式。

Linux修复MBR故障和GRUB引导故障_第3张图片
Linux修复MBR故障和GRUB引导故障_第4张图片
Linux修复MBR故障和GRUB引导故障_第5张图片
Linux修复MBR故障和GRUB引导故障_第6张图片
输入1,回车,开始恢复数据。

恢复数据

Linux修复MBR故障和GRUB引导故障_第7张图片
输入reboot重启,就能正常开机了。

GRUB引导故障

通过删除grub配置文件来模拟grub故障,进入紧急救援模式重新安装grub并把配置文件重新导回原来配置文件的地方。

模拟故障

[root@localhost ~]# cd /boot/grub2/			# 进入grub文件夹
[root@localhost grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale
[root@localhost grub2]# rm -rf grub.cfg		# 删除配置文件

重启后发现会进入这样的界面:

Linux修复MBR故障和GRUB引导故障_第8张图片

修复故障

通过同样的方法进入紧急救援模式。

输入以下命令恢复grub配置文件
Linux修复MBR故障和GRUB引导故障_第9张图片
reboot重启,能正常开机,grub故障修复成功。

你可能感兴趣的:(linux)