|
|
|
|
移动端

2.2.7 用ddrescue 恢复数据

《UNIX/Linux网络日志分析与流量监控》第2章UNIX/Linux 系统取证,本章介绍了大量UNIX 平台下计算机取证的方法,用实例展示了硬盘数据收集和恢复技巧,并用两个案例展示了如何灵活运用各种工具来处理网络故障。本节为大家介绍用ddrescue 恢复数据。

作者:李晨光来源:机械工业出版社|2014-11-26 20:09

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


2.2.7 用ddrescue 恢复数据

Deft 8.2 取证光盘中提供了用于硬盘数据恢复的工具ddrescue。同上面讲到的dd 工具类似,ddrescue 可以把数据从一个块设备,完全镜像到另一个地方。那么dd 和ddrescue 区别在哪儿呢?其实这两款软件从功能上看难分伯仲。接下来,用一个例子来解释。试想一下这种情况:一台服务器磁盘中因存在一些硬件错误致使其中一个分区失效,这时候需要把磁盘上面所有数据复制出来。然而此时不能访问文件,因为文件系统已经损坏。在这种情况下,可以镜像整个分区到一个文件,这样将不再丢失任何数据。或创建一个loop 设备,使用fsck修复损坏的分区,然后访问上面的数据。但在UNIX/Linux 系统上使用dd 命令时(例如ddif=/dev/sda of=/dev/sdb),遇到损坏分区将会失败,因为dd 遇到错误后会终止操作。而ddrescue 不存在这个问题。下面看看如何使用ddrescue。

语法: dd_rescue [options] infile outfile

假设有一块损坏的硬盘/dev/sda1 和一块备用的硬盘/dev/sdb1(分区格式化完成),现在要把数据从/dev/sda1 完全镜像到/dev/sdb1 上,镜像文件名命名为backup.img,运行下面命令:

  1. # dd_rescue /dev/sda1 /dev/sdb1/backup.img 

检查备份数据的连续性

  1. #fsck -y /dev/sdb1/backup.img 

有时需要把备份好的数据再集中放一份,这时你不想插拔硬盘的话就可利用网络传输功能。首先假设我们通过ssh 复制磁盘镜像到远程备份数据服务器上,运行下面命令(假设远程服务器IP 地址为192.168.150.200):

  1. #ddrescue /dev/sda1 - |ssh root@192.168.150.200 'cat /tmp/backup.img' 

如果需要压缩磁盘镜像文件,则可运行tar 命令:

  1. #tar zcvf - /dev/sda1 |ssh root@192.168.150.200 'cat >/tmp/backup.tar.gz' 

更多ddrescue 的用法,可以参考ddrescue 的帮助文档。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

设计模式:可复用面向对象软件的基础(双语版)

《设计模式:可复用面向对象软件的基础》(双语版)是引导读者走入软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位顶尖的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊