Linux硬盘数据恢复工具dd_rescue
和dd一样,dd_rescue可以将数据从一个文件或块设备复制到另一个位置。 dd_rescue主要用于从损坏的分区中恢复数据。 如果dd读取失败,dd_rescue将尝试读取。 用户也可以随时中断复印,以便随时继续。 也可以向后复制dd_rescue。
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 install ddrescue
在Ubuntu上安装ddrescue
sudo apt-get install ddrescue
ddrescue语法
DD _ rescue [ options ] infile outfile
本节介绍了如何使用ddrescue从损坏的硬盘中恢复数据
如果存在损坏的硬盘/dev/sda1和空的硬盘/dev/sda2。 如果要将数据从/dev/sda1复制到/dev/sda2,请运行以下命令:
# DD _ rescue/dev/sda1/dev/sda2/backup.img
如果使用的是ubuntu linux,请运行以下命令“将sda1中的所有数据复制到sda 2”:
sudo DD _ rescue/dev/sda1/dev/sda2/backup.img
有必要确认备份(复制)数据的连续性:
#fsck -y /dev/sda2/backup.img
如果使用的是ubuntu linux,请运行以下命令:
sudo fsck -y /dev/sda2/backup.img
检查完成后,从加载镜像文件到本地恢复数据分区:
# mount/dev/sda2/backup.img/mnt/recovery data
如果使用的是ubuntu linux,请运行以下命令:
sudo mount/dev/sda2/backup.img/mnt/recovery data
可以从加载的分区(/mnt/recoverydata )访问镜像文件(backup.img )上的数据并检查是否存在问题。
恢复镜像
如果要恢复镜像到损坏的硬盘,请执行以下命令:
# DD _ rescue/dev/sda2/backup.img/dev/sda 1
如果使用的是ubuntu linux,请运行以下命令:
SDO DD _ rescue/dev/sda2/backup.img/dev/sda 1
使用SSH复制磁盘镜像到远程计算机
如果要通过ssh拷贝磁盘镜像到远程计算机,请运行以下命令:
# DD _ rescue/dev/sda1--| ssh username @ machine IP‘cat/data recovery/backup.img’
如果使用的是ubuntu linux,请运行以下命令:
sudo DD _ rescue/dev/sda1--| ssh username @ machine IP‘cat/data recovery/backup.img’
然后,系统会提示您输入用户密码,请输入指定用户的密码。 然后,dd_rescue开始复制,完成后通过网络复制到远程计算机。
可能的错误
如果在复制过程中发生以下错误,请忽略:
DD_rescue:(warning ) : output file is not seekable!
DD_rescue:(warning ) : Illegal seek
如果需要压缩磁盘镜像文件,请运行以下命令:
# tar zcvf-/dev/sda1| ssh username @ machine IP‘cat @ @/tmp/data recovery/backup.tar.gz '
如果使用的是ubuntu linux,请运行以下命令:
sudotarzcvf-/dev/sda1| ssh username @ machine IP‘cat @ @/tmp/data recovery/backup.tar.gz’
有关使用dd_rescue参数的信息,请参见dd_rescue的man page。
参照:
recoverdatafromadeadharddriveusingddrescue