my blog my blog

Tag: mbr
安装linux后用ghost还原windows失败,硬盘分区表被破坏无法进入PE跟DOS系统的解决方法

记得在一个多月前,奶牛就遇到过这个情况,因为奶牛装有Ubuntu linux跟win7双系统,在用ghost还原win7的时候ghost停止在了99%的地方,然后就无法进入任何系统了,这时候PE或者DOS也无法进入,因为硬盘的分区表已经错乱,有时候好一些的MBR没有被破坏,有时候MBR也被破坏掉了,用ubuntu的live-cd可以进入Ubuntu Live-CD的系统,但是进入后会发现硬盘分区有重叠重复现象,而且很严重。经过奶牛的测试,总结了如下一种比较可行的方法,可以找回部分分区(不保证全部都能找回来)。建议大家看完文章的建议后再开始行动。

1.先进入linux系统,你可以用U盘启动或者光盘启动,进入任意一个linux系统。我们这里就以ubuntu系统的live-cd为例。

进入live-cd ,执行命令

sudo su

fdisk -l

确定自己的硬盘分区为sda还是hda。然后根据具体情况来执行下一条命令清空分区表,其中的sda要根据fdisk的结果来判断。

dd if=/dev/zero of=/dev/sda bs=1 skip=446 count=66

2.引导进入PE系统,然后用工具PTDD分区表医生来交互式查找,应该可以找回大多数分区。保存,重启。

3.看看开机是否可以进入系统,如果不能进入,继续该还原的还原,该备份的备份。

建议:

1.这里对于硬盘有重要资料的朋友,建议找一个移动硬盘,在进入linux系统的时候用移动硬盘将可以访问的分区的重要资料备份出来(因为有一些分区还是可以正常访问的)。因为清空分区表之后用软件不一定能够找回所有分区。

2.建议用分区表医生找回分区后先备份下分区表,免得再出啥问题。

3.只有保证分区表正常才能进入PE等系统,有说PE可以进入,只不过要等很长时间,但是奶牛等了半个多小时也没反应,放弃该方法。奶牛的方法是清空分区表,那样子进入啥系统都正常,只不过是硬盘无可访问的分区。当然,感兴趣的朋友也可以将错乱后的分区表用dd命令备份下,看看结束的标志55 AA是否还在。

Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

最近奶牛一直在折腾linux下的grub跟grub2,因为前阵子用ghost恢复windows的时候出现错误,导致分区表被破坏,无法进入系统。今天给大家介绍下如何备份跟还原我们的硬盘主引导扇区。首先我来介绍下这个硬盘主引导扇区,因为对于这个主引导记录MBR跟这个硬盘分区表DPT的关系,可能有的朋友还不是那么清晰。

硬盘主引导扇区(硬盘的前512字节) = 硬盘主引导记录(MBR,硬盘的前446字节)+ 硬盘分区表(DPT,MBR后面的66字节)

MBR 446字节(0000–01BD),DPT 64字节(01BE–01FD),结束标志2字节(55 AA)

其中的这个结束标志很重要,如果缺失的话会导致系统无限次重启。

这个主引导记录MBR呢就是我们通常所说的引导程序的一部分,不管是windows还是linux系统,都要在这里写入一部分引导程序。但是这部分引导程序仅仅只是引导程序的一部分,就拿grub的最新版本grub2来说吧,通过mbr引导grub2,然后grub2的引导程序会通过引导来继续到硬盘上的/boot/grub/目录下继续进行引导,这里奶牛会在硬盘或者U盘安装grub的时候说明。

说过MBR,我们再来说说分区表,分区表DPT是在MBR之后的66个字节,最多可以有四个主分区或者三个主分区加一个逻辑分区。而逻辑分区的信息会写在扩展分区开始扇区上。所以,一般只要分区表DPT没出问题,逻辑分区一般不会出问题。

硬盘的主引导扇区都介绍过了,下面说说具体的备份与还原的方法。

这里奶牛是用ubuntu linux下的dd命令来完成的。

备份硬盘的主引导扇区:

dd if=/dev/sda of=./mbr.bak bs=512 count=1

说明if是输入设备,我们这里把第一块硬盘作为输入设备,这里大家需要注意下,有些硬盘不是sda而是hda,大家可以通过

sudo fdisk -l

来查看自己是sd的硬盘还是hd的硬盘。

of为输出的文件名,这里我们输出到了当前目录下的mbr.bak文件中了,大家可以通过pwd命令来查看当前目录的位置。

我们也可以规定它的输出位置为/boot/下,命令为

dd if=/dev/sda of=/boot/mbr.bak bs=512 count=1

还原也用同样的方法

dd if=/boot/mbr.bak of=/dev/sda bs=512 count=1

如果你仅仅要恢复分区表DPT

dd if=/boot/mbr.bak of=/dev/sda bs=1 skip=446 count=66

判断我们备份是否正确的方法是查看备份文件mbr.bak是否为512字节,且结束字节为55 AA。

这里奶牛建议各位经常用ghost还原的朋友,最好将备份文件多存几处备份,因为想一下,如果分区表错误了,我们的分区信息可能都无法读出,所以存在硬盘内的分区表备份可能也就无法拿来还原了。所以嘛,多存网上或者U盘内一份备份奶牛觉得是有必要的。希望本文对大家有所帮助。