Linux系统下的dd命令是“data duplicator”的简写,意思是数据复印机,它可以用来拷贝和转换数据。dd是Linux上的系统级(low level)工具,使用它可以实现: 备份和恢复整个硬盘或分区 备份MBR(主引导记录) 在ASCII和EBCDIC格式之间转换 也可以为Linux内核制作启动镜像 执行dd命令需要超级管理员权限,在使用它的时候要格外小心,意外操作可能会导致数据丢失。
dd命令的语法: # dd if=<source file name> of=<target file name> [Options] dd命令的语法和Linux的其它命令有很大的不同。dd参数的解释: if=<source>:source代表要复制的数据源,if是“input file”的简写。 of=<destination>:把数据拷贝到哪,of是“output file”的简写。 [options]:额外的选项,块大小、格式等待。 source和destination可以是磁盘、分区、文件和设备。
1、克隆一个硬盘到另一个。假如你要建一个Linux集群,并且每个机器的配置完全一样,你只需要手动安装配置一个系统,然后使用dd命令克隆一堆一模一样的系统。 # dd if=/dev/sda of=/dev/sdb
2、备份分区或硬盘。下面命令备份一个分区到hdadisk.img镜像文件: # dd if =/dev/sda2 of=~/hdadisk.img 使用备份的镜像文件恢复分区: # dd if=hdadisk.img of=/dev/sda2
3、你有没有发现备份的hdadisk.img镜像文件有点大?可以使用gzip或bzip2进行压缩: # dd if =/dev/sda2 | bzip2 hdadisk.img.bz2
4、dd也可以用了拷贝文件,如果cp命令不可用时,可以使用: # dd if=/home/bibi/abc.txt of=/mnt/abc.txt
5、清空整个硬盘(把每一位都设为0),数据不可恢复 # dd if=/dev/zero of=/dev/sdb
6、rm -rf /可以删除磁盘信息,但是这些数据是可以恢复的,使用Photorec或其它磁盘恢复工具。如果要彻底清空数据可以向磁盘中写入随机数据: # dd if=/dev/random of=/dev/sdb
7、创建虚拟交换(swap)分区。参考文章:Ubuntu增加(swap)交换分区 # dd if=/dev/zero of=/swapfile bs=1024 count=200000
8、使用dd从CD-ROM或DVD-ROM中创建ISO文件 # dd if=/dev/dvd of=~/my_linux_image.iso 或: # dd if=/dev/sr0 of=~/mycd_image.iso bs=2048 conv=sync sync是同步磁盘的意思。
9、创建磁盘镜像(20MB): # dd if=/dev/zero of=/usr/disk-img/disk-quota.ext3 count=40960
10、使用dd命令创建USB启动盘。实现Linux U盘安装: # dd if=~/ubuntu.iso of=/dev/sdc /dev/sdc是U盘。 |