Baa*_*Cow 35 hard-drive dd data-recovery
我使用 .iso 将 ISO 映像写入硬盘sudo dd if=image.iso of=/dev/sda。我的意思是/dev/sdc,现在运行sudo fdisk -l在 /dev/sda 上只返回一个分区,而应该有 6 个。是否可以恢复我的数据?
我还没有关闭(重启)我的电脑。
HTN*_*TNW 64
由于您的计算机仍在运行,因此您很有可能保存东西。
首先,sysfs公开内核在分区表的内存视图。现在,您的内核还没有重新读取磁盘的表,它会记住您的分区。在里面/sys/block/sda/,每个分区应该有一个目录。每个这样的子目录都包含一个 filestart和一个 file size,它们代表分区的位置和大小,以扇区为单位。运行fdisk,然后使用其sysfs目录中的信息重新创建每个分区(按顺序!)。请注意,您还必须创建一个新的分区表。确保您的新分区表与之前的相同。您可以在/sys/block/sda. 如果你看到sda1最多sda7虽然您只有 6 个分区,但您可能有 MBR,否则可能是 GPT。您还需要为这些分区设置标志和类型。查看/etc/fstab并尝试收集有关您拥有的分区类型的信息,然后查看 Wikipedia 将这些信息转换为您的分区方案的代码。
由于您似乎能够使用您的文件系统,因此您可能dd没有覆盖任何文件系统,因为文件系统的大多数重要部分都在前面。检查/etc/fstab哪些分区对应于您系统的哪个部分,然后使用dd复制的数据量来估计您核对了多少。如果覆盖只有一个文件系统的一部分,良好的fsck 也许能够解决它有点(但你丢失的数据块好)。
最有可能的是,您覆盖了/boot. 您必须重新安装内核(使用aptitude)并重新安装 GRUB2(使用grub-install)(它的第一阶段和第二阶段都被破坏了)。GRUB2 配置了 中的文件/etc,因此您无需手动重新创建任何内容。
sud*_*dus 22
我猜你没有当前的备份,我很抱歉读到你的运气不好使用
sudo dd if=image.iso of=/dev/sdx
Run Code Online (Sandbox Code Playgroud)
您在哪里使用驱动器号x=a这样您就可以覆盖存储大量有价值数据的硬盘驱动器的开头。
您不是第一个,恐怕也不是最后一个受此问题影响的人。dd很多网站都推荐这样使用。这是一种强大但危险的方法,因为它会毫无疑问地执行您告诉它执行的操作。因此,它通常被称为“数据破坏者”。
@marcelm 评论说,这个昵称是不公平的。他是对的,以 root 直接写入设备文件会导致风险。因此请注意,您可以通过写入相应的设备文件轻松覆盖驱动器并破坏有价值的数据/dev/sdx。(本答案末尾列出了更安全的工具。)
尽可能少地使用驱动器,最重要的是,不要向其写入任何内容,因为它会覆盖仍然可以恢复的数据,从而使情况变得更糟。
如果您的数据很有价值,您应该使用克隆副本,而不是原始(部分覆盖)驱动器。请参阅此链接,向下滚动到“分区表、文件系统和/或文件恢复的高级修复”
如果你有一个 GUID 分区表,GPT,在驱动器的末尾有一个分区表的备份/dev/sda,你可以使用工具从这个备份表恢复主分区表gdisk。有关man gdisk详细信息,请参阅手册。
你可以设法恢复使用分区表和文件系统Testdisk从
阅读CGSecurity网站上的说明以及@ElderGeek提供的链接,安装时断电后分区消失
您还可以根据@CSM 提供的链接使用gpart/gparted设法恢复分区表和文件系统,
PhotoRec : 如果您无法恢复分区表和文件系统,您仍然可以恢复一些文件数据。头端的文件,可能是 1-1.5 GB,被覆盖和丢失,但驱动器后面的文件仍然存在。http://cgsecurity.org上的PhotoRec是一种工具,它可以在没有文件系统的情况下“从驱动器表面”恢复数据。常见文件类型开头的典型数据用于识别。
以下链接提供了有关 PhotoRec 的详细信息,
https://www.cgsecurity.org/wiki/PhotoRec
您应该将文件保存到单独驱动器中的分区。
无法恢复目录结构,通常无法恢复文件名(而不是权限和所有权),并且存在问题,当文件碎片化时,但是PhotoRec可以恢复许多文件(不仅照片,还有许多其他常见的文件类型)。但是,这是一个很大的问题,要通过大量未分类的文件来识别真正重要的文件是一项艰巨的工作,您应该将它们重命名为有意义的文件名。
将来,请使用可帮助您识别和选择正确目标设备并具有最终检查点的工具,以便您可以仔细检查是否将从iso 文件克隆到正确的目标设备,例如
在 Linux 中:
gnome-disks,在 Windows 中:Win32DiskImager。
例如,您还可以使用提供最终检查点的提取工具
muc*_*lux 18
通过你的dd命令,你覆盖了 /dev/sda 的分区表和所有数据,只要 image.iso 的大小。
因此,您可以实现的最好方法是恢复您的分区表(具有确切大小)以至少恢复 /dev/sda 末尾的分区。
stu*_*bee 15
如果没有从备份中恢复,就无法完全恢复。DD 已经覆盖了分区表和设备的一些数据。
小智 9
如果你开车被划分为独立的/和/home分区,以及 /home分区是以后/的分区,那么你就可以恢复你的数据。列出大多数分区所在的 MBR 已被覆盖。但是,gparted 可以恢复您的/home分区。
Ubuntu 论坛上的这篇文章 给出了一些关于如何做到这一点的想法;我通过搜索“gparted 恢复分区”发现了这一点。
一旦找到丢失的分区(可能位于扩展分区内),您应该将其添加为分区表中的唯一分区。
完成此操作后,您将必须重新安装 Linux,并告知将恢复的分区保留为/home.