Answers:
首先,要使用该软件:您可以尝试使用ddrescue代替dd。
ddrescue可以只进行有限的重试次数。它还可以使用日志文件,因此它记录了哪些块是错误的。如果以后感觉要重试更多,可以使用相同的日志文件以不同的选项ddrescue 再次运行(例如重试),它将仅重试必要的块。
用法示例:
# ddrescue -n /dev/sda /dev/sdb rescue.log
# ddrescue -r1 /dev/sda /dev/sdb rescue.log
从ddrescue信息页面:
   -n, --no-scrape     
          Skip the scraping phase. Avoids spending a lot of time
          trying to rescue the most difficult parts of the file.
   -r, --retry-passes=<n>
          Exit after given number of retry passes. Defaults to 0.
          -1 means infinity. Every bad sector is tried only once 
          in each pass. To retry bad sectors detected on a previous
          run, you must specify a non-zero number of retry passes.
以下是一些其他使用来源ddrescue:
info ddrescue在案件本身花费的时间太长了硬盘驱动器,你可以尝试启用了一个叫做TLER(牛逼 IME 大号 imited Ë RROR [R ecovery)或CCTL(ç ommand ç ompletion 牛逼 IME 大号 IMIT)。并非所有HDD都有它,但是您可以使用它来限制HDD控制器本身的时间。ddrecue当然,这种方法可以与使用结合使用。
Linux有一个称为的工具smartctl(在smartmontools包装中)。
要检查当前设置(“禁用”表示无限时间,您不需要):
# smartctl -l scterc /dev/sda
要将其设置为固定值(在本示例中为5.0秒。将其设置为0将禁用TLER):
# smartctl -l scterc,50,50 /dev/sda
TLER的来源:http : //en.wikipedia.org/wiki/TLER
使用该软件无法读取的磁盘对我有很好的效果。
http://www.cgsecurity.org/wiki/TestDisk
下一个也是一个可靠的恢复工具。即使文件表损坏或被删除,它也可以获取文件。这是该死的好取证工具。它以一种真正无组织的方式转储事物,但是您可以移动所有数据。
要快速而快速地选择恢复光盘,可以使用sh脚本文件并使用sh运行该文件。它包含了这一行,只是重复sudo ddrescue和sleep 3多做几次。睡眠用于使驱动器休息几秒钟:
#! /bin/sh -e 
sudo ddrescue -d -r0 -e +0 -T 1s -n /dev/drivepartition file.img log.logfile 
sleep 3
上面使用的选项:
-r0  :无重试-e +0:在第一个错误时退出-T 1s:退出1秒失败读取-d   :直接I / O-n   :无刮擦您可以-R在-A一次完成后使用一次选项,这将撤消并删除所有错误大小,然后再次向后开始。意味着它将读取不同的错误。
取决于您的硬盘驱动器的大小以及它有多少坏块。使用DD 1 tera健康高清视频备份通常需要20分钟。今天早上我刚好恢复了好坏,花了我两次的时间。我在复制(备份磁盘)约30个坏块时遇到问题。我要做的第一件事是使用常规Filezilla备份文件来备份所有良好数据。我注意到一个大文件未正确复制(在中间停止并重新开始传输)。幸运的是,我以前有相同文件的备份。要复制磁盘,则必须使用以下过程在磁盘上找到坏块:
1使用fdisk -l找出标识HD信息的问题磁盘
第二,如果说您的磁盘是/ dev / sdb,则需要运行命令 badblocks -v / dev / sdb,它将列出驱动器上所有的坏块。幸运的是会有一些。如果未找到坏块,则您的驱动器块还可以,需要弄清楚其他问题。我的块大小是512,所以我使用该默认数字来运行DD
第三,每个块的大小为512,所以我要做的是设置bs = 512
每次像往常一样定期运行DD时,发生错误后,我的数据都会损坏。因此,然后按照页面https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html上的说明使用参数,搜索“故障磁盘”部分。
dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync iflag=fullblock 
花了一段时间。遇到的每个坏块听起来像是故障驱动器上的撞击声。它确实逐块复制,并且所有我的坏块都发出相同的声音。发出噪音的次数是因为它发现了另一个坏块,并告诉您有关显示错误的消息msg。什么是“兑换= NOERROR,同步”呢,是垫出来不好用完全无效读取,而“IFLAG = fullblock”短迎合读取,但在同步你的数据了保持到最后。完全没有损坏,它只是不复制有问题的块,并用空的NUL填充它。
用DD复制完成后,我只是替换了从以前的备份恢复Filezilla的那个坏文件,一切正常。我希望这对其他尝试备份故障驱动器的用户有用。
注意:我的坏块彼此之间非常接近。一次约4个块,一起检测到损坏。如果块全部位于磁盘上,则可能会影响几个文件。幸运的是,就我而言,仅影响了一个大数据库4gb文件。