testdisk 是一款开源命令行工具,用于修复分区表、恢复误删分区及重建mbr,支持多文件系统;操作前需准确识别磁盘并备份mbr与分区表,再通过快速或深度搜索定位分区,验证后写入并挂载检查。

TestDisk 是一款开源的数据恢复工具,专为修复损坏或丢失的分区表、恢复误删除的分区、重建主引导记录(MBR)而设计。它不依赖文件系统类型,支持 FAT、NTFS、ext2/3/4、HFS+ 等多种格式,在 Linux 下通过命令行运行,适合有一定终端操作经验的用户。
确认设备并备份当前分区表
执行任何恢复操作前,必须准确识别目标磁盘(如 /dev/sdb),避免误操作导致数据进一步丢失。使用 lsblk 或 sudo fdisk -l 查看所有块设备及其分区状态。若原分区表尚有残留信息,建议先用 dd 备份当前 MBR 和分区表:
- 备份前 512 字节(MBR + 分区表):sudo dd if=/dev/sdb of=sdb-mbr-backup.img bs=512 count=1
- 备份整个分区表结构(可选):sudo sfdisk -d /dev/sdb > sdb-partition-table.backup
运行 TestDisk 并选择分析模式
安装后运行 sudo testdisk,按提示操作:
- 选择 Create 新日志(推荐)
- 用方向键选中目标磁盘(如 /dev/sdb),按 Enter
- 选择分区表类型:多数 PC 硬盘选 Intel(即 MSDOS 分区表),GPT 磁盘选 EFI GPT
- 进入主菜单后,选 Analyze —— TestDisk 会先快速扫描现有分区,再提供 Quick Search(快速搜索)和 Deeper Search(深度搜索)两种方式
若快速搜索未找到原分区,立即尝试深度搜索;它会逐扇区扫描可能的分区起始位置,耗时较长但成功率更高。
验证并写入恢复后的分区表
搜索完成后,TestDisk 列出所有识别到的分区(标有 * 表示活动/主分区,D 表示已删除)。用方向键高亮你确认正确的分区条目,按 P 可预览其中文件(仅限支持的文件系统),验证数据完整性。
- 确认无误后,按 Enter 返回上一级,选 Write
- 输入 Y 确认写入新分区表到磁盘
- 写入成功后选 Quit 退出,重启系统或运行 sudo partprobe /dev/sdb 通知内核重读分区表
挂载并检查恢复结果
写入分区表后,使用 lsblk 或 sudo fdisk -l /dev/sdb 查看分区是否已列出(如 /dev/sdb1)。若显示正常,尝试挂载:
- sudo mkdir -p /mnt/recovered
- sudo mount /dev/sdb1 /mnt/recovered
- 检查目录内容:ls -l /mnt/recovered
若挂载失败(如 “wrong fs type”),可能是文件系统损坏,需配合 e2fsck(ext)、ntfsfix(NTFS)等工具进一步修复,而非 TestDisk 职责范围。











