我想从健康 NTFS分区未受损坏硬盘。
为了离开分区未受干扰,我计划使用dd
将分区克隆到原始映像文件然后尝试从该已安装的克隆中进行恢复。
将dd if=/dev/sd<xn> of=/path/to/output.img
执行非破坏性复制吗?
尝试使用克隆进行恢复是dd
最佳方法吗?
[编辑,wrt Deltiks 答案,我需要更清楚地了解我所问的问题]
例如:是否有一些软件可以做某事更多的与原始扇区?
例如:如果是损坏的硬盘我知道任何这种读取方式具有潜在的破坏性。但假设我的磁盘头不会突然失灵等,我是否会通过使用一种看似非破坏性的方法来降低成功恢复的机会(不惜一切代价)?单身的读我的未受损坏硬盘。
(顺便说一句:我计划使用ntfsundelete
&testdisk
进行恢复)
答案1
不,对分区进行非破坏性复制的正确命令是:
dd if=/dev/sdxn of=/path/to/output.img
sdx
应sdxn
替换为实际的设备名称。
n
应将其sdxn
替换为 NTFS 分区的分区号。
这种方法当然非常安全,因为当您制作副本时,您可以轻松地复制该图像。如果您弄乱了一个图像,您仍然可以使用其他图像。如果您的硬盘在复制后发生故障,那么您仍然可以使用副本。
由于该操作是只读的,已删除但可能仍然存在的文件将不会被触及。
编辑(2012/06/28 23:00 UTC):注意dd if=
/dev/
sdxn of=/path/to/output.img
,这是包含设备的目录。
编辑(2012/06/28 23:03 UTC):编辑后,您的命令现在是正确的,并且将执行分区的非破坏性复制。
为了帮助更多用户,或针对“以防万一”的情况:
如果您的分区确实受到物理损坏......
请改用这个命令:
dd if=/dev/sdxn of=/path/to/output.img conv=noerror
它将跳过任何无法读取的区域。将conv=noerror
改为dd
写入零。请注意,如果分区物理损坏,读取它可能会非常慢。当我写这个答案时,我手里拿着一台 2000 年 6 月 2 日生产的 20.0 GB Western Digital Caviar。它从 18.2 GiB 左右开始出现故障,dd
在尝试读取该点之后,它几乎停止运行。
编辑(2012/06/28 23:17 UTC):violet313 提出了一个很好的观点评论。您还不如读取损坏的磁盘来恢复数据,因为您迟早要读取数据。通过物理篡改内部来恢复硬盘的成本很高,例如这项服务。
如果dd
无法恢复您想要的数据,请考虑尝试使用更积极的工具来恢复数据:救援。
答案2
抱歉我晚了 10 年(也许那时还没有这个选项)。不过这个帖子确实出现在我的搜索中。而且 dd 非常吓人。
2022 年最佳答案:使用 ntfsclone。
https://manpages.ubuntu.com/manpages/jammy/man8/ntfsclone.8.html https://manpages.ubuntu.com/manpages/jammy/man8/ntfsresize.8.html https://edoceo.com/dev/ntfsclone-transfer-windows
使用示例:
ntfsclone --save-image --output /mnt/storage/windows.ntfsclone /dev/sda1
ntfsclone --restore-image --overwrite /dev/sda1 /mnt/storage/windows.ntfsclone
注意:ntfsclone 不会克隆未使用的扇区,因此它不是恢复已删除文件的好工具。我的用例和解决方案符合此主题的标题,但不符合 OP 的实际问题。