修复MBR扇区故障

虚拟机MBR扇区备份与恢复实战
本文详细介绍了如何在虚拟机中模拟MBR扇区故障,并提供了一套完整的修复方案。首先,为虚拟机添加80GB磁盘并以MBR模式分区,然后备份MBR至/mnt/sda.mbr.bak,接着人为破坏MBR导致无法正常启动。通过光盘引导进入修复模式,利用dd命令进行MBR恢复,最终成功修复虚拟机的启动问题。

问题
1)为虚拟机添加一块80GB的新磁盘
2)采用MBR模式分区,划分一个1GB的新分区
3)将此分区格式化、挂载到 /mnt 下
4)MBR备份及破坏
5)备份磁盘/dev/sda的第1个扇区
6)备份文件保存到/mnt/sda.mbr.bak
7)清除/dev/sda前512个字节,关机重启
8)进入光盘急救模式,进行恢复
方案
本实验的整体操作是利用dd命令备份,再进行还原。需注意备份文件要放在另一硬盘。
修复时因MBR损坏,无法引导开机,是通过光盘引导进入修复模式进行还原。
在修复模式下,系统当中的目录是不允许挂载的。需要自己建立一个目录挂载。
步骤
实现此案例需要按照如下步骤进行。

步骤一:为虚拟机添加一块80GB的新磁盘

采用MBR模式分区,划分一个1GB的新分区,命令操作如下所示:

[root@svr5 ~]# ls /dev/sdb   //是否识别新的硬盘sdb
/dev/sdb
[root@svr5 ~]# parted /dev/sdb mktable msdos

信息: You may need to update /etc/fstab.

[root@svr5 ~]# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End  Size  Type  File system  标志

[root@svr5 ~]# parted /dev/sdb mkpart primary ext4 0 1G

警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? i
信息: You may need to update /etc/fstab.

[root@svr5 ~]# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End     Size    Type     File system  标志
 1      512B   1000MB  1000MB  primary

[root@svr5 ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
[root@svr5 ~]# ls /dev/sdb1
/dev/sdb1
[root@svr5 ~]#

将此分区格式化、挂载到 /mnt 下。
命令操作如下所示:

[root@svr5 ~]# mkfs.ext4 /dev/sdb1
……
[root@svr5 ~]# mount /dev/sdb1 /mnt/
[root@svr5 ~]# mount | grep /mnt/
/dev/sdb1 on /mnt type ext4 (rw)
[root@svr5 ~]#

步骤二:MBR备份及破坏

分析:采用dd命令进行备份与破坏,把磁盘sda的前512个字节读取并写到一个文件里,要注意的是要写到mnt目录里。
备份磁盘/dev/sda的第1个扇区,命令操作如下所示:

[root@svr5 ~]# dd if=/dev/sda of=/mnt/sda.mbr.bak bs=1 count=512
记录了512+0 的读入
记录了512+0 的写出
512字节(512 B)已复制,0.00107661 秒,476 kB/秒
[root@svr5 ~]# ls -l /mnt/sda.mbr.bak 
-rw-r--r--. 1 root root 512 3月   3 15:51 /mnt/sda.mbr.bak
[root@svr5 ~]#
破坏磁盘/dev/sda的第1个扇区,命令操作如下所示:
[root@svr5 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512

记录了512+0 的读入
记录了512+0 的写出
512字节(512 B)已复制,0.00382325 秒,134 kB/秒
[root@svr5 ~]#
关机,命令操作如下所示:
[root@svr5 ~]# init 0
步骤三:进入光盘急救模式,进行恢复
如图-1所示,将光盘驱动的启动时连接的勾去掉,单击确认。
在这里插入图片描述
图-1
开机查看效果,如图-2所示。
在这里插入图片描述
图-2
如图-3所示,关闭虚拟机电源,进入光盘急救模式,进行恢复,将光盘驱动启动时连接的勾打上,确保放入的是RHEL6的光盘,进入光盘修复模式。
在这里插入图片描述
图-3
如图-4所示,开机选择第三项“Rescue installed system”进入修复模式。
在这里插入图片描述
图-4
如图-5所示,选择语言,此模式只支持英文。默认即可,按回车键。
在这里插入图片描述
图-5
如图-6所示,选择键盘,默认即可,按回车键。
在这里插入图片描述
图-6
如图-7所示,是否开启网络,按Tab键选择“No”,按回车键。
在这里插入图片描述
图-7
如图-8所示,简单理解是说会尝试寻找Linux系统分区,找到了会把它挂载/mnt/sysimage,按Tab键选择“Continue”,按回车键。
在这里插入图片描述
图-8
如图-9所示,没有找到任何Linux分区,按回车键。
在这里插入图片描述
图-9
如图-10所示,选择start shell打开一个Shell环境,按回车键。
在这里插入图片描述
图-10
创建目录/bak,并挂载。
命令操作如下所示:

bash-4.1# mkdir /bak
bash-4.1# mount /dev/sdb1 /bak
bash-4.1# dd if=/bak/sda.mbr.bak of=/dev/sda
bash-4.1# reboot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值