1、命令简介
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
2、命令用法
dd [options]
3、命令描述
dd 可从标准输入或文件中指定大小的块读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
注意:指定的数字若以下列字符结尾,计算需要乘以字符对应的数字:b=512;c=1;k=1024;w=2
4、命令选项
选项 | 描述 |
if=文件名 | 输入文件名,默认为标准输入。即指定源文件。 |
of=文件名 | 输出文件名,默认为标准输出。即指定目的文件。 |
ibs=bytes | 一次读入bytes个字节,即指定一个块大小为bytes个字节。 |
obs=bytes | 一次输出bytes个字节,即指定一个块大小为bytes个字节。 |
bs=bytes | 同时设置读入/输出的块大小为bytes个字节。 |
cbs=bytes | 一次转换bytes个字节,即指定转换缓冲区大小。 |
skip=blocks | 从输入文件开头跳过blocks个块后再开始复制。 |
seek=blocks | 从输出文件开头跳过blocks个块后再开始复制。 |
count=blocks | 仅拷贝blocks个块,块大小等于ibs指定的字节数。 |
conv=<关键字>
,关键字可以指定为如下值:
选项 | 描述 |
conversion | 用指定的参数转换文件。 |
ascii | 转换ebcdic为ascii |
ebcdic | 转换ascii为ebcdic |
ibm | 转换ascii为alternate ebcdic |
block | 把每一行转换为长度为cbs,不足部分用空格填充 |
unblock | 使每一行的长度都为cbs,不足部分用空格填充 |
lcase | 把大写字符转换为小写字符 |
ucase | 把小写字符转换为大写字符 |
swap | 交换输入的每对字节 |
noerror | 出错时不停止 |
notrunc | 不截短输出文件 |
sync | 将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。 |
5、使用示例
1)将sda硬盘数据备份到sdb上
dd if=/dev/sda of=/dev/sdb
2)备份硬盘引导分区表:
dd if=/dev/sda of=/mnt/sda.mbr bs=512 count=1
注意:前446字节为mbr,446-512为磁盘分区表
3)刻录系统启动u盘:
dd if=/linux.iso of=/dev/sdb1
注意:如为光盘则of=/dev/cdrom
,同时u盘设备要根据系统识别的设备号进行确定。
4)格式化硬盘数据:
dd if=dev/zero of=/dev/sda bs=1k count=3000