比较古老的硬盘,经常会出现读取错误。用DDRESCUE备份毁坏磁盘,然后尝试修复备份。
dd_rescue的好处
想象一下, 你的某个分区失效, 存在一些硬错误, 你不会想继续写所有数据到这块硬盘. 这时候需要把上面数据拷贝出来. 然而, 通常情况下, 你不能访问文件, 因为文件系统已损坏.
目前, 你可能会拷贝整个分区到一个文件, 或烧入到一个CD-Rom, 这样将不再丢失所有数据. 你也能创建一个loop设备, 使用fsck修复损坏的分区, 然后访问上面的数据.
在Un*x系统上使用cat或dd拷贝损坏分区将会失败, 因为他们遇见错误后会终止拷贝. 而dd_rescue将尝试从坏扇区读出数据, 然后继续下面的扇区. 输出文件(output file)会存在有一些错误. 你能通过写入日志文件看到这些错误的位置.
当遇见错误的时候, dd_rescue的数据丢失率是非常低的. 如果你终止当前拷贝, 你不会丢失所有数据. 可在所有地方继续. 输出文件将不断被填充, 而不像其他Un*x工具会有截端.
如果你的分区有一个坏扇区, 你能考虑从两边拷贝, 这将是个不错的主意.两个块大小是个不错的优化, 更大的块将有更好的优化效果. 不过在硬盘发生错误的情况下, 你想恢复的是每个扇区上的数据. 所以harbs最佳设置成硬件扇区大小(通常是512字节), softbs数值会大一些, 缺省是16K.
在Debian上安装dd_rescue
运行下面命令安装ddrescue
#apt-get in