伟大的dd

语法:dd [选项]

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

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

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

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

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

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

cbs = byte 一次转换bytes字节。

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

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

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

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

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

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

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

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

conv = notrunc 不截短输出文件。

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

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

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

  1. 创建一个100M的空文件

dd if=/dev/zero of=hello.txt bs=100M count=1

=============================================

/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
/dev/zero,是一个输入设备,你可你用它来初始化文件。

/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
$ dd if=/dev/zero of=./test.txt bs=1k count=1
$ ls -l
total 4
-rw-r--r--     1 oracle    dba           1024 Jul 15 16:56 test.txt

eg:

$ find / -name access_log   2>/dev/null

例2:把net.i这个文件写入软盘中,并设定读/写缓冲区的数目。(注意:软盘中的内容会被完全覆盖掉)
$ddif=net.iof=/dev/fd0bs=16384 

例3:将文件sfile拷贝到文件dfile中。
$ddif=sfileof=dfile

第三步:启用这个swap交换分区文件:

swapon /swapfile

第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap交换分区文件:

/swapfile    swap    swap    default   0 0

3.销毁磁盘数据

dd if=/dev/urandom f=/dev/hda1

注意:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。

4.测试硬盘的读写速度

dd if=/dev/zero bs=1024 count=1000000 f=/root/1Gb.file    写速度

dd if=/root/1Gb.file bs=64k | dd f=/dev/null      读速度

通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。

5.确定硬盘的最佳块blocks大小:初始化硬盘

dd if=/dev/zero bs=1024 count=1000000 f=/root/1Gb.file    初始化硬盘

dd if=/dev/zero bs=2048 count=500000 f=/root/1Gb.file     初始化硬盘

dd if=/dev/zero bs=4096 count=250000 f=/root/1Gb.file     初始化硬盘

dd if=/dev/zero bs=8192 count=125000 f=/root/1Gb.file     初始化硬盘

通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。

6.修复硬盘:                 自初始化硬盘

dd if=/dev/sda f=/dev/sda  SCSI硬盘 或dd if=/dev/hda f=/dev/hda   IDE

当硬盘较长时间(一年以上)放置不使用后,磁盘上会产生magnetic flux point 电磁点现象,当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区即MBR(主引导程序446、硬盘分区表64、硬盘有效标识2字节)时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。并且这个过程是安全、高效的。

时间: 2024-10-07 02:06:57

伟大的dd的相关文章

dd 使用说明

使用dd来测试硬盘读写速度 dd只能提供一个大概的测试结果,而且是连续IO 而不是随机IO ,理论上文件规模越大,测试结果越准确. 读性能测试 # time dd  iflag=direct,nonblock  if=/dev/sda2 of=/dev/null bs=8k count=8388608 因为/dev/sda2是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读

自定义laravel函数dd()

dd()是laravel中一个帮助调试脚本的函数,可以打印php中所有类型的变量.它让变量显示的方式变得更加优雅,这也正是laravel框架的一大优点.首先看看dd()的源码,本文中laravel框架版本为5.1,(对应文件在laravel框架中的目录路径laravel/vendor/laravel/framework/src/Illuminate/Support/helpers.php) 1 function dd() 2 { 3 array_map(function ($x) { 4 (ne

多命令顺序执行,dd命令,管道|,grep,通配符

多命令顺序执行:命令1;命令2 命令之间没有逻辑关系 命令1&&命令2 命令1执行正确才执行命令2,命令1执行错误不会执行命令2 命令1||命令2 命令执行错误才执行命令2,命令1执行正确不会执行命令2 命令 && echo yes || echo no dd if=输入文件 of=输出文件 bs=字节数 count=个数 if=输入文件 指定源文件或源设备 of=输出文件 指定目标文件或目标设备 bs=字节数 指定一次输入/输出多少字节,即把这些字节看做一个数据块 cou

mac os x 下查看dd命令刻录U盘的进度

dd命令在Linux操作系统上运行,我们使用"killall -USR1 dd"命令即显示当前dd命令刻录的进度,但在OS X上面执行此命令,可能会导致dd进程中止: 维基百科对dd命令的介绍说:"向运行中的dd进程发送SIGINFO信号(Linux上为USR1)可以使它将I/O统计信息打印到标准错误一次,然后继续复制(注意在OS X上,信号可能导致进程终止)." 重点是SIGINFP信号,Linux上为使用"killall -USR1 dd"向

swap与dd命令使用详解

处理交换文件和分区 交换分区是系统RAM 的补充 基本设置包括: 创建交换分区或者文件 使用mkswap 写入特殊签名 在/etc/fstab 文件中添加适当的条目 使用swapon -a 挂载交换分区 启用:swapon swapon [OPTION]... [DEVICE] -a :激活所有的交换分区: -p PRIORITY :指定优先级 /etc/fstab:pri=value 禁用:swapoff [OPTION]... [DEVICE] [[email protected] ~]#

将yyyyMMdd,dd/MM/yyyy 类型字符串转换为datetime 类型 yyyy-MM-dd C#

DateTime ConvertDate = DateTime.ParseExact("20140504", "yyyyMMdd", null, System.Globalization.DateTimeStyles.AllowWhiteSpaces).ToString("yyyy-MM-dd"); DateTime.ParseExact("18/05/2014", "dd/MM/yyyy", System

Linux入门之磁盘管理(5)dd命令使用

在Linux中,经常需要一些数据读写等测试,还有文件以及其它数据的备份迁移,一般使用cp命令可以解决一部分,但是其无法进行控制数据的流向及动作,这时就可以使用dd命令,来进行灵活的数据流操作. dd 命令用法: dd  if=/PATH/FROM/SRC  of=/PATH/TO/DEST #解析:if表示inputfile,表示从if所指的文件读取数据流,然后输出到of所指的文件 详细解析: bs=# :block size,复制单元大小,默认不指定为byte,可以指定M count=#:  

mount挂载,dd 工具,配置配额系统,RAID阵列,逻辑卷管理器LVM

mount mount挂载 vim /etc/fstab 将常用的挂载的设备写入系统表中 文件挂载配置文件 /etc/fstab /etc/fstab每行定义一个要挂载的文件系统: 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序 要挂载的设备或伪文件系统: 设备文件.LABEL(LABEL="").UUID(UUID="").伪文件系统名称(proc, sysfs) 挂载选项:defaults 转储频率:0:不做备份 每天转储 每隔一天

磁盘管理之挂载扩容交换分区及其dd命令

一.磁盘挂载回忆小结   1.挂载磁盘可用的方法 1)设备名进行挂载    2)卷标挂载    3)UUID挂载(此方法常用,UUID为随机生成,唯一性确保挂载成功) 2.文件挂载配置文件详解 /etc/fstab每行代表的意义,如下: 1)挂载的设备或伪文件系统    2)挂载点    3)文件系统类型    4)挂载选项    5)转储频率    6)自检次序 演示: tmpfs                   /dev/shm                tmpfs   defaul

linux基础学习-第十五天 磁盘管理(SWAP、dd、quota、RAID、LVM)

2016-08-26: 授课内容: 1.SWAP交换分区的创建 2.dd命令的使用 3.设定文件系统配额 4.设定和管理软RAID设备 5.配置逻辑卷 1.swap (1)SWAP分区:模拟内存,当物理内存不足时,进程需要内存资源是,内存会把一部分没有在用的进程分页挪到硬盘的模拟内存中,腾出空间被现在需要使用内存资源的进程 即其作用是可以允许内存过载使用,windows系统也有类似的机制,由于虚拟内存空间是建立在硬盘之上,所以其速度和性能会大打折扣,所以适合临时使用 (2)创建SWAP分区: 相