存档

文章标签 ‘NTFS’

Win7下破坏Grub分区表的恢复笔记

2010年2月19日

本命年还没开始两天就被许多不愉快的事情弄得焦头烂额,昨天刚拿到等了1个多月的ZoomII,还没来得及捂热,build android时发现自己笔记本Linux分区的空间不够,于是鬼使神差的想到了进Windows下调整硬盘空间。使用Windows Vista/7自带的shrink volume功能,满心欢喜的从某个主盘分出来8G空间之后重启,grub挂掉了:报错error 22。

根据官方文档,Error 22的定义是

22 : No such partition
This error is returned if a partition is requested in the device part of a device- or full file name which isn’t on the selected disk.

由于从grub引导读入的boot分区是我Linux的主分区(ext3),也就是/dev/sda4,在grub载入时出现这种错误就意味着sda4的分区表在Windows下被残忍的强奸了。于是我首先想到的就是通过LiveCD查看受损情况,结果让我大惊失色:原本位于扩展分区sda3下的sda4变成了unallocated area,接着sda4的swap分区也一起揉进去了,但同在一个扩展分区下的Windows分区则没有任何问题,于是我的硬盘就变成了这个样子:

更要命的是,自己论文用软件的代码是在Linux下写的,而恰恰因为过于信任Linux的稳定性没有对这些代码做备份,一想到这本来ZoomII等了快两个月终于到了现在硬盘又坏了,让人怎么能安睡啊。
但是焦虑也不是解决问题的办法,在多方求助加上ubuntuforum的帮助之下,分区表成功恢复,两个系统没有一点数据丢失,总算是有个曲折的good ending吧(死

下面就来总结下方法吧,留作笔记供后人参考:

问题描述:
Windows 7下对磁盘分区操作后导致Grub分区表破坏,主boot分区sda4被破坏,Grub载入不能报错代码22。
问题定性:
使用Ubuntu的LiveCD从U盘启动,通过gpartd工具查看sda磁盘的情况,发现ext3的sda4分区和swap分区被破坏,成为unallocated空间,无法通过一般方法access内部数据,无法挂载也无法通过grub或者fdisk重建被破坏的分区表。
使用工具:
LiveCD(使用unetbootin工具制作的U盘LiveCD),TestDisk和grub。
顺便一说,unetbootin工具是个非常强大的制作各类U盘启动系统的小软件,并且有适合于Win/Mac/Linux的多种版本。
解决方法:
1、LiveCD启动
2、下载并解包TestDisk
3、在terminal下运行TestDisk_static这个executable,根据屏幕提示,先create一个log file用于记录分析和恢复信息,然后选择sda这个需要恢复的硬盘,选择合适的分区表类型(TestDisk会自检并高亮选中某一个类型,大部分硬盘的分区表类型都是Intel),然后尝试Quick Search
4、在我这次恢复中,只是使用了Quick Search,就成功的检测出了原来的sda3分区和swap分区,检测后结果如下:

通过记忆核实检测出来的sda4和swap大小基本无误,但为了保险起见我还是p了一下检测出的Linux分区,发现原来的文件都在,于是确定检测无误。
再按Enter之前,还需要将Boot分区(标识*的分区)改为Linux的分区,更改的方法是使用左右箭头键。
5、Enter之后选择Write Table,如果需要的话还有Deep Search可以使用,但我这种情况下不需使用。于是分区的恢复工作就完成了。此时由于Grub还未恢复,因此还是无法从本地硬盘启动。
6、重启并再次进入LiveCD,此时会发现ext3分区已经出现,mount此分区,记录下分区在/media下的位置,进入最后一步。
7、最后一步是用Grub重装bootloader。这个操作比较简单,在LiveCD的terminal下使用下面代码即可:

grub
grub>find /boot/grub/stage1
grub>root (hd0,2)
grub>setup (hd0)
grub>quit

重启,大功告成,数据完全恢复。
注释:
Super Grub Disk也是一个好用的恢复分区表工具
ext2grub有人提到,但我没尝试
ubuntu-rescue-remix这个LiveCD中有内嵌TestDisk,觉得懒得人可以用这个做成急救恢复盘
自动增量备份很有必要,我参照这两篇文章(http://blog.simophin.cn/?p=498http://blog.chinaunix.net/u3/105147/showart_2080373.html)建立了一个基于ftp的增量备份解决方案。

最后感谢C版群的PT大神和Lain前辈、EP群的大虾、字幕组群的阳阳童鞋、wps童鞋和村汉童鞋,当然最重要的还有一直鼓励着我的ランヤ学妹。m(___)m

admin 技术宅区 , , , , , ,

Switch to our mobile site