我想在我的 trusty 设置旁边安装 opensuse。执行下列操作时:
dd if=/path/to/downloaded.iso of=/dev/sdX bs=4M
我选择将 iso 放在硬盘上而不是闪存驱动器上,结果我的所有数据都消失了。我可以恢复操作系统吗?我至少可以恢复我的 30 首黑胶唱片吗?
答案1
dd
rm
比任何其他仅将文件系统中的块标记为可用的机制要糟糕得多。dd
它会逐字读取和写入磁盘或分区,因此通过覆盖它不仅会删除文件系统上的文件,还会破坏文件系统上有关数据组织方式和文件系统本身的信息。虽然某些数据结构如EXT 超级块存在一些冗余,这不允许恢复覆盖的数据。
取决于的行为dd
,即如果它用零填充分区的剩余空间并让其完成任务,则认为分区上的所有数据都丢失。
有一种误解认为你仍然必须多次覆盖数据,使数据恢复几乎不可能。本文所基于的恢复技术不适用于现代磁盘,Peter Gutmann 在其中一篇答案和:
任何现代驱动器很可能都是一项无望的任务,由于超高密度和使用垂直记录,我不知道 MFM 如何获得可用的图像,然后使用 EPRML 意味着即使您可以神奇地将某种图像传输到文件中,解码以恢复原始数据的能力也将非常具有挑战性。
此外,制作磁盘的原始副本并使用该副本进行恢复尝试的典型建议是误导性的。失败的驱动器可能是一个可行的解决方案,但也会给驱动器带来很大的压力,这可能会适得其反。但在你的场景中,这是不同的,看起来是一种相当愚蠢的方法。通过创建副本dd
来恢复被覆盖的数据,以便进一步恢复?这应该不会给你带来任何比以前写的东西更多的信息,对吧?当然,如果你想证明 Peter Gutmann 或更先进的方法仍然适用于较新的驱动器,你只需要dd
dd
dd
读从源驱动器,不要写到驱动器以防止进一步覆盖数据。
说实话,试图恢复全部数据将几乎不可能恢复,浪费大量时间并绑定资源(驱动器无法使用,计算机必须继续恢复过程),而您可以通过创建备份并对这些危险的命令更加小心来轻松避免这些问题。
答案2
这不是一步一步的,而是一个可能让你走上正确道路的小建议。
如果对您来说,使用 dd 将磁盘的原始副本复制到备用或新磁盘很重要。那么请考虑断开原始磁盘的连接,以防止另一个错误造成更多更改。(仅使用主磁盘在备用磁盘上播种您的恢复尝试。)就您而言,您只覆盖了磁盘的第一部分,等于 iso 的大小。
但是,这可能会使某些恢复工具感到困惑。因此,在这种情况下,明智的做法可能是使用 dd 将 iso 的大小精确归零,然后使用工具尝试恢复分区。
好吧,我相信只要你谨慎行事,你就有很大的机会恢复所有重要的东西。