硬盘ext2/3文件系统superblock损坏修复试验
http://blogold.chinaunix.net/u1/48373/showart_1331657.html
http://www.heibai.net/book/html/xitonggongju/cipangongju/2009/0527/484.html
http://blogold.chinaunix.net/u1/48373/showart_1331657.html
在修复此类故障的方法中,就一种方法是重新建立分区表,我们可以通过第三方软件(例如DISKGEN、Partition Table Doctor、DiskMan、TestDisk、易我分区表医生等)来扫描硬盘的扇区,分析数据的存储结构来重新建立原来的分区表数据,以此达到恢复数据的目的,当然,前提是故障发现后,未对硬盘作过操作。
下面我以其中的TestDisk软件为例来讲述怎么通过软件重建硬盘的分区表。
TestDisk 主要用来恢复损坏的分区以及拯救无法引导的磁盘,TestDisk支持在
Windows、Linux、Unix、Mac OS 等系统上执行。TestDisk 还支持包括 FAT、NTFS、Ext2、Ext3、ReiserFS、RAID 等在内的广泛的文件系统。
一、故障现象:
一般引起这种故障的原因是因为在操作分区表时失误导致,例如:使用Ghost克隆系统至C盘时死机或断电、病毒破坏等。一般故障现象提示为“驱动器X中的磁盘未被格式化,现在格式化吗?”,跟刚分区且未格式化磁盘的现象一样
二、使用TestDisk修复分区表:使用TestDisk中的快速扫描, 然后copy备份不能加载的文件;
1、linux里面安装testdisk, sudo yum install testdisk; run testdisk;
#sudo testdisk
2、首先,选择恢复操作中的log文件(testdisk.log)的纪录方式。
[Create]新建
[Append]追加
[No Log]不纪录
选择新建log文件的记录方式。
选择: create 即可
3、 选择了log文件的记录方式后、显示了处于连接状态的磁盘设备。
然后选择要恢复的磁盘分区、选择[Proceed]。
4、在列出的磁盘设备中,选择要恢复的分区,然后选择磁盘分区的种类。
Linux/Windows就选[Intel]。
5、下示画面中选择[Analyse],对分区进行分析。
6、显示了当前分区的状态。这是软件分析的当前分区表的分区结果,我们选择“Quick Search”进行一次快速检测。
7、选择了“Quick Search”后,会进行如下图所示的检测过程,每检测到一个分区,则显示在窗口中。
8、检测出的结果如果符合分区空间划分(就算其中有丢失的空间)的话,会以绿色表示,
我们可以手工添加挂失的分区,在此界面中输入“A”键来手工添加分区。
前面为“D”的状态,这个就是丢失了的分区
前面为“L”的状态,绿色表示正常的分区
9, 通过上、下光标键移动选择分区,选择分区,按[P]键,该分区根部的文件和索引被表示出来,如果显示正确的画,分析结果就可以正确的推算。然后用这个方法,对其他的盘符进行操作。
10, 此时可以根据提示进行相应的磁盘内容copy 备份恢复。
我的内容都是进行这样进行修复的。
My disk error info:
Error erasing: helper exited with exit code 1: In part_del_partition: device_file=/dev/sdb, offset=170814422016
Entering MS-DOS parser (offset=0, size=320072933376)
read failed (Input/output error)
Exiting MS-DOS parser
Entering Apple parser
read failed (Input/output error)
Leaving Apple parser
No known partition table found
Warning: Error fsyncing/closing /dev/sdb: Input/output error
got it
Error: /dev/sdb: unrecognised disk label
Warning: Error fsyncing/closing /dev/sdb: Input/output error
ped_disk_new() failed