dd命令使用

dd命令

dd :convert and copy a file
用法:

dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小
count=# :复制多少个bs

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)字 字符补齐
  • dd命令有很多应用场景比如:

备份MBR

dd if=/dev/sda of=/app/MBR bs=1 count=512

破坏MBR的bootloader

dd 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为外接硬盘设备,可做系统启动盘

你可能感兴趣的:(dd命令使用)