修复MBR扇区故障

    xiaoxiao2022-07-04  121

    问题 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
    最新回复(0)