ddrescue重建损坏磁盘
来源:互联网 发布:bootstrap案例源码 编辑:程序博客网 时间:2024/05/22 02:19
比较古老的硬盘,经常会出现读取错误。用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 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所有数据到sda2):
sudo dd_rescue /dev/sda1 /dev/sda2/backup.img
目前你需要检查备份(拷贝)数据的连续性:
#fsck -y /dev/sda2/backup.img
如果你使用ubuntu linux, 运行下面命令:
sudo fsck -y /dev/sda2/backup.img
检查完后, 从加载映像文件到本地的recoverydata分区:
#mount /dev/sda2/backup.img /mnt/recoverydata
如果你使用ubuntu linux, 运行下面命令:
sudo mount /dev/sda2/backup.img /mnt/recoverydata
你将能通过加载的分区(/mnt/recoverydata)访问映像文件(backup.img)上的数据,然后检查是否有所有问题.
恢复映像
如果你想恢复映像到损坏的硬盘, 运行下面命令:
#dd_rescue /dev/sda2/backup.img /dev/sda1
如果你使用ubuntu linux, 运行下面命令:
sudo dd_rescue /dev/sda2/backup.img /dev/sda1
使用SSH拷贝磁盘映像到远程机器上
如果你想通过ssh拷贝磁盘映像到远程机器上, 运行下面命令:
#dd_rescue /dev/sda1 - | ssh username@machineip‘cat/datarecovery/backup.img’
如果你使用ubuntu linux, 运行下面命令:
sudo dd_rescue /dev/sda1 - | ssh username@machineip‘cat/datarecovery/backup.img’
然后会显示用户口令输入提示, 输入指定用户的口令, 然后dd_rescue开始拷贝, 结束后通过网络拷贝到远程机器上.
可能的错误
如果你在拷贝中遇见下面错误可忽略:
dd_rescue: (warning): outputfile is not seekable!
dd_rescue: (warning): Illegalseek
如果你需要压缩磁盘映像文件, 运行下面命令:
#tar zcvf - /dev/sda1 | ssh username@machineip‘cat@@>/tmp/datarecovery/backup.tar.gz’
如果你使用ubuntu linux, 运行下面命令:
sudo tar zcvf - /dev/sda1 | ssh username@machineip‘cat@@>/tmp/datarecovery/backup.tar.gz’
下载地址:
ftp://mirror.yongbok.net/gnu/ddrescue/ddrescue-1.14.tar.gz
ftp://mirror.yongbok.net/gnu/ddrescue/ddrescue-1.14.tar.gz.sig
ftp://mirror.yongbok.net/gnu/ddrescue/ddrescue-1.14.tar.lz
ftp://mirror.yongbok.net/gnu/ddrescue/ddrescue-1.14.tar.lz.sig
本文由风信网络提供 http://www.ithov.com欢迎免费转载,转载时请保留该信息,谢谢合作!
- ddrescue重建损坏磁盘
- 控制文件损坏重建
- mount解决磁盘损坏
- 索引损坏与重建索引
- 分区表损坏后的重建
- 磁盘损坏后,更换AIX磁盘过程
- asm 磁盘头丢失,损坏
- 修复损坏的磁盘分区表
- mac 重建磁盘索引 Spotlight
- SQL SERVER 2008 重建损坏的master
- 冷备份--模拟磁盘损坏恢复
- 【Suse系统修复】磁盘文件损坏恢复
- 磁盘损坏导致datanode异常结束
- zfs日常管理以及替换损坏磁盘
- 已损坏打不开您应该推出磁盘映像
- 重建表决磁盘和OCR文件
- 怎样重建一个损坏的调用堆栈(callstack)
- 怎样重建一个损坏的调用堆栈(callstack)
- iphone开发秘籍(一)
- VC命令行参数解析
- 刚学的jsp BaseDao
- http协议
- .NET 文件上传设定
- ddrescue重建损坏磁盘
- 非常有用的embeded linux学习blog
- APIDemo学习笔记——Android上几种简单的Animation使用方法(二)
- Win32串口编程
- pam认证
- MD5例子 使用java.security.MessageDigest
- VC++下命名管道编程的原理及实现
- 2010年10月26日开心网笔试转载
- 如何將Clonezilla live放到一個已經有其他作業系統存在的硬碟中