我正在摆弄我的新硬盘,它只包含一些个人文件,为了检查其写入速度,我输入: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。gdisk
parted
之后,您需要的技巧是fsck
使用备份超级块的文件系统。在这里,您必须希望首先使用默认选项创建文件系统,否则您必须知道使用哪些非默认选项来创建文件系统。 (我想说文件系统通常是使用默认选项创建的。)
mkfs
使用与最初创建文件系统相同的选项运行(即可能没有选项,意味着默认值),除了添加-n
,这意味着不要真正创建文件系统。- 输出
mkfs
将输出备用超级块的列表。您将需要使用其中之一,因为文件系统的主超级块已被覆盖。块设备中被覆盖的部分越大,列表中被损坏的备用超级块就越多。 fsck
使用-b
指定备用超级块的选项运行。
我必须警告您,无论您恢复什么,都可能会变得一团糟,并且需要大量的手动清理。预计会有相当多的丢失和丢失的文件重新附加在lost+found
.