通过ubuntu server光盘恢复分区

悲剧开始:

ubuntu 11.10 + winxp 双系统,使用MBR的grub引导,xp中毒,通过ghost恢复,但是ghost备份文件损坏,最后无法结束,强行终止后开机时显示 grub rescure> 

恢复前资料收集:

在BIOS中可以正确识别硬盘型号,500G的硬盘有5个分区:3个NTFS: XP ,soft,backup,一个swap,一个ext4。

故障分析:

1.虽然在grub rescue> 可以通过ls查看到(hd0,msdos1)~(hd0,msdos8),但是set root,prefix后是无法加载那个normal模块,因为是没有的。证明网上的方法不一定是正确的。

2.无法通过win pe启动,这就表示windows下的disk genius之类的图形恢复操作无法进行,一直停在黑屏只有光标的模式。

3.使用USB HDD模式的U盘是无法启动的,硬盘一直在闪。

4.通过ubuntu 11.10 alternative 光盘启动,无法进入修复模式,一直停在黑屏只有光标的模式。

5.通过ubuntu 11.10 alternative 光盘启动,也无法重装系统,提示 kernel panic :out of memory。。。

6.使用ubuntu 10.04 server 光盘启动,能进入修复模式,提示加载root环境时/dev/sda1-sda254 !立即不加载环境,直接进去使用fdisk /dev/sda ,提示分区表出错,但是仔细看发现前面三个分区表正常,后面linux的分区变成了每2G一个,估计NTFS数据还在,EXT4的要看看才行了。

可恢复性分析:

由于分区表出错,所以之前用很多工具都无法启动,而且拼命在读硬盘。根据MBR的结构,把grub和分区表抹掉后就相当于新的硬盘,这样是就可以通过PE之类的引导,并使用disk genuis快速恢复了。虽然可以手工修复分区表,但是在没有网络的情况下,ubuntu 10.04 server 只有 nano 编辑器,而且无法直接读取硬盘和编辑二进制文件。

恢复操作:

1.在其他机器量产U盘,使用21模式,一个是USB CDROM模式,一个空的空间。USB CDROM为ubuntu server ,用于引导进入修复模式,还有一定的空间用于保存导出的MBR。并用二进制编辑器hexdump(windows下可以用winhex之类的)建立一个512字节全0内容文件0.mbr,用于覆盖MBR。

2.进入修复模式后先使用 dd if=/dev/sda of=/mnt/sdb/bad.mbr bs=512 count=1 导出原MBR做备份,这里bs是指扇区字节数,count是指1个。备份工作是必不可少的,有条件情况下可以做个整盘1:1镜像备份,不要使用ghost默认那种只备份数据信息的模式。

3.再使用dd if=/mnt/0.mbr of=/dev/sda bs=512 count=1覆盖现有的mbr。为下一步使用win pe启动做准备。

4.使用win pe启动,再通过disk genuis 3.71快速恢复soft ,backup 两个分区,数据没有丢失,但最后linux的分区还是没有能恢复出来。可以算是成功一半。当然有些时候由于多次覆盖恢复出来的分区里面内容为乱码,那么还是只能通过手工一步步去重做分区表了。毕竟工具是死的,人是活的。

5.由于是笔记本,也没有其他机器可以挂硬盘,在确认第一个分区的XP没有重要数据后先重装XP,再恢复linux分区数据。

6.在XP下面使用了好多工具都无法正确分析出linux分区,也无法确认swap和ext4分区哪个在前哪个在后,加上重要数据都是通过ubuntu one同步到云端了,只需要恢复/var/www中的一个目录就可以了,里面是开发中的代码。好习惯可以减少很多意外带来的损失,如果开发中的代码通过git同步到github或其他地方那就连恢复都不用了。

7.既然数据量不大,就用最麻烦的基于文件的恢复吧。easy recovery ,final data 对ext4分区支持不好,扫不到数据的。r-studio 支持ext系列分区,扫描结果也让人满意,花半小时就可以扫描出来并恢复。几K的学习费用换来一句话还是值得的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据