部分覆盖了/dev/sda,我可以恢复任何东西吗?

Geo*_*eye 5 partition dd data-recovery hard-disk

我在弄乱我的新硬盘驱动器,它只包含一些个人文件,为了检查它的写入速度,我输入: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
Run Code Online (Sandbox Code Playgroud)

以前,是这样的:

|--- ext4 1.82 TB
Run Code Online (Sandbox Code Playgroud)

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

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

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

Cel*_*ada 7

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

如果您还没有这样做,那么您可以尝试使用最初用于创建它的相同分区编辑程序(例如fdisk, gdisk, parted)来创建一个大分区,并接受默认建议的放置位置,希望这些默认设置能够导致与以前相同的位置。同样,在这里,您似乎知道使用了什么分区软件:parted。

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

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

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