恢复丢失分区上的所有文件

恢复丢失分区上的所有文件

我有一个 SDD,上面有两个分区。第一个是 32G,第二个占用了驱动器的剩余空间。第一个是安装了 Ubuntu 的根分区。第二个是一般存储区域。

我无意中用这个命令将 dd 指向了这个 sdd:

dd if=/2g-ubuntu.iso of=/dev/sda

由于在物理磁盘开头写入的连续数据少于 3G,因此此覆盖从未到达第二个分区。因此,我立即卸载了驱动器,并且只将其安装在读取模式下。第二个分区的索引节点和区域上没有写入任何内容,因此这些文件未受影响。

testdisk 告诉我超级块已损坏。

我尝试读取所有备份超级块,但它们也已损坏。

所以看起来我必须依靠读取 inode 及其相应的区域数据来恢复文件。

是否有一个程序可以让我指向磁盘的该部分并收集所有文件?我查看过 testdisk,但它似乎只查找文件类型,但我需要它不加判断地查找每个文件。

故障排除 - 使用 dd 查找丢失的分区

from subprocess import Popen, PIPE

count = 0

skip32Gigs = 0

while 1:

    dd_args = ["dd", "if=/dev/sda", "bs=512", "skip=" + str(skip32Gigs+count), "count=4"]
    file_args = ['file', "-"]
    print 'dd_args', dd_args

    dd_process = Popen(dd_args, stdout=PIPE)
    file_process = Popen(file_args, stdin=dd_process.stdout, stdout=PIPE)
    dd_process.stdout.close()
    out, err = file_process.communicate()

    print out.split(), err

    if "Linux" in out.split():
        break

    count += 1

xxx

相关内容