Centos7 MBR引导扇区修复

MBR扇区位于磁盘的第一个扇区,其中包含系统的引导程序的硬盘的分区记录,若该扇区数据发生丢失或损坏,会直接导致系统无法正常启动。下面将教大家对MBR扇区进行备份与修复。

1、为虚拟机添加一块硬盘
USyfL8.md.png

2、重启虚拟机,使用fdisk命令查看是否添加成功

[root@localhost ~]# fdisk -l

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b9fa2

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    10227711     4064256   82  Linux swap / Solaris
/dev/sda3        10227712   115085311    52428800   83  Linux
/dev/sda4       115085312   629145599   257030144    5  Extended
/dev/sda5       115087360   629145599   257029120   83  Linux

3、创建磁盘分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xdb600f99 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

4、格式化磁盘

[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

5、将磁盘挂载到系统/mnt目录下并查看挂载情况

[root@localhost ~]# mount /dev/sdb1 /mnt

[root@localhost ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        50G  1.1G   49G    3% /
devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs     1.9G   12M  1.9G    1% /run
tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5      xfs       246G   33M  245G    1% /home
/dev/sda1      xfs      1014M  138M  877M   14% /boot
tmpfs          tmpfs     378M     0  378M    0% /run/user/0
/dev/sdb1      xfs        20G   33M   20G    1% /mnt

6、因为MBR引导文件存放在磁盘第一个扇区,我们先来进行备份

[root@localhost ~]# dd if=/dev/sda of=/mnt/sda.mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000547944 秒,934 kB/秒

7、模拟破坏MBR引导信息

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000243461 秒,2.1 MB/秒

8、重启系统,发现这时候已经不能正常启动了。
USygzt.md.png

再重启一下,通过光盘镜像引导系统,选择第三项“Troubleshooting”,再选择“再选择“Rescue a Centos Ststem”,
USycRI.png
USy6JA.png
USyyid.md.png
9、进入救援模式后,输入”1“进入命令行模式,输入以下内容

mount /dev/sdb1 /mnt      ## 将sdb1挂载到/mnt目录下
dd if=/mnt/sda.mbr.bak of=/dev/sda bs=512 count=1     ## 将备份的文件写入sda

USyRQP.md.png

10、写入完成后使用reboot命令重启系统
USyWsf.md.png
发现可以进入登录界面了,修复成功!

【注意】:在使用光盘进行引导启动之前要在虚拟机中勾选以下两项

USy5dg.md.png

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/107136518