dd 命令详解
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到ad1noerror 如果发生错误,程序继续进行, 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_1GBdd 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 命令详解的更多相关文章
- [转帖]dd命令详解
dd命令详解 https://czmmiao.iteye.com/blog/1748748 之前一直对linux的命令很恐惧 现在发现 其实不是那么复杂 要仔细学习就可以了 比如 dd = disk ...
- 【转】dd命令详解及利用dd测试磁盘性能
dd命令详解及利用dd测试磁盘性能 linux下dd命令详解 名称: dd 使用权限: 所有使用者 manpage 定义: convert and copy a file 使用方式: dd [op ...
- linux dd命令详解
Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 ...
- dd命令详解-(转自dkcndk)
Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换.名称: dd 使用权限: 所有使用者dd 这个指令在 ...
- dd命令详解
一.dd命令的解释. dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512:c=1:k=1024:w=2 参数: 1. i ...
- linux命令总结dd命令详解
一:dd命令 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: if=文件 ...
- linux dd命令详解及使用案例场景
一.dd命令 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: 1. if ...
- linux的dd命令详解
一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 块大小可以使用的计量表 参数注释: 1. if=文件名:输入文件名,缺省为标准输入stdin.即指定源文件.< ...
- linux下dd命令详解【转】
本文转载自:http://www.cnblogs.com/licheng/articles/1116492.html 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 ...
- linux下dd命令详解及应用实例
名称: dd使用权限: 任何使用者dd 这个指令在 manual 里的定义是 convert and copy a file使用方式:dd [option]查看帮助说明dd --help或是info ...
随机推荐
- 外观模式(Facade)
外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合 ...
- #centos7 设置bond、bridge、vlan
#centos7 设置bond.bridge.vlan #centos7 设置bond.bridge.vlan # CentOS7中 nmcli命令由NetworkManager提供 # 可以用于设置 ...
- .net程序员做的第一个安卓APP
我从毕业之后一直做的是ASP.NET,从毕业到现在都已经五六个年头了.一个事物接触久了就会慢慢没有了新鲜感热情也褪去的差不多了,我又是对新事物比较感兴趣的,虽说Android早就不算什么新事物,当对于 ...
- 《Linux命令行与shell脚本编程大全》第二十五章 创建与数据库、web及电子邮件相关的脚本
25.1 MySQL数据库 /* 但是我在虚拟机上安装的时候居然不提示输入密码. 这个可以参考http://blog.csdn.net/sinat_21302587/article/details/7 ...
- 预防onion比特币勒索病毒,如何快速关闭135,137,138,139,445端口
预防onion比特币勒索病毒,如何快速关闭135,137,138,139,445等端口 如果这种网络端口关闭方法行不通,可以尝试一种新的关闭网络端口方法(比较繁琐)见106楼,补丁安装教程见126 ...
- 在网站开发中经常用到的javaScript技术
1>屏蔽功能类 1.1 屏蔽键盘所有键<script language="javascript"><!--function document.onkeyd ...
- [Bootstrap 源码]——bootstrap源码之初始化
bootstrap源码之初始化 我们先来分析normalize.less编译后的源码,我们知道normalize.css是一个专门将不同浏览器的默认css特性设置为统一效果的css库,它和reset. ...
- 参加完Rocket MQ Meetup深圳站,回顾和想法
最近一段时间才开始关注云栖社区的公众号,在两周前看到要在深圳科兴科学园办一场Rocket MQ的Meetup.因为从来没有参加过这种线下活动,而且对Rocket MQ比较感兴趣,所以就立即报名参加. ...
- selenium webdriver使用click一直失效问题的几种解决方法
想要爬取动态网页,很莫名的click失效.被这个问题困扰了很久,基本上把网上提到的所有方法试遍了,最终终于有个方法成功了,在这里总结一下. 这是我想要点击的网页,初始时实在0.5km上,它的class ...
- python爬虫(五)_urllib2:Get请求和Post请求
本篇将介绍urllib2的Get和Post方法,更多内容请参考:python学习指南 urllib2默认只支持HTTP/HTTPS的GET和POST方法 urllib.urlencode() urll ...