文件误删、磁盘格式化都不怕:免费开源数据恢复工具PhotoRec 4步抢救指南
【免费下载链接】testdiskTestDisk & PhotoRec项目地址: https://gitcode.com/gh_mirrors/te/testdisk
上周帮朋友收拾U盘,一个手滑把整盘数据全给格式化了——里面是他攒了大半年的设计稿,当时两个人对着空荡荡的盘符沉默了五分钟。相信不少人都经历过这种心跳骤停的瞬间:误删文件怎么找回?格式化之后数据还能不能回来?这里直接说结论:可以,而且不用花一分钱。今天要讲的 PhotoRec,是一款完全免费开源的数据恢复工具,专门负责把那些"看似已经消失"的文件,从硬盘、U盘、存储卡里一个一个捞回来。
先按住冲动:误删文件后最该做的三件事
发现文件没了的那一刻,人的第一反应往往是到处乱翻、重启电脑、甚至急着装个"数据恢复大师"。这些动作越猛,文件越危险。请先做这三件事:
- 立刻停止往这块盘里写入任何东西。新文件、系统缓存、软件安装,都会像在沙滩上盖房子一样,把旧数据的痕迹越埋越深。
- 把盘拔下来,换一台电脑操作。哪怕只是开着系统,后台也在不断写日志。
- 评估盘还能不能正常识别。如果系统能认出来,只是文件不见了,那是最好的情况;如果盘一插上就咔咔响,优先考虑做镜像(后面会讲)。
记住一个朴素原理:删除和格式化,大多时候只是"撕掉了目录标签",数据本身还躺在磁盘里。只要没被新内容覆盖,就还有救。
别人救不回来的,它凭什么救回来
市面上很多恢复软件靠的是"翻户口本"——也就是读取文件系统里的目录记录。一旦分区表损坏、文件系统信息丢失,户口本被烧了,它们就彻底抓瞎。
PhotoRec 走的是另一条路:它不管户口本,直接拿着"长相特征"在磁盘上挨个认人。每个文件格式都有独一无二的开头字节(专业说法叫"文件签名"),比如 JPEG 图片通常以FF D8 FF开头,PDF 以%PDF开头。PhotoRec 会把磁盘从头到尾扫一遍,遇到和签名对得上的数据段,就按特征把文件"抠"出来。所以哪怕分区表完全报废、文件系统整个重建,它依然能工作。
这套"看脸认人"的档案库里,目前收录了480 多种文件扩展名、覆盖约 300 个文件家族——照片、视频、文档、压缩包、相机 RAW 原片都在其中。更难得的是它由纯 C 语言写成,在 Windows、Linux、macOS 上都能跑,整个项目开源透明,你完全可以去翻它的源码(比如src/filegen.c就是那本"认人档案"),确认它没有夹带私货。
免费开源数据恢复工具答疑时间
Q:免费的东西,靠谱吗?A:PhotoRec 出自老牌开源项目 TestDisk 团队,这个项目从 1998 年维护至今,在数据恢复圈子里是出了名的"老兵"。它和商业软件比,缺的只是华丽界面,不缺的是扎实的底层能力。
Q:会不会把硬盘搞坏?A:PhotoRec 默认是只读扫描,只往你指定的输出目录写恢复结果。真正要小心的不是它,而是你自己的操作(见后面的避坑清单)。
Q:命令行界面我完全不会用怎么办?A:别怕,它那个终端界面就是几个方向键的事。如果你装了 Qt 5 环境,编译后还能得到带图形界面的 qphotorec,点鼠标也能操作。
PhotoRec使用教程:4步完整流程
下面以 Linux 为例走一遍完整流程,Windows 用户可以看项目里的win/readme.txt,macOS 用户参考darwin/目录下的说明,思路完全一致。
第 1 步:在安全设备上把工具弄到手
git clone https://gitcode.com/gh_mirrors/te/testdisk cd testdisk ./compile.sh编译需要基础的编译工具链,Debian/Ubuntu 系可以先装依赖再执行。也可以直接使用系统包管理器里的现成版本,效果相同。
第 2 步:启动并选中出事的盘
sudo photorec(读取原始磁盘需要 root 权限。)启动后用上下方向键在设备列表里选中你的硬盘或 U 盘,回车确认。接着会问你分区表类型,不确定就选默认(Intel)。
第 3 步:划定范围、筛选文件类型
- 在分区列表里,选
[Whole]表示全盘扫描,知道文件在哪个分区就只选那个分区,能省下大把时间; - 进入文件类型页后,按
s键可取消全选,再用空格键只勾选你真正需要的类型(比如只选 jpg、png、raw),这是提速的关键操作。
第 4 步:指定输出目录,按C开扫
输出目录千万不能选在正在扫描的那块盘上。扫描过程中屏幕会实时刷新进度和已找到文件数。跑完之后,结果会按顺序放进recup_dir.1、recup_dir.2……这样的文件夹里,打开就能看到一批批被捞回来的文件,文件名是自动编号的。
格式化后数据恢复最容易踩的5个坑
这些坑我基本都替你踩过,写出来帮你绕开:
⚠️坑 1:直接把恢复文件保存回原盘。扫描还在进行,新写入的内容已经在覆盖旧数据了。正确做法是接到另一块物理设备上,或者先给原盘做镜像再操作:
sudo dd if=/dev/sdb of=/home/you/disk_backup.img bs=4M status=progress之后让 PhotoRec 直接扫描这个镜像文件,原始盘可以彻底断电休息。
⚠️坑 2:全选 480 多种格式硬扫。全盘 + 全类型,大硬盘可能要跑上好几个小时甚至几天。知道自己丢的是照片,就只勾照片类型,扫描时间能砍掉一大半。
⚠️坑 3:格式化之后又往里拷了新东西才来恢复。每多写一个文件,就多一分覆盖风险。发现丢数据的瞬间就要停手,这是成功率最高的时候。
⚠️坑 4:恢复完立刻双击打开。被捞回来的文件可能缺了尾巴或头尾不全(专业叫"碎片化")。先原样备份一份,再用专门的修复工具处理,别在原件上折腾。
⚠️坑 5:只救文件,不管分区。如果问题是"整个分区不见了",那 PhotoRec 的搭档 TestDisk 才是主角——它能重建分区表和引导扇区,两兄弟配合,一个修"目录",一个捞"文件",才是完整方案。
找回之后:整理、归档、别再丢
恢复出来的文件命名很朴素(比如f1234567.jpg),一堆文件混在一起难免头大。可以写个几行的小脚本,按扩展名自动归类:
mkdir -p recovered/{pics,videos,docs,others} find recovered -maxdepth 1 -type f | while read f; do case "$f" in *.jpg|*.png|*.gif) mv "$f" recovered/pics/ ;; *.mp4|*.avi) mv "$f" recovered/videos/ ;; *.pdf|*.doc*) mv "$f" recovered/docs/ ;; *) mv "$f" recovered/others/ ;; esac done善后比抢救更重要。养成双备份习惯(一块本地盘 + 一块异地/云端),顺手学学用 SMART 工具盯一下硬盘健康度,很多悲剧原本可以根本不发生。
现在轮到你了:5分钟行动清单
- ✅ 立刻给出事的盘断电,别让它再写任何数据;
- ✅ 在另一台电脑上把 PhotoRec 准备好(编译或装现成版本);
- ✅ 按上面 4 步走一遍,文件类型精准勾选,输出目录放到别的盘;
- ✅ 如果分区也不见了,别慌,先试 TestDisk 修分区,再让 PhotoRec 捞文件。
数据恢复这件事,时间就是成功率。你每犹豫一分钟,磁盘后台可能就在偷偷覆盖一层数据。PhotoRec 这种免费开源数据恢复工具,不会嫌你硬盘老、不会嫌你文件碎,只要你停手够快,它大概率能帮你把那些"以为永远失去"的东西,重新带回桌面。就像我那位朋友——扫描跑了四个小时,三十多份设计稿,最后找回了二十八份。剩下的,就当是给"以后记得备份"交的学费吧。
【免费下载链接】testdiskTestDisk & PhotoRec项目地址: https://gitcode.com/gh_mirrors/te/testdisk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考