基本用法
lsblk # 查看并仔细确认分区 dd if=/dev/sda of=/PATH/disk.img
使用bs参数加快备份速度
dd bs=8192 if=/dev/sda of=/PATH/disk.img
参数说明:
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。 obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。 bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。
确定硬盘的最佳块大小:
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。
遇到磁盘错误时继续执行
dd if=/dev/sda of=/PATH/disk.img conv=sync,noerror
压缩镜像大小
备份:
dd if=/dev/hdX | gzip > /PATH/image.gz
恢复:
gzip -dc /PATH/image.gz | dd of=/dev/hdX
修复硬盘
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(一年以上)放置不使用后,磁盘上会产生magnetic flux point,当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数 据起死回生。并且这个过程是安全、高效的。
监视进程
根据磁盘大小,dd运行过程可能会耗时很长,如果想要在执行过程中查看进度,需要使用pv工具。
首先安装pv工具
#Ubuntu/debian sudo apt install pv #CentOS sudo yum install pv
然后运行dd命令,效果如下
dd if=/PATH/disk.img | pv | dd of=/dev/sdX 4,14MB 0:00:05 [ 98kB/s] [ <=> ]
如果你使用的是GNU版本的dd,并且coreutils版本高于8.24,那么可以使用status选项。例如:
dd if=/dev/sdX of=/PATH/disk.img status=progress
dd常用参数
if =输入文件(或设备名称)。 of =输出文件(或设备名称)。 ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。 skip = blocks 跳过读入缓冲区开头的ibs*blocks块。 obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。 bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)。 cbs = bytes 一次转换bytes字节。 count = blocks 只拷贝输入的blocks块。 conv = ASCII 把EBCDIC码转换为ASCII码。 conv = ebcdic 把ASCII码转换为EBCDIC码。 conv = ibm 把ASCII码转换为alternate EBCDIC码。 conv = blick 把变动位转换成固定字符。 conv = ublock 把固定们转换成变动位 conv = ucase 把字母由小写变为大写。 conv = lcase 把字母由大写变为小写。 conv = notrunc 不截短输出文件。 conv = swab 交换每一对输入字节。 conv = noerror 出错时不停止处理。 conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。 fdformat命令 低级格式化软盘。