部分覆盖/dev/sda,我可以恢复任何内容吗?

部分覆盖/dev/sda,我可以恢复任何内容吗?

我正在摆弄我的新硬盘,它只包含一些个人文件,为了检查其写入速度,我输入:sudo dd if=/dev/zero of=/dev/sda/dev/sda/这是连接到我的 Raspberry Pi 的新 2 TB 硬盘。

希望我取消了该命令,并且只写入了 11 MB。现在磁盘内容无法显示,现在parted告诉我分区树是这样的:

|--- unallocated 8.00 MB
|--- unknown 1.82 TB
|--- unallocated 9.08 MB

之前,是这样的:

|--- ext4 1.82 TB

我不知道是否dd覆盖了磁盘的前 11 MB,这意味着分区表已被完全覆盖,或者硬盘驱动器的随机位已被覆盖。

现在硬盘驱动器已连接到我的 Xubuntu 14.04 笔记本电脑,作为/dev/sdb.我已经尝试过gpart仍在运行,但也testdisk没有成功。

知道整个磁盘ext4和扇区大小为 4096,是否可以在不重新格式化的情况下恢复分区表,并使我能够再次访问我的文件(即使有些文件已损坏/删除)?或者我唯一的解决方案是使用文件恢复工具,这会很烦人,因为要复制的数据量存储在该驱动器上?

答案1

您首先需要按原样重建分区表。这不会影响内容对于任何分区,只是系统对每个分区开始和结束位置的想法。听起来像你可能已经这样做了,因为您似乎存在一个“未知”的分区,但其大小与之前的分区完全相同。

如果您还没有这样做,那么您可以尝试使用最初创建它时使用的相同分区编辑程序(例如,,fdisk)来创建一个大分区,并接受默认建议的放置,希望这些默认值能够结果与之前的位置相同。再说一遍,听起来你知道使用了什么分区软件:parted。gdiskparted

之后,您需要的技巧是fsck使用备份超级块的文件系统。在这里,您必须希望首先使用默认选项创建文件系统,否则您必须知道使用哪些非默认选项来创建文件系统。 (我想说文件系统通常是使用默认选项创建的。)

  1. mkfs使用与最初创建文件系统相同的选项运行(即可能没有选项,意味着默认值),除了添加-n,这意味着不要真正创建文件系统。
  2. 输出mkfs将输出备用超级块的列表。您将需要使用其中之一,因为文件系统的主超级块已被覆盖。块设备中被覆盖的部分越大,列表中被损坏的备用超级块就越多。
  3. fsck使用-b指定备用超级块的选项运行。

我必须警告您,无论您恢复什么,都可能会变得一团糟,并且需要大量的手动清理。预计会有相当多的丢失和丢失的文件重新附加在lost+found.

相关内容