我刚刚(意外地)删除了我的第二个磁盘dd if=/dev/zero of=/dev/sdb1
。10 秒后,我发现字母错误,990GB 分区中的 2GB 被删除(总磁盘空间为 1TB)。意识到自己做了什么后,我尝试重新安装它,但没有成功。fsck
在断开磁盘连接之前,我快速运行了一下,我发现了以下内容:
fsck -y /dev/sdb
fsck from util-linux 2.29.1
e2fsck 1.43.4 (31-Jan-2017)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdb
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
Found a dos partition table in /dev/sdb
当然,这两个e2fsck
命令都不起作用。有什么方法可以恢复磁盘吗?或者我应该再买一个磁盘并尝试挽救数据?
答案1
(我注意到您fsck
在错误的磁盘上运行了命令 - /dev/sdb
,而不是/dev/sdb1
- 因此在执行任何进一步的操作之前,您可能需要睡一觉/喝杯咖啡,再看看别人的眼睛。)
此时应采取的适当步骤是对驱动器进行一些复制(使用dd
或ddrescue
),然后使用数据恢复工具查看可以从驱动器的副本中获得什么。我所做的一切都会保存在备份驱动器上,以防万一。这可能会让事情变得更糟。
我将尝试按如下方式恢复数据:
mke2fs -n /dev/sdb1
通过使用- 对提示说“是”来找到备用超级块,并记录它为您提供的备用超级块的编号。fsck.ext4 -y -b XXXXX /dev/sdb1
(XXXXX
上面的最后一个超级块号码是哪里)。安装生成的系统并获取您可以获取的数据。
如果此方法失败,请尝试使用testdisk
和/或photorec
挽救尽可能少的资源。