意外用 dd 覆盖了错误的磁盘,如何恢复?

意外用 dd 覆盖了错误的磁盘,如何恢复?

我想要一张从到 的dd图像,但是因为一个小时前我已经进行了不同的设置,所以我只是复制了相同的命令:sdbsdc

dd if=/home/user/Downloads/ubuntu.iso  of=/dev/rsdb bs=2M; sync

sda = 内置硬盘
sdb = USB 硬盘(现在启动)
sdc = USB 记忆棒

我启动的硬盘上有 3 个分区,我猜其他 2 个分区处于只读模式,我尝试了两次后,shell 中出现了错误:

568328192 bytes (568 MB) copied, 38,5818 s, 14,7 MB/s
dd: error writing ‘/dev/rsdb’: No space left on device
715128832 bytes (715 MB) copied, 17,1752 s, 41,6 MB/s

现在我意识到我覆盖了启动硬盘上的 1GB 数据(使用rsdb)。我还没有关闭电脑。我会丢失此硬盘上的所有数据吗?我现在可以恢复任何数据吗?

这是我的/proc/partitions

   8        0  156290904 sda
   8        1  154218496 sda1
   8        2          1 sda2
   8        5    2069504 sda5
   8       16  244198582 sdb
   8       17   31457280 sdb1
   8       18   20971520 sdb2
   8       19  191768576 sdb3
   8       32    2011136 sdc
   8       33    2011135 sdc1

答案1

您已破坏了前约 1 GB,其中包括分区表和第一个分区的文件/目录列表。不过,您仍然可以重建分区表并发现 sdb2 和 sdb3 未受影响。

从终端运行此脚本,并记下它报告的开始/大小/结束数字(以防万一):

for part in /sys/class/block/sdb[0-9]*; do
    num=$(<$part/partition)
    start=$(<$part/start)
    size=$(<$part/size)
    end=$((start+size-1))
    echo "partition $num: start $start, size $size, end $end"
done

然后使用parted /dev/sdbfdisk /dev/sdb手动创建匹配的分区。例如,如果它打印:

partition 1: start 2048, size 204800, end 206847

那么你可以使用:

parted /dev/sdb mkpart primary 2048s 206847s

(注意s最后的单位)

答案2

TestDisk您可以使用(photorec)恢复数据

TestDisk 是开源软件,根据 GNU 通用公共许可证 (GPL v2+) 的条款获得许可。

TestDisk 是一款功能强大的免费数据恢复软件!它主要用于帮助恢复丢失的分区和/或使非启动磁盘再次可启动,当这些症状是由软件故障引起的:某些类型的病毒或人为错误(例如意外删除分区表)。使用 TestDisk 恢复分区表非常简单。

TestDisk 可以

修复分区表,恢复已删除的分区

从备份中恢复 FAT32 启动扇区

重建 FAT12/FAT16/FAT32 引导扇区

修复 FAT 表

重建 NTFS 引导扇区

从备份中恢复 NTFS 引导扇区

使用 MFT 镜像修复 MFT

找到 ext2/ext3/ext4 备份超级块

从 FAT、exFAT、NTFS 和 ext2 文件系统中恢复已删除的文件 从已删除的 FAT、exFAT、NTFS 和 ext2/ext3/ext4 分区中复制文件。TestDisk 具有适合新手和专家的功能。对于那些对数据恢复技术知之甚少或一无所知的人来说,TestDisk 可用于收集有关非启动驱动器的详细信息,然后可以将其发送给技术人员进行进一步分析。那些更熟悉此类程序的人会发现 TestDisk 是执行现场恢复的便捷工具。

从 Linux live usb 启动。

安装TestDisk类型:

 sudo apt-get install testdisk

跑步TestDisk

sudo testdisk

有一个教程:测试磁盘步骤

答案3

我强烈推荐雷库瓦

大约 2 天前,我犯了同样的错误,非常担心,于是想到了这个话题。但是分区脚本和 testdisk 都没有帮助我。尝试了 photorec 并保存了一些照片,但大多数都是 3 天前上传的,旧照片都丢失了。

当时我正准备放弃,将整个硬盘格式化为 NTFS(因为 MBR 已损坏),并使用我朋友的 Windows PC 使用 Recuva。它成功了,(不是全部,但)很多文件都恢复了。它甚至恢复了文件名和上次修改时间(photorec 无法恢复)。

相关内容