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

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

我意外地格式化了我的一个驱动器,我希望能够恢复文件系统的主要部分,因为我“仅”进行了快速格式化。

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

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

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

分区选择屏幕

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

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

分析驱动器(选择 None 类型后)会发现分区为空(除了一个空的 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

问题

  1. 当选择快速格式化时,Ubuntu 具体对驱动器做了什么?我们能否由此推断是否有可能恢复文件系统?

  2. 我可以使用超级块恢复结构的部分内容吗?我读到过在位置 1024 处写入了备份超级块。该超级块可以恢复吗?还是也已通过快速格式化将其清除?

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

答案1

我成功地使用备份 Superblock 恢复了所有文件!在 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

相关内容