2b525105af1ba8dc62c5f27ba1ef5fda.png

说明

dd命令用于复制文件并对原文件的内容进行转换和格式化处理。dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。用的比较多的还是用dd来备份裸设备。但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便。

建议在有需要的时候使用dd 对物理磁盘操作,如果是文件系统的话还是使用tar backup cpio等其他命令更加方便。另外,使用dd对磁盘操作时,最好使用块设备文件。

格式dd [选项]

选项of=file 写到所命名的文件而不是到标准输出

if=file 从所命名文件读取而不是从标准输入

bs=size 指定块大小(既是是ibs 也是obs)

ibs=size 一次读size 个byte

obs=size 一次写size 个byte

cbs=size 一次转化size 个byte

skip=blocks 从开头忽略blocks 个ibs 大小的块

seek=blocks 从开头忽略blocks 个obs 大小的块

count=n 只拷贝n个记录

conv=conversion[,conversion...] 用指定的参数转换文件

转换参数:

ascii 转换EBCDIC为ASCII

ebcdic 转换ASCII为EBCDIC

lcase 把大写字符转换为小写字符

ucase 把小写字符转换为大写字符

nocreat 不创建输出文件

noerror 出错时不停止

notrunc 不截短输出文件

sync 把每个输入块填充到ibs 个字节,不足部分用空(NUL)字 字符补齐

实例

备份MBRsdd if=/dev/sda of=/app/MBR bs=1 count=512

破坏MBR的bootloaderdd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446

备份数据dd if=/dev/sda of=/app/sda.bak 将sda磁盘上的数据备份到/app/sda.bak文件

dd if=/dev/sda | gzip >/app/sda.gz 备份/dev/sda全盘数据,并利用gzip 压缩,保存到/app/sda.gz文件

恢复数据dd if=/dev/app/sda.bak of=/dev/sdb 将sda备份文件sda.bak恢复到/dev/sdb磁盘

gzip -dc /app/sda.gz | dd of=/dev/sdb 将压缩的sda.gz文件恢复到/dev/sdb设备

拷贝内存数据到磁盘dd if=/dev/mem of=/app/men.bak bs=1024 将内存中的数据拷贝到/app/mem.bak文件中,以一块1M的单位读取和写入

销毁磁盘数据dd if=/dev/urandom of=/dev/sdb1 使用urandom产生的随机数填充覆盖磁盘原数据,即为销毁磁盘数据,执行操作之后,/dev/sdb1将被破坏无法挂载及创建和拷贝等操作都将无法使用

测试硬盘写速度dd if=/dev/zero of=/app/f1 bs=1M count=10000

测试硬盘读速度dd if=/app/f1 bs=64k | dd of=/dev/null

修复硬盘dd=if=/dev/sda of=/dev/sda

拷贝iso镜像dd if=/dev/sr0 of=centos6.iso

cp /dev/sr0 centos6.iso 拷贝光盘数据到centos6.iso文件

制作iso镜像mkisofs -r -o centos.iso /app/centos6 将/app/centos6目录打包为iso文件

设置系统启动盘dd if=/dev/sr0 of=/dev/sdd /dev/sdd为外接硬盘设备,可做系统启动盘

Logo

更多推荐