dd_rescue
、dcfldd
和之间主要有什么区别dd
?在什么情况下你会使用其中一个而不是另一个?为什么有三个不同但相似的程序?
答案1
三者各有不同,两种变体是为了满足特定社区的需求而衍生的。dd 是一款用于成像的通用软件,dd-rescue 旨在从多个通道和来源重建受损文件,而法医 dd 变体旨在制作可验证、合法的副本
dd 是基础版本 - 可以说是通用产品。DD 旨在制作完美的副本。它是您在制作磁盘映像时使用的工具,没有花哨的附加组件。dd 只做一件事,绝对不会做其他事情。虽然有不同的 gnu 和 bsd 版本,但它们的功能和命令与 gnu 和 bsd 版本相同unix dd,以及之前为 IBM JCL 制作的软件
gnu ddrescue 针对数据恢复进行了优化 - 它会记录坏扇区的位置,并尝试用后续运行的数据填充这些区域。因此,其目标是获取可读的文件,而不是位完美的文件。您将需要使用它来从您怀疑已损坏的驱动器中恢复数据。更令人困惑的是,有一个较旧的 ddrescue,它不那么先进或易于使用,因此请检查您正在使用的那个。在 ubuntu 上,gnu ddrescue 由包 gddrescue 安装(您需要的是这个,而不是较旧的 ddrescue 包),并通过命令 ddrescue 调用。
Ddrescue 在输入中发现坏扇区时不会将零写入输出,并且不会在未要求时截断输出文件。因此,每次在同一个输出文件上运行它时,它都会尝试填补空白,而不会清除已挽救的数据。
自动合并备份:如果您有文件、光盘等的两个或多个损坏副本,并且使用相同的输出文件对所有副本逐个运行 ddrescue,则您可能会获得完整且无错误的文件。这是因为不同输入文件的相同位置出现损坏区域的可能性非常低。使用日志文件,只会从第二个和后续副本中读取所需的块。
德克弗莱德和其他法医 dd 变体旨在制作法医副本。这些副本需要位完美且可验证。当您绝对需要知道副本和后续副本与原件相同时,请使用此功能 - 法医 dd 变体添加了哈希等附加功能
从网站上看,dcfldd 的附加功能包括
动态散列 - dcfldd 可以在传输输入数据时对其进行散列,从而帮助确保数据完整性。
状态输出 - dcfldd 可以向用户更新其进度,包括传输的数据量以及操作需要多长时间。灵活的磁盘擦除 - 如果需要,dcfldd 可用于快速擦除磁盘并使用已知模式。
图像/擦除验证 - dcfldd 可以验证目标驱动器是否与指定的输入文件或模式逐位匹配。多个输出 - dcfldd 可以同时输出到多个文件或磁盘。
分割输出 - dcfldd 可以将输出分割为多个文件,并且比 split 命令具有更多的可配置性。管道输出和日志 - dcfldd 可以将其所有日志数据和输出本地发送到命令和文件。