ddrescue如何从第1阶段重新开始执行数据恢复?
ddrescue如何从第1阶段重新开始执行数据恢复?
嘿,我完全懂你现在的困扰——好不容易靠调整参数快恢复了大半,结果第三阶段直接慢到离谱,想回到第一阶段换个更合适的跳过阈值对吧?别担心,这事儿其实不难,关键是利用ddrescue的日志文件和参数来重置阶段进度。
首先得明确:ddrescue是靠日志文件(比如你之前用的那个.log文件)来记录每一步的恢复状态、已扫描区域的。要回到第一阶段重新开始,核心就是让ddrescue忽略之前的阶段记录,从头执行第一阶段的快速扫描,同时让你的-a50000参数生效(毕竟第三阶段确实会无视这个参数)。
具体操作步骤给你列出来:
- 先备份原有日志文件:这步很重要!万一之后想回到之前的进度,备份的日志能帮你救场。执行命令:
cp /path/to/your_existing_log.log /path/to/your_existing_log.log.backup - 用强制参数重启第一阶段:运行下面的命令,就能让ddrescue重置日志,从第一阶段重新开始,同时启用
-a50000的跳过规则:
这里要注意:ddrescue -a50000 --force /dev/sdX /path/to/your_target_image.img /path/to/your_existing_log.log/dev/sdX是你的源WD硬盘设备名(一定要确认对,别搞混其他盘!)/path/to/your_target_image.img是你要生成的镜像文件路径--force参数的作用就是让ddrescue覆盖现有日志的阶段状态,强制回到第一阶段执行
为什么这招管用?因为ddrescue的第一、第二阶段都会响应-a(也就是--min-read-rate)参数,当读取速率低于你设定的50KB/s时就跳过该区域,优先恢复可读部分;而第三阶段是专门回头啃那些之前跳过的难搞区域,所以会忽略-a参数,这也是你之前第三阶段速度暴降的原因。
你之前看到的那个案例是还在第二阶段,那时候-a还能生效,所以他们的操作和你现在要回到第一阶段的情况不一样——你需要的是彻底重置阶段进度,而不是调整当前阶段的参数。
备注:内容来源于stack exchange,提问作者mrexclusivejr
相关产品推荐
相关产品推荐

