MENU

Linux下的dd命令使用详解

2019 年 07 月 04 日 • 阅读: 311 • 运维技术阅读设置

maxresdefault.jpg

说明

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)字 字符补齐

实例

备份MBRs

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为外接硬盘设备,可做系统启动盘
扫码手机看 请喝咖啡 返回首页
本页链接的二维码
打赏二维码