
TestDisk 数据恢复指南:误删文件、分区丢失如何免费找回【免费下载链接】testdiskTestDisk PhotoRec项目地址: https://gitcode.com/gh_mirrors/te/testdisk电脑突然提示分区未初始化,或者你刚意识到整个文件夹被误删——先别慌,立刻停止对这块盘的一切写入。TestDisk 与 PhotoRec 是一套免费开源的数据恢复工具:前者修复损坏的分区表和引导记录,后者按文件签名直接扫描、找回被删除的文件。原理速览数据能不能救,只看一件事:原来的扇区有没有被覆盖。分区表只是记录每个分区从哪到哪的索引。它丢了,数据本身还在盘上,只是系统找不到了。TestDisk 重新扫盘,把这些边界重新找出来并写回,分区就回来了。文件被删除,往往只是目录条目被抹掉,内容原样躺在盘里。PhotoRec 不看目录,从扇区里逐块找每种文件固定不变的文件头签名(即文件开头的魔数),把内容一片片抠出来——这就是 file carving(文件雕刻),所以它不依赖分区是否完好,但恢复出来的文件名和目录结构需要你自己重理。但覆盖发生在新数据写入之后,或 SSD 的 TRIM 已把物理块清零,那就谁也救不回来了。所以第一条原则:越早停写,成功率越高。懂了原理,就可以对号入座了。按场景对号入座 先下表里找到自己的情况,再动手,别上来就全盘扫描。你的情况工具与命令预期结果误删文件、误格式化、分区消失photorec /d /data/recovery /dev/sdb1文件按类型分到 recup_dir.d 等子目录,文件名重置为 f001.jpg 之类分区表损坏,磁盘显示未初始化testdisk /dev/sdbAnalyse 找到丢失分区,Write 写回分区表,重启可见装双系统后无法启动testdisk /dev/sdb引导扇区/分区结构重建,能进系统硬盘有坏道、读取缓慢先用ddrescue做镜像,再跑上面任一工具所有操作发生在镜像上,原盘不再受伤第一次完整演练按下面 5 步走完,一次把分区修复和文件恢复都跑通。确认设备名。执行lsblk,找到目标盘并记好名字(如/dev/sdb)。选错盘是头号事故源,这一步多看一眼。安装。执行:sudo apt-get install testdisk装完testdisk和photorec两个命令都在了。想要最新功能就从源码编译:git clone https://gitcode.com/gh_mirrors/te/testdisk进目录后依次执行./autogen.sh、./configure、make、sudo make install。看到安装输出无报错即算对。修复分区。执行sudo testdisk /dev/sdb。界面里先选 [Create] 生成日志,分区表类型绝大多数选 Intel(新系统、苹果盘选 GPT),再按 [Analyse]。看到分区图列出磁盘结构即算对。搜索并写回。按 [Quick Search] 快速搜索。看到丢失分区被列出、大小与位置合理,就按 [Write] 把新分区表写回磁盘,重启后用lsblk验证分区回来了。恢复文件。分区修好但数据不全时,执行sudo photorec /d /data/recovery /dev/sdb1:选分区,文件系统类型不确定就选 Other,选保存位置,按 Search 开始。进度条滚动、目标目录出现 recup_dir.d 等子目录,就是正常;中途可 CtrlC 停止。交互界面直观,但要写脚本或报问题,还有几个参数值得背下来。参数速查常记的参数就下面这些,全部放在命令后面即可。参数适用对象一句话作用/log两个都有生成日志文件,报问题前必开/logname 文件名两个都有指定日志文件名/debug两个都有输出调试信息,给维护者报 bug 时附上/d 目录PhotoRec指定恢复文件保存目录,必须在另一块物理磁盘/all两个都有跳过交互、按默认值自动执行,适合脚本/listTestDisk列出系统识别到的所有磁盘/cmd两个都有进入命令行模式参数解决的是怎么跑,但解决不了物理问题——有些边界谁都越不过去。做不到的边界有三类情况超出任何工具的能力,先识别,少走弯路。已被覆盖:删除后磁盘持续被写(装软件、写日志),扇区易主。识别方法:恢复出的文件能打开但内容错乱、或尺寸明显偏小。SSD 的 TRIM:删除后主控会主动清零物理块,机械盘能雕出来的内容,SSD 上经常是空的。识别方法:介质是 SSD 且删除已过去较久,就该预期收不到什么。碎片化:大文件分散在盘面各处,签名切割容易把文件截断,内容残缺。识别方法:有备份可对照时,恢复件只有原文件一半大小。这三类的唯一正解是备份——工具是兜底,不是替代品。如果你不满足于会用,想让它支持新东西,源码入口很清晰。源码地图 想加一种新文件类型,从 filegen.c 开始看。src/testdisk.c、src/phmain.c:两个程序的入口,参数解析与启动逻辑都在这两个文件里。src/filegen.c:统一的文件识别引擎,每种文件签名一个src/file_*.c——file_jpg.c 管图片、file_pdf.c 管 PDF,共四百多个文件类型。src/partgpt.c、src/parti386.c、src/partmac.c:GPT、Intel(MBR)、Apple 三种分区表格式的解析与修复模块。src/diskacc.c:磁盘访问层,所有读写的底层抽象。新增格式的路线:新建src/file_xxx.c,实现文件头与文件尾检查函数,在 filegen.c 中注册,并把文件加进src/Makefile.am的编译列表。开发流程细节看仓库根目录的 README_dev_photorec.txt,构建说明看 INSTALL。工具会一直演进,但下面三句话比任何版本都可靠。防坑三则发现数据丢失,立即停止对该盘的一切写入,能断电就断电。恢复目录永远放在另一块物理磁盘,写盘前用df -h复核一次。每次运行都带上/log保留日志,这是出问题后维护者问的第一件事。【免费下载链接】testdiskTestDisk PhotoRec项目地址: https://gitcode.com/gh_mirrors/te/testdisk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考