背景
在最近刷硬盘出现故障之后,我想把一个HOWTO放在如何镜像硬盘上,忽略Linux下的错误。 确保正确发出这些命令,并使用正确的驱动器和设备名称至关重要。 dd没有提示和确认 - 谨慎使用!
在硬盘数据恢复的情况下,扇区通常不是太复杂。
镜像
首先,我们需要确定最优的I / O大小以最大化我们的读写速度:
fdisk -l /dev/sda|grep "I/O size"
在我的情况下,结果显示512字节。 接下来,假设我们的驱动器是/ dev / sdb
,我们的新驱动器是/ dev / sdc,
我们将启动镜像如下:
dd if=/dev/sdb of=/dev/sdc conv=sync,noerror bs=512
通过noerror
标志来指示dd不要退出读取错误
进度检查
dd将在接收到USR1信号时打印出状态检查。 在一个单独的终端,问题:
kill -USR1 $(pidof dd)
恢复
经常遇到不良行业之后,dd的传输速度将会下降并保持扼制。 为了减轻这种情况,首先使用Ctrl-C停止传输,允许dd打印出当前的进度:
6002656+0 records in 6002656+0 records out 3073359872 bytes (3.1 GB) copied
现在确保所有数据被刷新:
sync
完成后,删除并重新连接驱动器,然后继续从dd最后一次关闭:
dd if=/dev/sdb of=/dev/sdc bs=512 conv=sync,noerror seek=6002656 skip=6002656
一旦完成,您将需要扫描新驱动器的文件系统以检测和修复任何文件系统错误和损坏。