下一页 上一页 目录

1. 简介

本迷你指南旨在提供关于如何从 ext2 文件系统中恢复已删除文件的提示。它还包含少量关于如何首先避免删除文件的讨论。

我希望它对那些刚刚在使用 rm 命令时发生“小事故”的人们有所帮助;然而,我也希望人们无论如何都阅读它。你永远不知道:也许有一天,这里的一些信息可以救你一命。

本文假设读者对 UNIX 文件系统有一定的背景知识;但是,我希望大多数 Linux 用户都能理解它。如果您是完全的初学者,恐怕在 Linux 下恢复已删除的文件确实需要一定的技术知识和毅力,至少目前是这样。

如果您没有至少读取存储文件的原始设备的权限,您将无法从 ext2 文件系统中恢复已删除的文件。一般来说,这意味着您必须是 root 用户,但某些发行版(例如 Debian GNU/Linux)提供了一个 disk 组,该组的成员可以访问此类设备。您还需要来自 e2fsprogs 软件包的 debugfs。您的发行版应该已经安装了它。

我为什么要写这个?这很大程度上源于我自己在使用 root 权限执行特别愚蠢和灾难性的 rm -r 命令的经历。我删除了大约 97 个我需要的 JPEG 文件,而且几乎肯定无法从其他来源恢复。使用一些有用的技巧(参见 致谢和参考书目 部分)和大量的毅力,我恢复了 91 个未损坏的文件。我设法恢复了其余五个文件中的至少一部分(足以了解每张图片的内容)。只有一个无法显示,即使对于这一个,我也相当肯定丢失的字节不超过 1024 个(尽管不幸的是从文件开头丢失;考虑到我对 JFIF 文件格式一无所知,我已经尽力了)。

我将在下面进一步讨论您可以预期已删除文件的恢复率。

1.1 修订历史

本文档的各种公开发布版本(及其发布日期)如下:

版本 1.1 的更改

此版本中进行了哪些更改?首先,文件恢复示例中的笔误已修复。感谢所有写信指出我错误的人;我希望我已经学会了在编写程序交互时更加小心。

其次,UNIX 文件系统布局的讨论已重写,我希望它更易于理解。我一开始对它并不完全满意,一些人的评论表明它不清楚。

第三,文件中间的 fsgrab 的巨大 uuencoded gzipped tarball 已被删除。该程序现在可以在 我的网站Metalab(及其镜像站点)上找到。

第四,本文档已翻译成 Linux 文档项目 SGML 工具内容标记语言。这种标记语言可以轻松转换为多种其他标记语言(包括 HTML 和 LaTeX),以便于显示和打印。这样做的好处之一是,纸质版中精美的排版更容易实现;另一个好处是,在 Web 上查看文档时,它具有交叉引用和超链接。

版本 1.2 的更改

此修订版在很大程度上是一个增量更改。它主要用于包含读者建议的更改,其中一项尤为重要。

第一个更改是由 Egil Kvaleberg egil@kvaleberg.no 提出的,他指出了 debugfs 中的 dump 命令。再次感谢 Egil。

第二个更改是提及使用 chattr 来避免删除重要文件。感谢 Herman Suijs H.P.M.Suijs@kub.nl 提及这一点。

摘要已修订。已为组织和软件添加了 URL。还进行了各种其他小的更改(包括修复错别字等等)。

版本 1.3 的更改

虽然这是 17 个月以来的首次发布,但这里几乎没有什么新内容。此版本仅修复了一些小错误(错别字、悬空 URL 等等——尤其是指向 Open Group 的非链接),并更新了文本中一些已经完全过时的部分,例如关于内核版本和 lde 的材料。哦,我还在全文中将“Sunsite”更改为“Metalab”。

此版本预计是 2.0 版本之前的最后一个版本,2.0 版本有望成为完整的 Howto。我一直在进行一些实质性的更改,这些更改将证明主要版本号的增加是合理的。

1.2 本文档的规范位置

本文档的最新公开发布版本应始终在 Linux 文档项目站点(及其镜像站点)上提供。

最新版本也以多种格式保存在 我的网站


下一页 上一页 目录