MBR损坏是一种非常常见的错误,今天模拟一下,来进行MBR修复。主要模拟两种情况:1.MBR文件损坏 2.grub目录被误删除

1.首先,MBR是安装在硬盘的第一个扇区上占用了512个字节,其中前446字节是bootloader用于引导操作系统(中间的64个自己用来指定分区,每个分区为16个字节,所以一个操作系统最多有四个主分区,最后两个字节是标志位,用于表示OK或者not ok),它不在分区上,而是位于分区之外,因为分区是对于操作系统而言的,而MBR是用于引导操作系统的,因此现在模拟MBR损坏只要把磁盘上第一个扇区的钱446个字节破坏掉即可。我此处使用dd命令:

# dd if=/dev/zero of=/dev/sda bs=400 count=1
# sync

命令含义:从dev目录下取得任意个字符串,去替换/dev/sda中一定数量的字符,这个数量是根据bs和count来计算的,本条命令为取大小为400字节的块,一共取1个,注意bs单位还可以是M和G。这样就破坏掉了MBR分区,现在重新启动系统,如下(破坏的字节数不同所报的错误也是不同的):

2.使用安装光盘进入紧急修复模式,我的是虚拟机,所以可以直接模拟用挂载光盘镜像。在虚拟机启动时,按下F2进入BIOS,将光盘启动移动至顶部,即选择光盘为第一启动项(注意:选中CD-ROM Drive,同时按下shift与+可以将该项移动至顶部,如下图)。选择好以后,按下F10保存退出。

3.挂载安装镜像光盘

4.重启电源,进入紧急修复模式。如下图,按下F5进入救援模式:

根据提示,输入linux rescue,按下enter进入简单的交互救援模式。

5.基本上是一路OK,只有在选择是否配置网络时,根据你的需要选择,我不需要使用,所以使用NO。接下来进入一个虚拟的linux系统。此时我们可以根据提示进入系统挂载的目录(也可以不进入,但最好进入去修复)。

6.进入系统挂载的目录

# chroot /mnt/sysimage

可以查看一下当前系统目录,和我们使用exit退出后看到的目录是不一样的。

7.进入grub交互模式,修复MBR文件。

# grub

grub> root (hd0,0)<span style="white-space:pre">	</span>//设定内核的根分区(只能是hd开头的,无论你是scsi或者ide等其他格式硬盘),注意这个不是我们启动操作系统后的根分区(启动后是位于/boot下,但这只是一个单独分区的挂载点而已,它其实比操作系统更早读入内存之中,因为是它来引导硬盘上的驱动和操作系统) hd(0,0) 即表示hd|(device#,partion#)

grub>setup (hd0)<span style="white-space:pre">	</span>//设定MBR安装分区,只要知道硬盘就可以了,不需要指定分区

grub>quit<span style="white-space:pre">		</span>//退出grub分区

# reboot<span style="white-space:pre">		</span>//重启操作系统
(弹出光盘进行重启)
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">如下图:</span>


8.重启成功


版权声明:本文为stability4884原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/stability4884/article/details/48154977