news 2026/8/27 3:45:11

TestDisk 数据恢复指南:误删文件、分区丢失如何免费找回

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TestDisk 数据恢复指南:误删文件、分区丢失如何免费找回

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 步走完,一次把分区修复和文件恢复都跑通。

  1. 确认设备名。执行lsblk,找到目标盘并记好名字(如/dev/sdb)。选错盘是头号事故源,这一步多看一眼。
  2. 安装。执行:
sudo apt-get install testdisk

装完testdiskphotorec两个命令都在了。想要最新功能就从源码编译:

git clone https://gitcode.com/gh_mirrors/te/testdisk

进目录后依次执行./autogen.sh./configuremakesudo make install。看到安装输出无报错即算对。

  1. 修复分区。执行sudo testdisk /dev/sdb。界面里先选 [Create] 生成日志,分区表类型绝大多数选 Intel(新系统、苹果盘选 GPT),再按 [Analyse]。看到分区图列出磁盘结构即算对。
  2. 搜索并写回。按 [Quick Search] 快速搜索。看到丢失分区被列出、大小与位置合理,就按 [Write] 把新分区表写回磁盘,重启后用lsblk验证分区回来了。
  3. 恢复文件。分区修好但数据不全时,执行sudo photorec /d /data/recovery /dev/sdb1:选分区,文件系统类型不确定就选 Other,选保存位置,按 Search 开始。进度条滚动、目标目录出现 recup_dir.d 等子目录,就是正常;中途可 Ctrl+C 停止。

交互界面直观,但要写脚本或报问题,还有几个参数值得背下来。

参数速查

常记的参数就下面这些,全部放在命令后面即可。

参数适用对象一句话作用
/log两个都有生成日志文件,报问题前必开
/logname 文件名两个都有指定日志文件名
/debug两个都有输出调试信息,给维护者报 bug 时附上
/d 目录PhotoRec指定恢复文件保存目录,必须在另一块物理磁盘
/all两个都有跳过交互、按默认值自动执行,适合脚本
/listTestDisk列出系统识别到的所有磁盘
/cmd两个都有进入命令行模式

参数解决的是"怎么跑",但解决不了物理问题——有些边界谁都越不过去。

做不到的边界

有三类情况超出任何工具的能力,先识别,少走弯路。

  • 已被覆盖:删除后磁盘持续被写(装软件、写日志),扇区易主。识别方法:恢复出的文件能打开但内容错乱、或尺寸明显偏小。
  • SSD 的 TRIM:删除后主控会主动清零物理块,机械盘能雕出来的内容,SSD 上经常是空的。识别方法:介质是 SSD 且删除已过去较久,就该预期收不到什么。
  • 碎片化:大文件分散在盘面各处,签名切割容易把文件截断,内容残缺。识别方法:有备份可对照时,恢复件只有原文件一半大小。

这三类的唯一正解是备份——工具是兜底,不是替代品。如果你不满足于"会用",想让它支持新东西,源码入口很清晰。

源码地图 🔧

想加一种新文件类型,从 filegen.c 开始看。

  • src/testdisk.csrc/phmain.c:两个程序的入口,参数解析与启动逻辑都在这两个文件里。
  • src/filegen.c:统一的文件识别引擎,每种文件签名一个src/file_*.c——file_jpg.c 管图片、file_pdf.c 管 PDF,共四百多个文件类型。
  • src/partgpt.csrc/parti386.csrc/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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 3:44:33

从ReAct到Multi-Agent:构建高效协作的AI智能体系统架构与实践

1. 从单兵作战到团队协作:AI Agent的范式转移如果你最近关注AI应用开发,会发现一个明显的趋势:大家不再满足于让一个大语言模型(LLM)去“单打独斗”地完成复杂任务了。早期的AI Agent,比如经典的ReAct范式&…

作者头像 李华
网站建设 2026/8/27 3:44:31

std::bind 实战指南:C++11 回调机制与线程安全设计

1. 为什么今天还要认真学 std::bind?——它不是“过时的语法糖”,而是理解 C 回调机制的钥匙你可能在刷 C 面试题时见过这道题:“std::bind 和 lambda 表达式有什么区别?”答案常被简化为“lambda 更简洁,bind 已淘汰”…

作者头像 李华
网站建设 2026/8/27 3:44:31

Agentic RAG规划缓存:从任务规划到执行复用的性能跃迁

1. 项目概述:从传统RAG到Agentic RAG的范式跃迁最近在优化一个企业级知识库问答系统时,我遇到了一个典型的性能瓶颈:用户每次提问,系统都要完整地走一遍“检索-增强-生成”的流程。对于一些高频、复杂但模式固定的查询&#xff0c…

作者头像 李华
网站建设 2026/8/27 3:43:22

复盘怎样转成工程规则

复盘怎样转成工程规则 复盘结论要转化为可验证的改动;流程建议需结合团队的发布和评审机制落地。 分类: [Engineering Technology]分类: [工程技术] 很多团队在遇到生产环境事故后,都会开会撰写“事故复盘报告”。但大多数复盘报告写完后就被躺平丢进 W…

作者头像 李华
网站建设 2026/8/27 3:42:38

人形机器人为何难进工厂?工业机器人标准化与验证逻辑解析

机器人出货量近两年保持明显增长,新能源汽车产线、3C 电子装配、一般工业自动化改造都在持续买入机器人,行业新闻里“机器人时代已经到来”的说法并不夸张。但真正走到制造现场会发现另一种现实:采购经理、工艺工程师和自动化集成商规划新线时…

作者头像 李华
网站建设 2026/8/27 3:42:26

云端部署Qwen3.6-Plus:基于PAI-DSW与vLLM的高效推理实践

1. 项目概述:为什么选择PAI-DSW来跑通Qwen3.6-Plus?最近在折腾大模型本地部署的朋友,估计都绕不开一个名字:Qwen。通义千问团队开源的Qwen系列模型,从1.5到2.5,再到最近的3.6,性能提升肉眼可见&…

作者头像 李华