返回资讯中心
外部精选
软件工程
#开发者实时流

Reflota:开源 NTFS/FAT 磁盘数据恢复工具,支持分阶段复制

来源标题:Show HN: Reflota – Open-source data recovery for NTFS/FAT disks with phased copy

Reflota 是一款开源免费的 NTFS/FAT 磁盘数据恢复工具,可恢复硬盘、U 盘和存储卡中被删除的文件,并以只读模式运行。它通过直接读取 NTFS 的 MFT 或 FAT/exFAT 的簇链重建目录树,还能按内容搜索文件、查找丢失分区,并对故障磁盘做安全复制。目前处于 beta 阶段,FAT16/FAT12、RAW 搜索和分阶段复制等功能仅在测试镜像上验证过,尚未在真实硬件上测试。

Hacker News 最新christ_dev2026/11/13 · 今天21 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

从磁盘、U盘和存储卡(NTFS、FAT32、FAT16、FAT12 和 exFAT)恢复文件,包括已删除的文件。免费、开源、只读模式。

当 Windows 提示「磁盘未格式化」、某个文件夹打不开或资源管理器卡死时,文件往往还在那里。Reflota 通过直接读取磁盘来重建它们:在 NTFS 下读取整个主文件表(MFT),并利用每个文件记录的自身所属文件夹信息构建文件夹树;在 FAT 和 exFAT 下读取文件夹并跟随簇链。

它还能找到已删除的文件,并告诉你其中有多少仍可恢复。如果磁盘被格式化过或已没有文件名,它可以按内容搜索文件、查找丢失的分区,并对正在故障的磁盘做安全镜像。

状态:beta。能用,但每块坏盘的情况都不一样。如果可以,先用重要数据的副本测试一下。

尚未在真实磁盘上验证的新功能(仅用测试镜像验证过,未在硬件上测试):FAT16/FAT12、相机 RAW/PSD/RAR 搜索、碎片化 JPEG 重建、按名称搜索和分阶段复制。如果你在真实磁盘上测试了其中某项,请在 Issues 中告诉我们结果如何。

从 Releases 区下载 Reflota.exe。无需安装,也不需要 Python。

由于程序没有数字签名,Windows 可能会显示「Windows 已保护你的电脑」:点击「更多信息」→「仍要运行」。部分杀毒软件对直接读取磁盘的程序不放心;代码是开源的,你可以自己编译 .exe(见下文)。每个 Release 旁边都会发布 SHA256 哈希值,用于验证下载未被损坏。

打开 Reflota。会出现你的磁盘和驱动器列表。

在同一棵树中勾选你要恢复的内容: 勾选一块磁盘或一个分区 → 复制全部内容。 进入分区后只勾选文件夹或文件 → 只复制这些内容。 总大小会在你勾选时自动计算。 启用「包含已删除文件」还能看到被删除的内容:它们以红色显示在原文件夹中,并带有状态。

按名称搜索(树的上方):输入文件名的一部分(如 factura)、一个模式(如 *.pdf、foto_??.jpg)然后按 Enter。搜索不区分大小写和重音符号,范围是所选分区(或你已打开的所有分区),包含已删除项,结果会作为树中一个新的分组显示,和其他内容一样勾选即可。先打开分区(点击它的箭头)。

在下方选择要复制到的文件夹(在另一块磁盘上),然后点击「恢复」。

你可以随时停止并重新开始:已经复制过的内容不会重复。

Windows 不允许在没有管理员权限的情况下「裸读」磁盘(任何恢复程序都是如此)。Reflota 启动时不请求权限,只在你点击磁盘准备读取时才请求;此时会在 Windows 提示下重新打开。程序从不会写入源磁盘。

先在列表中选择一块磁盘或一个分区。

按内容搜索文件。它通过文件的内部结构来识别文件,不需要文件名或文件夹。适用于磁盘被格式化、文件表被破坏或已删除文件丢失了名称的情况。你可以只搜索空闲空间(速度快,适合找已删除文件),也可以搜索整块磁盘或分区。结果会出现在同一棵树中,按类型分组,恢复方式与其他内容相同(勾选并「恢复」)。可识别:照片(JPG、PNG、GIF、BMP、WebP、HEIC、TIFF)、相机 RAW 照片(CR2、CR3、NEF、ARW、DNG、ORF、RW2、PEF、RAF)、Photoshop 的 PSD/PSB、视频(MP4/MOV/3GP、AVI、MKV/WebM)、音频(MP3、M4A、WAV)、文档(PDF、DOCX、XLSX、PPTX、ODT/ODS/ODP、DOC/XLS/PPT、EPUB)、压缩包(ZIP、RAR、7Z、JAR、APK)和 SQLite 数据库。每个文件的准确长度通过读取其结构计算得出(不是「凭感觉」截断),包含其他文件内部数据的文件(例如照片中的缩略图)会完整输出。原始文件名无法恢复:输出时会编号命名(recuperado_00012.jpg)。碎片化的文件(被拆成不连续片段)通常无法重组,可能输出不完整或混杂的内容;但如果你勾选「重建碎片化 JPEG 照片」,JPEG 照片例外:Reflota 会解码照片直到其失效的位置,并寻找延续它的片段;只有在结果完全吻合(所有图像块和文件结尾都齐全)时才会输出。这个过程慢得多,仅适用于「基线」JPEG(相机和手机拍摄的那种,不是渐进式 JPEG),并且在片段很多或空隙中充满相似照片时可能无法成功:这种情况下该照片就不会出现(程序不会故意输出错误的照片,但建议你检查一下结果)。

查找丢失的分区。它会扫描整块磁盘,寻找 NTFS、FAT32、FAT16/12 和 exFAT 分区的起始位置,即使分区表已被删除、甚至引导扇区被破坏也能找到(使用其备份副本)。找到的分区会添加到列表中。在大磁盘上可能耗时较长,可以中途停止。

创建磁盘镜像(安全副本)。当磁盘出现故障时,最好的做法是只复制一次到文件,然后在这份副本上操作,不再反复读取原盘。复制按阶段进行,就像专业救援工具那样:先快速读取所有能正常读取的部分(跳过故障区域以免反复尝试),然后收缩损坏区域的边界,接着逐扇区读取,最后重试无法读取的扇区。这样能以对磁盘最小的损耗抢救出最多的数据。始终无法读取的扇区会置零,并记录在 *.malos.txt 中。进度保存在 *.mapa 中:如果中断(或断电),可以从那里精确继续。之后把镜像添加到列表,从那里恢复。

停止使用损坏的磁盘。每一次新的写入都可能覆盖你想恢复的内容。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →