意外格式化了 ext4 分区

意外格式化了 ext4 分区

我刚刚使用 gparted 将 ext4 分区格式化为 fat32。

我应该朝哪个方向努力来恢复?

答案1

我犯了一个愚蠢的错误,不小心格式化了一个分区。我当时正在上网本上安装一个名为 crunchbang 的 Linux 发行版,这样我就不必每周都带着笔记本电脑去上课了。我打算为此格式化一个 USB 闪存驱动器,但令我沮丧的是,我将一个包含超过 500GB 数据的 ext4 分区格式化为 fat32。以下是我所学到的知识的总结:

如果文件系统损坏,您可以尝试恢复文件系统本身或单个文件。无论文件系统的状态如何,都可以恢复单个文件,但如果要处理大量数据,这种方法的缺点是几乎完全无用。当您恢复单个文件时,您将丢失数据的整个目录结构(即组织和文件名)。就我而言,这完全没用,因为我需要花数年时间才能筛选并重命名所有这些音乐文件和其他垃圾文件。此外,在许多情况下,程序无法找到文件的特定开始和结束块(纯文本文件几乎总是这种情况),您最终可能会(像我一样)将每个 mp3 文件分成一百个 1-5 秒的片段。

在尝试任何操作之前,请先通读本文...(您会在底部找到制作磁盘映像的说明,但应先完成此操作)

如果您的情况不同(例如恢复少量数据或寻找特定的可搜索数据),那么单个文件恢复可能是一个不错的选择。我找到的免费实用程序有:

相簿

最前线

(为方便您使用,两者都位于 ubuntu 存储库中)


如果您想要恢复整个分区,那么您应该考虑使用一款名为 TestDisk 的软件。这款软件也在 ubuntu 存储库中,并且它有一个很好的 curses GUI,可以让操作更加简单。

TestDisk 与所有类型的文件系统兼容,包括 ext2/3/4、ntfs、fat 等......(并且二进制文件在 Windows 和 UNIX 兼容版本中发布)不幸的是,使用该实用程序数小时后,TestDisk 能够找到我的旧分区,但根 inode 已被破坏,因此我放弃使用 TestDisk 并决定尝试手动恢复 ext 备份超级块。


如果你关心的是 Linux ext2/3/4 分区,那么你会发现这些实用程序很有用(它们肯定已经在你的 Linux 机器上了)

这将用于计算在您要在相关分区上创建 ext 文件系统时备份超级块的位置,mke2fs(创建扩展 2 文件系统)用于 ext2/3/4

这将用于尝试使用备份超级块之一 e2fsck(扩展 2 文件系统检查)恢复文件系统,也适用于 ext2/3/4

有关如何使用这些实用程序手动恢复 ext 超级块的说明,请参见此处:修复 Ubuntu 中损坏的 Ext4 超级块

附注:如果你的分区表是完整的(我的情况不是这样),那么你也许可以像这样使用 dumpe2fs: Linux:寻找替代的超级块 - nixCraft

如果您无法使用这些实用程序来找到备份超级块(也许您弄乱了多个分区,因此您不知道它们从哪里开始/结束),您可能会发现一个名为 gpart 的程序(不要与 gparted 或 parted 混淆......它们完全不同)虽然我不确定它是否支持比 ext2 更新的 linux 文件系统。如果您现在正处于这种情况,那么可能是时候开始担心了。


使用最后一种方法,我成功地恢复了整个分区,保存了顶级目录名称(所以我不得不重命名大约 6 个顶级文件夹,但它们下面的所有内容都保留了下来)成功!

对我来说,另一件极其重要的事情是创建混乱磁盘的备份映像(在尝试恢复时,我至少两次恢复了该映像),因此在使用这些实用程序之前,首先要在您的机器或外部驱动器上找到一些可用空间。

如果您弄乱的驱动器是 sda,并且您想将图像存储在您名字的主目录中,例如:dd if=/dev/sda of=/home/yourname/sda.img.bak bs=512

在恢复尝试失败后恢复映像:dd if=/home/yourname/sda.img.bak of=/dev/sda bs=512

如果您只对第一个分区感兴趣,那么您当然可以使用 /dev/sda1,但是由于其中一些实用程序会改变分区表,因此对整个磁盘进行映像可能是更好的主意。

此外,如果你使用 dd 进行大型操作,查看进度条会非常有帮助,你可以使用名为 pv 的实用程序来报告数据通过管道的进度

例如:pv -tpreb /​​dev/sda | dd of=/home/yourname/sda.img.bak bs=512

顺便说一句:有些人建议制作备份映像并直接对其进行操作,但我发现在磁盘本身上操作更容易(更容易安装)并在必要时将映像还原到磁盘

答案2

以下是我们之前遇到的一个相关问题的链接:从 Ntfs 分区恢复非常重要的丢失数据

如果数据确实很重要,请立即停止使用磁盘/分区。卸载它!然后对磁盘进行只读复制。每次尝试在原始磁盘上恢复某些内容时,您都有丢失更多数据的危险。然后尝试在复制的磁盘映像上使用恢复工具。您可以使用 dd if=your_partition of=your_disk_image_file bs=512 创建映像(希望语法正确)也请在此处查看DataRecovery - 社区帮助 Wiki和这里https://forensicswiki.org/wiki/Tools:Data_Recovery

为了确保您不会丢失数据,请仅在您创建的磁盘映像上进行工作!

如果您无法恢复分区,您仍然可以尝试使用 foremost 等雕刻工具来恢复(部分)数据。该工具将分析磁盘内容并查找常见格式的文件。请查看此处的快速示例,了解如何使用它http://www.rissmann.ch/2014/08/09/how-to-recover-lost-files/

相关内容