作用:

dd 是一个Unix和类Unix系统中的命令, 主要功能为转换和赋值文件。在Unix和类Unix系统上, 硬件的设备驱动(如硬盘) 和特殊设备文件(如/dev/zero, /dev/random) 就像普通文件一样, 出现在文件系统中, 只要在各自的驱动程序中实现了对应的功能, dd 也可以读取或者写入这些文件。 dd 也可以用在备份硬件的引导扇区, 获取一定数量的随机数据等等的一些任务。 dd 程序也可以再复制时处理数据。 例如转换字节序, 或在ASCII和EBXCDIC编码间转换。

用法:

dd 的命令行语句与其他的程序不同,因为它的命令选项格式为 选项=值, dd 默认从标准输入中读取,并写到标准输出中, 可以使用选择if (input file ) 和of (output file) 。

块的概念:

块是衡量一次读取,写入和转换字节的单位, 命令行选项可以为输入/读取(ibs) 和输出/写入(obs)指定一个不同的块大小, 选项会覆盖ibs 和obs 选项, 输入和输出的默认块大小为512字节(传统的磁盘块以及POSIX规定的块的大小) 复制的count选项。 读取的(skip)选项和 写入(seek)选项都是以块为单位的。 转换操作也瘦“转换块大小(cbs)”影响。
w表示2倍,b表示512倍,k表示1024倍,M表示1024 × 1024倍,G表示1024 × 1024 × 1024倍

用途:

*数据转换:dd 可以在文件、设备、分区和卷之间复制数据。数据可以从其中任何地方输入和输出;但输出到分区时有重要差异。此外在传输过程中,数据可以用conv 选项以适应介质。 如何最后一个块有意外长度,试图使用cp 复制整个磁盘可能会遗漏掉,dd 却可能成功。源文件和目标磁盘应具有相同的大小。
dd if =/dev/sr0 of=myCD.iso bs =2048 conv =noerror, sync // 从CD-ROM中创建ISO磁盘镜像
dd if =/dev/sda2 of =/dev/sdb2 bs=4096 conv=noerror //克隆一个分区到另一个
dd if =/dev/ad0 of =/dev/ad1 bs=1M conv noerror //克隆硬盘ad0到ad1 
noerror 如果发生错误,程序继续进行,  sync  填充每个块到指定字节
*备份和恢复主引导记录: 可以修复主引导记录。主引导记录可以转换到文件,或从总转移出来。
dd if =/dev/fd0 of =MBRboot.img bs=512 count=2 //要复制软盘的前两个扇区:
dd if =/dev/sda of =MBR.img bs =512 count =1 //创建整个x86主引导记录的镜像(包括MS-DOS分区表和MBR字节)
dd if = /dev/sda of =MBR_boot.img bs=446 count =1 //创建仅含主引导记录代码的镜像
*数据修改:dd可以直接修改数据
dd if=/dev/zero of=path/to/file bs=512 count=1 conv=notrunc //空字节覆盖文件的前512 字节,notrunc 表示不缩减输出文件, 如果存在文件,只修改相应字节的数据,如果不存在,则创建512字节的文件。当dd的输出文件为块设备时,无效果。
dd if=/dev/sdb2 of=partition.img bs=4096 counv=noerror //在不同的分区中复制磁盘分区到磁盘映像文件中。
*磁盘擦除: 出于安全方面考虑,有时需要擦除丢弃的磁盘。
dd if=dev/sda // 检查驱动器上是否有数据,并将其输出到标准输出
dd if=/dev/zero of =/dev/sda bs=4k //用零擦除磁盘
*驱动器性能基准测试: 对驱动器进行基准测试, 使用1024字节块分析连续系统读取和写入的性能:
dd if =/dev/zero bs=1024 count=1000000 of=file_1GB
dd if =file_1GB of=/dev/null bs=1024
*用随机数据生成文件
dd if=/dev/urandom of=myrandom bs=100 count=1 //使用内核随机数驱动,用100 个随机字节生成文件
*将文件转换为大写
dd if =filename of=filename1 conv=ucase
*创建任意大小的空文件
dd if=/dev/zero of=mytestfile.out bs=1 seek =1G  //创建1G的稀疏文件,或增加现有文件的大小。

参数:

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

cbs = bytes 一次转换bytes字节。

count = blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCII码。

conv = ebcdic 把ASCII码转换为EBCDIC码。

conv = ibm 把ASCII码转换为alternate EBCDIC码。

conv = blick 把变动位转换成固定字符。

conv = ublock 把固定们转换成变动位

conv = ucase 把字母由小写变为大写。

conv = lcase 把字母由大写变为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。

dd 命令详解的更多相关文章

  1. [转帖]dd命令详解

    dd命令详解 https://czmmiao.iteye.com/blog/1748748 之前一直对linux的命令很恐惧 现在发现 其实不是那么复杂 要仔细学习就可以了 比如 dd = disk ...

  2. 【转】dd命令详解及利用dd测试磁盘性能

    dd命令详解及利用dd测试磁盘性能   linux下dd命令详解 名称: dd 使用权限: 所有使用者 manpage 定义: convert and copy a file 使用方式: dd [op ...

  3. linux dd命令详解

    Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 ...

  4. dd命令详解-(转自dkcndk)

    Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换.名称: dd 使用权限: 所有使用者dd 这个指令在 ...

  5. dd命令详解

    一.dd命令的解释. dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512:c=1:k=1024:w=2 参数: 1. i ...

  6. linux命令总结dd命令详解

    一:dd命令 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: if=文件 ...

  7. linux dd命令详解及使用案例场景

    一.dd命令 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: 1. if ...

  8. linux的dd命令详解

    一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 块大小可以使用的计量表 参数注释: 1. if=文件名:输入文件名,缺省为标准输入stdin.即指定源文件.< ...

  9. linux下dd命令详解【转】

    本文转载自:http://www.cnblogs.com/licheng/articles/1116492.html  名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 ...

  10. linux下dd命令详解及应用实例

    名称: dd使用权限: 任何使用者dd 这个指令在 manual 里的定义是 convert and copy a file使用方式:dd [option]查看帮助说明dd --help或是info ...

随机推荐

  1. [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器

    部署地址:123.56.7.181 Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器 这个标题就比之前的"ECS服务器配置Web环境的全过程及参考资料&qu ...

  2. C++反汇编第二讲,不同作用域下的构造和析构的识别

    C++反汇编第二讲,不同作用域下的构造和析构的识别 目录大纲: 1.全局(静态)对象的识别,(全局静态全局一样的,都是编译期间检查,所以当做全局对象看即可.) 1.1 探究本质,理解构造和析构的生成, ...

  3. 翻译连载 | 附录 B: 谦虚的 Monad-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...

  4. FFmpeg之AVPacket

    花满楼原创 AVPacket,是压缩数据的结构体(解码前或编码后的结构体). 本文介绍FFmepg中常见结构AVPacekt,尽量用具体值来理解. 整个用于调试的代码可以这样写: #include & ...

  5. zzuli 2131 Can Win dinic+链式前向星(难点:抽象出网络模型+建边)

    2131: Can Win Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 431  Solved: 50 SubmitStatusWeb Board ...

  6. 修复mysql表

    1>用"repair table"方式修复语法:repair table 表名 [选项]选项如下:QUICK 用在数据表还没被修改的情况下,速度最快EXTENDED 试图去恢 ...

  7. JS 转换数字为大写

    function toUpper(n) { n = n+''; var unit = '十百千万'; var num = '一二三四五六七八九 '; var array = new Array(); ...

  8. 数据库 E-R模型

    数据库 E-R模型被定义被两种模型  "实体模型"  AND "关系模型" 1.1 实体模型 如图:这是一个"项目表" Project    ...

  9. HPUX 11.31 MC-SG SGeRAC配置

    HPUX 11.31 MC-SG SGeRAC配置 环境: 系统版本号 hp-unix 11.3v2 1503 serviceguard extension版本号 T1907 实施 1. 磁盘空间划分 ...

  10. jQuery->JavaScript一览表

    比较jQuery与JavaScript的不同功能实现 CSS选择器 元素选择 // jQuery $("li").css("color", "red& ...