linux命令系列-dd

2018-05-30 06:09:17

dd不仅可以原样复制文件,而且可以复制设备。dd指令最大的功效,应该是在于备份! 因为 dd 可以读取磁盘设备的内容,然后将整个设备备份成一个文件!

dd

if			输入
of			输出
bs			block size
count		多少块
ibs=1		一次读取1byte
dd if=/dev/zero of=/tmp/tmp.txt bs=1M count=1024  #创建一个1G文件
dd if=/etc/passwd of=/tmp/passwd.bak		  #备份文件
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1	  #备份第一个扇区

dd if=file.txt ibs=1 count=100 of=1.txt		  #截取100字节
dd if=file.txt ibs=1 skip=100 count=100 of=2.txt  #截取100-200

#备份整个磁盘,包括superblock,boot sector,meta data也就是文件系统也复制过来了
#无需格式化,而cp这类只复制数据并放在空余的快上
dd if=/dev/sda of=/dev/sdb		#复制一个硬盘	
dd if=/dev/sda of=/tmp/sda1.disk

#将光驱的内容,备份成为图像挡
dd if=/dev/sr0 of=/tmp/system.iso

使用 dd 来备份是莫可奈何的情况,因为默认 dd 是一个一个扇区去读/写的,而且即使没有用到的扇区也会倍写入备份文件中! 因此这个文件会变得跟原本的磁盘一模一样 大!不像使用 xfsdump 只备份文件系统中有使用到的部份。不过, dd 就是因为不理会文件系统, 单纯有啥纪录啥,因此不论该磁盘内的文件系统你是否认识,它都可以备份、还原的。

比如你有2颗一模一样的磁盘,sda和sdb,当你对sda分区完格式化后执行dd if=/dev/sda of=/dev/sdb,那么sdb就不需要分区和格式化就可以使用。


备注:
1.本系列命令都在centos7里测试,其他发行版如ubuntu、debian、fedora、opensuse等可能略微不同
2.觉得本文有帮助的小伙伴可以关注笔者
3.原文地址http://www.freecls.com/a/2712/3f    

©著作权归作者所有
收藏
推荐阅读
简介
天降大任于斯人也,必先苦其心志。