快速格式化后恢复ext4文件系统

Max*_*Max 5 filesystem format hard-drive data-recovery

我不小心格式化了我的一个驱动器,我希望我可以恢复文件系统的主要部分,因为我“只”进行了快速格式化。

在安装了第二个相同的硬盘驱动器后,我通过 Ubuntu (14.04) 的磁盘应用程序意外地快速格式化了错误的驱动器。驱动器之前是 ext4 格式,我再次快速格式化为 ext4。驱动器上只有一个分区。在损坏完成几秒钟后,我卸载了驱动器以避免意外写入。

我所追求的文件是二进制格式(据我所知没有扩展名,例如.npy .t7 .mat),有些是.txt文件。

通过阅读论坛和博客,我了解到 Testdisk+Photorec 可能有助于恢复丢失的分区。我给了 Photorec 一个快速的尝试,但由于大多数重要文件都是二进制文件并且没有文件签名,我最终得到了数以千计的无用.txt文件和不可读.mat文件。另一方面,据我所知,Testdisk 显示不确定的提示。我还没有尝试执行深度扫描,因为我希望信息位于驱动器的最开始处(驱动器为 8TB)。有关详细信息,请参阅以下 Testdisk 快照:

分区选择画面

选择无作为分区类型后的高级菜单

  • 选择 EFI-GPT 或 Intel 作为分区类型会导致 Testdisk 告诉我没有可用的分区。

对驱动器的分析(选择 None-type 后)导致分区为空(除了一个空的 lost+found)。相比之下,在选择 GPT 类型后分析驱动器会产生许多此类相同的条目:ext4 0 0 1 972801 80 63 156280533168

超级块:

superblock 0, blocksize=4096
superblock 32768, blocksize=4096
superblock 98304, blocksize=4096
superblock 163840, blocksize=4096
superblock 229376, blocksize=4096
superblock 294912, blocksize=4096
superblock 819200, blocksize=4096
superblock 884736, blocksize=4096
superblock 1605632, blocksize=4096
superblock 2654208, blocksize=4096
Run Code Online (Sandbox Code Playgroud)

问题

  1. 选择快速格式化时,Ubuntu 对驱动器有什么特别的作用?我们可以从中推断出是否(不可能)完全恢复文件系统?

  2. 我可以使用 Superblocks 恢复部分结构吗?我在某处读到备份超级块写入位置 1024。这是可恢复的还是通过快速格式化清除的?

  3. 除了像 Photorec 或 Scalpel 这样的文件恢复之外,还有哪些选项可供我恢复我的文件系统?我知道我想要恢复的一些最重要文件的完整路径。

Max*_*Max 3

我成功地使用备份超级块恢复了所有文件!在 TestDisk 无法帮助我之后,我尝试了相关问题中的方法。为了清楚起见,这里是我恢复文件结构所采取的步骤:

  1. 确保您的驱动器已卸载。
  2. 通过以下方式查找您的备份超级块

    dumpe2fs /dev/<drive-id> | grep -i superblock

    例如dumpe2fs /dev/sdb | grep -i superblock

  3. 根据超级块之一检查文件系统,但尚未应用任何更改,以查看该特定超级块在结构上是否完整。

    fsck.ext4 -v -n -C 0 -b <Superblock> /dev/<drive-id>

    例如fsck.ext4 -v -n -C 0 -b 2654208 /dev/sdb

    -v使命令变得详细以显示更多详细信息,-n通过始终对每个提示回答“否”来确保不会尝试修复文件系统,-C 0显示进度条并-b定义上一步给出的超级块的起始位置。

  4. 如果找到合适的超级块,请通过将替换为 自动接受所有修复来fsck.ext4修复您的文件系统。-n-y

    fsck.ext4 -v -y -C 0 -b <Superblock> /dev/<drive-id>

  5. 重新启动并安装驱动器。

就我而言,无法恢复第一级目录名称。因此,可以根据隐藏目录inode中的名称找到它们。lost+found