TestDisk 是一款强大 的免费数据恢复软件! 早期主要是设计用来在使用有缺陷的软件,病毒或人为误操作(如不小心删除分区表)导致的分区丢失后,帮助用户恢复丢失分区,或修复不能启动的磁盘。 用Testdisk来恢复分区表非常简单。

TestDisk支持以下功能:

  • 修复分区表, 恢复已删除分区
  • 用FAT32备份表恢复启动扇区
  • 重建FAT12/FAT16/FAT32启动扇区
  • 修复FAT表
  • 重建NTFS启动扇区
  • 用备份表恢复NTFS启动扇区
  • 用MFT镜像表(MFT Mirror)修复MFT表
  • 查找ext2/ext3/ext4备份的SuperBlock
  • 从FAT,NTFS及ext2文件系统恢复删除文件
  • 从已删除的FAT,NTFS及ext2/ext3/ext4分区复制文件.



这个 恢复范例 将引导你一步一步地用TestDisk来恢复丢失的分区和修复一个毁坏的分区。阅读了这个指南之后,你就可以恢复自己的数据了。我们很欢迎本TestDisk手册 的其他语言翻译版本。



Contents

 [​​hide​​] 


问题举例

我们有一个容量 36GB 的硬盘,包含着3个分区。 但是很不幸地;

  • NTFS主分区的boot扇区损坏
  • 一个逻辑 NTFS 分区被意外删除

本 恢复范例 引导你一步一步地用TestDisk通过以下途径,恢复这些 '丢失的' 分区:

  • 重写毁坏的NTFS boot扇区
  • 恢复意外删除的逻辑NTFS分区

我们可以一模一样地照着下面的步骤完成对FAT32分区的恢复(不是NTFS)。 这里也有其他的 ​​恢复范例​​。对于有关 FAT12, FAT16, ext2/ext3, HFS+, ReiserFS 和其他分区类型的信息,请参阅 ​​运行 TestDisk 程序​​.

唯一需要的条件:

  • TestDisk 需要用管理员权限来运行。

使用 TestDisk 的重点:

  • 用 ​​方向键​​ 和 ​​上一页/下一页​​ 按键在TestDisk 中导航。
  • 然后, 按​​Enter​​ 键确认你的选择.
  • 若要返回前一页或者退出TestDisk, 按 q (Quit) 键。
  • 若要在 TestDisk 下保存修改,按 ​y​ (Yes) 或者 ​​Enter​​ 键来确认
  • 如果确实要把分区信息写入主引导记录(MBR),应该选择 "Write" 选项并按 ​​Enter​​ 键。

症状

如果硬盘的主分区容纳着一个操作系统,那么由于毁坏的boot扇区,这个操作系统很可能不再能启动。如果这个硬盘是第二(数据)驱动器,你可以把它接到另一台计算机上(通常接到CD/DVD的接口),然后下面的症状就会被观察到:

  1. Windows 资源管理器 或 磁盘管理器 把第一个主分区显示为 raw (没有格式化) 并且 Windows 提示: ​​The drive is not formatted, do you want to format it now?(该驱动器没有格式化,现在格式化它吗?)​​[ 不应该 在不知道为什么的情况下格式化它!]
  2. 一个逻辑卷不见了。 在 Windows 资源管理器中, 这个逻辑卷不再可用。 Windows 磁盘管理器(Disk Management Console) 仅仅在这个逻辑卷的位置显示 "未分配的空间" 。

运行 TestDisk 程序

如果 TestDisk 还没有被安装, 可以从这里下载 ​​TestDisk Download​​。然后解压缩这个归档文件,包括子文件夹。

若要从 硬盘,U盘,智能卡等设备中恢复丢失的分区 或者 修复文件系统,你需要足够的权限来访问这个物理设备。

  • TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_分区表 在 DOS 下, 执行 TestDisk.exe
  • TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_高亮_02 在 Windows 下, 从一个处于管理员组的账户打开 TestDisk (ie ​​testdisk-6.13/testdisk_win.exe​​) . 在 Vista 下, 右击 testdisk_win.exe 然后 "以管理员身份运行" TestDisk.
  • TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_分区表_03 在 Unix/Linux/BSD 下, 需要用 root 账户来运行 TestDisk (ie. ​​sudo testdisk-6.13/testdisk_static​​)
  • TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_搜索_04 在 MacOSX 下, 不过你不是 root, TestDisk (ie ​​testdisk-6.13/testdisk​​) 将会在你的确认之后以sudo重新运行。
  • TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_05 在 OS/2下, TestDisk 不能处理物理设备,只能处理磁盘镜像.很抱歉.

若要从一个媒体镜像中恢复分区或者修复一个文件系统镜像,执行

  • ​testdisk image.dd​​ 在一个raw磁盘镜像中进行处理
  • ​testdisk image.E01​​ 从一个 Encase EWF 镜像中恢复文件
  • ​testdisk 'image.???'​​ 如果 Encase 镜像被分割成若干文件

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_分区表_03 TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_搜索_04 若要修复一个 TestDisk没有列出来的文件系统, 执行 ​​testdisk device​​, 也就是说,

  • ​testdisk /dev/mapper/truecrypt0​​ 或者 ​​testdisk /dev/loop0​​ 从一个 TrueCrypt 加密分区中 修复 NTFS or FAT32 boot 扇区文件. 同样的方法对于使用 cryptsetup/dm-crypt/LUKS 加密的分区也管用.
  • ​testdisk /dev/md0​​ to repair a filesystem on top of a Linux RAID device.

新建日志

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_08

  • 选择 Create 来让 Testdisk 新建一个日志文件( ​​log file​​) ,里边包含了一些技术信息和消息, 除非你要往一个日志里追加信息 ​​log​​ 或者 你从只读存储器里执行 TestDisk 而且必须在别的地方建立日志 ​​log​​。
  • 选择 None 如果你不想让过程中的细节和消息记录到日志文件里 ​​log file​​ (比如当 Testdisk 是在只读位置执行的时候,这很有用).
  • 按 Enter 键以继续.

选择磁盘

所有的硬盘都应该能被TestDisk检测到并且辅以正确的大小列出来:

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_09

  • 用 上/下 键 来选择丢失分区的硬盘。
  • 按 Enter 键继续。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_搜索_04 If available, use raw device ​​/dev/rdisk*​​ instead of ​​/dev/disk*​​ for faster data transfer.

选择分区表类型

TestDisk 会显示分区表类型。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_高亮_11

  • 选择正确的分区表类型 - 在 TestDisk 自动检测分区表类型之后,一般预设的那个值是正确的。
  • 按 Enter 键继续。

当前的分区表状态

TestDisk 显示这个菜单的时候 (参见 ​​TestDisk Menu Items​​).

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_文件系统_12

  • 用预设的“analyze”(分析)选项来检查当前的分区结构并搜索丢失的分区。
  • 分析过程中按 Enter 键继续。

然后,当前的结构就会被列出来。 接下来就可以在当前的分区结构中检查丢失或错误的分区了。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_13

第一个分区显示了两次,它指向了一个毁坏的分区或一个无效的分区表入口。

无效的 NTFS boot 指向了一个错误的 NTFS boot 扇区, 所以这是一个损坏的文件系统。

在扩展分区中,只有一个逻辑分区(分区标签为2)可用。 有一个逻辑分区不见了。

  • 选 Quick Search (快速搜索)来继续。

快速搜索分区

TestDisk displays the first results in real time.


TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_14


(click on thumb to display the image).

在 Quick Search(快速搜索)的过程中, TestDisk 找到了两个分区,包括那个不见的逻辑分区(标签为​Partition 3​ )。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_15

  • 高亮这个分区并按 p 来列出文件 (若要返回前一页,请按 q ).

这里所有的目录和文件都正确列出来了。

  • 按 Enter 键继续。

保存分区表 还是要 寻找更多分区?

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_高亮_16

  • 当全部分区都可用的时候 并且数据已正确列出,应该选 Write 菜单项保存分区结构. 菜单项 ​​Extd Part​​ gives you the opportunity to decide if the extended partition will use all available disk space or only the required (minimal) space.
  • 当一个分区,第一个,仍然找不到, 高亮菜单项 深度搜索 (没有自动进行的时候) ,按 Enter 键继续.

有一个分区仍然找不到: 深度搜索

Deeper Search 深度搜索也会找寻 FAT32的备份boot扇区 以及 NTFS backup boot superblock, ext2/ext3 backup superblock 来查找更多的分区,

它将会扫描每一个柱面。


TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_14


(click on thumb).

深度搜索之后,结果会像下面这样显示出来:

第一个分区 "Partition 1" 被用 backup boot扇区 找到了。 屏幕上的最后一栏写着, "NTFS found using backup sector!" 还有分区尺寸。 分区2 "partition 2" 被显示了两次,而且大小不同。

显示为 D(eleted) 的分区将不会被恢复 如果您让它们这样显示出来。 两个状态为 D 的分区将会被删除,因为他们互相重叠了。您应该进行识别,以决定到底恢复哪一个分区。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_文件系统_18

  • 高亮第一个 ​​Partition 2​​ 然后按 p 来列出其包含的数据。

The file system of the upper logical partition (label Partition 2) is damaged


TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_文件系统_19


(click on thumb).

  • 按 q 来返回前一页。
  • 让这个文件系统损坏的分区 ​​Partition 2​​ 标记上 ​​D(deleted)​​.
  • 高亮下边的第二个分区 ​​Partition 2​
  • 按 p 来显示内容。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_20

它起作用了,您的文件均被列出,您找到了正确的分区!

  • Use the left/right arrow to navigate into your folders and watch your files for more verification

Note: FAT directory listing is limited to 10 clusters - 一些文件可能没有出现 但这并不影响恢复。

  • Press q for Quit to go back to the previous display.
  • The available status are Primary, * bootable, Logical and Deleted.

Using the left/right arrow keys, change the status of the selected partition from ​​D(eleted)​​ to ​L(ogical)​. This way you will be able to recover this partition.

​set partition to recover​

Hint: read ​How to recognize primary and logical partitions?

Note: If a partition is listed *(bootable) but if you don't boot from this partition, you can change it to Primary partition.

  • 按 Enter 键继续。

恢复分区表

现在已经可以写入新的分区结构了。

注意: 扩展分区是自动设置的。 TestDisk 是用不同的分区结构来辨认它们的。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_分区表_21

  • 如果 所有分区都被列出 ,当且仅当在这种情况下, 在 Write 处按 Enter 键, y 键和 OK.

至此, 这些分区就注册在了分区表里。

NTFS Boot扇区恢复

第一个分区的boot扇区(​​Partition 1​​)还是处于损坏状态。是时候该修复它了。 NTFS boot扇区的状态很糟糕,然而备份的boot扇区正常可用。 两个Boot扇区并不是完全一样的。

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_搜索_22

  • 选择Backup BS来拷贝备份的扇区覆盖到目标位置,按Enter确认, use ​​y​​ to confirm and next OK.

更多有关于​​在TestDisk菜单下​​修复Boot扇区的信息 . 如下的信息会被显示:

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_文件系统_23

现在boot扇区和它的备份扇区都状态良好并且保持一致:NTFS boot扇区已经成功地恢复了!

  • 按 Enter 退出.

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean_深度搜索_24

  • TestDisk 显示 You have to restart your Computer to access your data(您需要重新启动您的计算机以使修改生效),所以按 ​​Enter​​ 最后一次然后重新启动计算机吧。

恢复删除的文件

TestDisk 可以恢复

如果这不管用,或者对于其他文件系统,请尝试 ​​PhotoRec​​,一个基于模式匹配的文件恢复工具。

返回 ​​TestDisk ​​主页