Questions tagged «ddrescue»

5
磁盘清零时如何忽略写入错误?
假设您要将故障硬盘归零。您希望尽可能用零覆盖。您不想要的是:进程在第一个写错误时中止。怎么做? AFAICS dd仅提供了一个忽略读取错误的选项。因此,类似 dd if=/dev/zero of=/dev/disk/by-id/lousy-vendor-123 bs=128k 是不足够的。 ddrescue 似乎更容易忽略错误-但是最佳的命令行是什么? 我对GNU ddrescue的尝试: ddrescue --verbose --force --no-split /dev/zero /dev/disk/by-id/lousy-vendor-123
19 hard-disk  dd  ddrescue 

1
如何使用当前状态估算完成GNU ddrescue(1.18.1)的循环/时间?
背景/背景: 我目前正在运行GNU ddrescue 1.18.1,以便从将虚拟磁盘映像写入disk2s1分区时遇到电缆断开的USB恢复数据。最初,我正在恢复第二个分区(disk2s2),并注意到我已经进入了第三阶段(拆分)。我将映像放置到网络存储上。 题: 我注意到此阶段循环。给定我当前的状态信息(我仅显示两个错误),有没有一种方法可以计算我可能遇到的循环数? 状态: 更新/编辑: 因此,我仍然非常感兴趣如何使用ddrescue工具估算完成的循环次数/时间。根据评论,我要为当前正在运行的disk2s1分区添加一个日志文件评估(disk2s2在14.5小时后完成,一个用户中断大约6个小时)。 完成的分区日志 对于刚刚完成的分区,这是日志检查的结果。 参考(ddrescue算法注释): 4算法 GNU ddrescue不是dd的派生,也不以任何方式与dd相关,除了两者都可用于将数据从一个设备复制到另一设备。关键区别在于ddrescue使用复杂的算法从发生故障的驱动器中复制数据,从而使它们造成的附加损坏尽可能小。 Ddrescue有效地管理进行中的救援状态,并尝试首先救援好零件,并计划在不良(或慢速)区域内读取数据以备后用。这样可以最大化从故障驱动器中最终恢复的数据量。 标准的dd实用程序可用于从发生故障的驱动器中保存数据,但会顺序读取数据,如果错误出现在驱动器的开头,则该驱动器可能会损坏驱动器而无法进行任何救援。 其他程序按顺序读取数据,但发现错误时将切换为小尺寸读取。这是一个坏主意,因为这意味着要花更多的时间在错误区域上,从而损坏表面,磁头和驱动机械,而不是尽可能快地脱离它们。此行为减少了挽救剩余的良好数据的机会。 ddrescue的算法如下(用户可以在任何时候中断该过程,但要注意,坏的驱动器会长时间阻塞ddrescue,直到内核放弃): 1)(可选)读取描述多部分或先前中断的救援状态的日志文件。如果未指定任何日志文件,或者为空或不存在,则将所有救援域标记为未尝试。 2)(第一阶段;复制)读取输入文件的未修剪部分,将失败的块标记为未修剪,然后跳过它们。也可以跳过慢速区域。跳过的区域稍后将在另外两次通过中进行尝试(在修剪之前),在每次通过之后反转方向,直到尝试了所有救援域。第三遍是扫掠遍,禁用了跳过。(目的是快速界定大错误,使日志文件较小,并为修剪提供良好的起点)。大块仅读取未尝试的区域。修整,拆分和重试按扇区进行。每个部门最多尝试两次;此步骤中的第一个(通常作为大块读取的一部分,但有时作为单个扇区读取),以下步骤之一中的第二个作为单个扇区读取。 3)(第二阶段;修整)从最小的非修整块的前沿一次读取一个扇区,直到找到一个坏扇区。然后从同一块的后沿一次向后读取一个扇区,直到找到一个坏扇区。对于每个未修剪的块,将找到的坏扇区标记为坏扇区,并将该块的其余部分标记为未拆分,而无需尝试读取它。重复直到不再有未修剪的块。(大的未修剪的块是通过串联较小的块而生成的,因此其边缘处的良好数据所占的比例较小)。 4)(第三阶段;拆分)从最大的非拆分块的中心一次读取一个扇区,直到找到一个坏扇区。然后,如果找到的坏扇区不是第一个尝试的扇区,则从同一块的中心一次向后读一个扇区,直到找到坏扇区为止。如果日志文件大于“ --logfile-size”,请顺序读取最大的非拆分块,直到日志文件中的条目数降至“ --logfile-size”以下。重复直到所有剩余的非拆分块的扇区数少于7个为止。然后依次读取剩余的非拆分块。 5)(第四阶段;重试)(可选)尝试再次读取坏扇区,直到达到指定的重试次数为止。每个坏道每次通过仅尝试一次。Ddrescue无法确定坏扇区是否无法恢复,或者在重试之后是否最终会读取坏扇区。 6)(可选)编写一个日志文件,以备后用。 总错误大小(“ errsize”)是所有未修剪,未拆分和坏扇区块的大小之和。在复制阶段,它会增加,而在修剪,分割和重试期间,它可能会减少。请注意,当ddrescue拆分失败的块以使其变小时,总错误大小可能会减少,而错误数量会增加。 日志文件会定期保存到磁盘,以及ddrescue完成或中断时也会保存到磁盘。因此,在发生崩溃的情况下,您几乎不需要重新复制就可以继续进行救援。保存之间的间隔从30秒到5分钟不等,具体取决于日志文件的大小(较大的日志文件将以较长的间隔保存)。 同样,同一日志文件可用于复制输入文件不同区域的多个命令,并可用于对不同子集的多次恢复尝试。请参阅以下示例: 首先抢救光盘上最重要的部分。ddrescue -i0 -s50MiB / dev / hdc hdimage日志文件ddrescue -i0 -s1MiB -d -r -3 / dev / hdc hdimage日志文件 然后营救一些关键的光盘区域。ddrescue …
9 ddrescue 

2
USB硬盘驱动器上的ddrescue非常慢
我正在从死掉的笔记本电脑中恢复HDD(根本无法启动,Disk Utility报告说没有问题,但不会挂载磁盘)。我已经通过USB适配器连接了硬盘。ddrescue像这样运行: sudo ddrescue -v -n /dev/disk1s2 "/Volumes/Original HD/image.dmg" ddrescue.log 到目前为止,没有错误,但是平均读取速度已逐渐降至50KB / s。开始时约为2MB / s。分区的大小为300GB。到目前为止,我已经能够恢复160GB。我正在恢复到MacBook上的HFS +分区。 传输速度缓慢的原因可能是什么?如何提高传输速度?

2
是否在不卸下卡的情况下重设MMC控制器?
我正在尝试使用ddrescue从SDHC卡中抢救数据: while true ; do ddrescue -d /dev/mmcblk0p1 mmc.img mmc.log ; done 我不确定是卡上的还是笔记本电脑上的控制器,在读取了一定数量的坏扇区(不是)后,似乎所有扇区(在syslog中显示)都会返回错误。 (显示在syslog中),我发现将卡弹出并再次插入插槽会重置此状态,并再次将好扇区报告为好扇区,直到读取了太多坏扇区为止,依此类推。 目前,我正在使用此循环,注意ddrescue的状态输出,并手动重置卡。有没有一种方法可以在不移除卡的情况下重置控制器,以便救援过程可以在无人值守的情况下运行? 也许是相关的,但是在这台Dell笔记本电脑中,读取器甚至要注意已插入卡,必须在引导或使用过程中完成该操作echo 1 > /sys/bus/pci/rescan,但只有一次,此后读取器PCI设备就会出现,并且一切正常。 07:00.0 System peripheral: JMicron Technology Corp. SD/MMC Host Controller (rev 30) Subsystem: Dell Device 046e Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at f0600000 (32-bit, non-prefetchable) [size=256] Capabilities: …

2
这个ddrescue命令有什么作用吗?
在尝试从出现故障的硬盘驱动器中恢复数据的过程中,我正在运行命令ddrescue。 该命令已经运行了9天,从磁盘活动的声音中我认为它可能正在做某事。一直以来,命令行输出看起来或多或少是静态的: $ sudo ddrescue -r3 /dev/sdb /home/dave/RECOVERY/usb500.image /home/dave/recovery_usb500.logfile Press Ctrl-C to interrupt Initial status (read from logfile) rescued: 0 B, errsize: 0 B, errors: 0 Current status rescued: 0 B, errsize: 500 GB, current rate: 0 B/s ipos: 2539 MB, errors: 1, average rate: 0 B/s opos: 2539 MB, …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.