dd命令的使用简介

dd命令: convert and copy a file
 用法:
  dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
   bs=#: block size, 复制单元大小
   count=#:复制多少个bs
   of=file 写到所命名的文件而不是到标准输出
   if=file 从所命名文件读取而不是从标准输入
   bs=size 指定块大小(既是ibs也是obs)
   ibs=size 一次读size个byte
   obs=size 一次写size个byte
   cbs=size 一次转化size个byte
   skip=blocks 从开头忽略blocks个ibs大小的块
   seek=blocks 从开头忽略blocks个obs大小的块
   count=n 只拷贝n个记录
  用指定的参数转换文件
   conv=conversion[,conversion...]
   转换参数:
    ascii 转换 EBCDIC 为 ASCII
    ebcdic 转换 ASCII 为 EBCDIC
    block 转换一行数据为长度为 cbs 的记录,不足部分用空格填充。
    unblock 替代cbs长度的每一行尾的空格为新行
    lcase 把大写字符转换为小写字符
    ucase 把小写字符转换为大写字符
    nocreat 不创建输出文件
    noerror 出错时不停止
    notrunc 不截断输出文件
    sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐  
 备份:
  dd if=/dev/sdx of=/dev/sdy
   将本地的/dev/sdx整盘备份到/dev/sdy
  dd if=/dev/sdx of=/path/to/image
   将/dev/sdx全盘数据备份到指定路径的image文件
  dd if=/dev/sdx | gzip >/path/to/image.gz
   备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
 恢复:
  dd if=/path/to/image of=/dev/sdx
   将备份文件恢复到指定盘
  gzip -dc /path/to/image.gz | dd of=/dev/sdx
   将压缩的备份文件恢复到指定盘
 拷贝内存资料到硬盘
  dd if=/dev/mem of=/root/mem.bin bs=1024
   将内存里的数据拷贝到root目录下的mem.bin文件
 从光盘拷贝iso镜像
  dd if=/dev/cdrom of=/root/cd.iso
   拷贝光盘数据到root文件夹下,并保存为cd.iso文件
 销毁磁盘数据
  dd if=/dev/urandom of=/dev/sda1
   利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/ sda1将无法挂载,创建和拷贝操作无法执行。
 得到最恰当的block size
  dd if=/dev/zero bs=1024 count=1000000
   of=/root/1Gb.file
  dd if=/dev/zero bs=2048 count=500000
   of=/root/1Gb.file
  dd if=/dev/zero bs=4096 count=250000
   of=/root/1Gb.file
 通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小
 测试硬盘读写速度
  dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
  dd if=/root/1Gb.file bs=64k | dd of=/dev/null
  通过上两个命令输出的执行时间,可以计算出测试硬盘的写/读/速度
 修复硬盘
  dd if=/dev/sda of=/dev/sda
   当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生,且这个过程是安全高效的。
 示例:
  1.备份MBR:

   [[email protected] ~]#dd if=/dev/sda1 of=/tmp/mbr.bak bs=512
   count=11+0 records in
   1+0 records out
   512 bytes (512 B) copied, 0.000160395 s, 3.2 MB/s

2.有一个大于2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?

   [[email protected] ~]#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
   128+0 records in
   128+0 records out
   128 bytes (128 B) copied, 0.000421017 s, 304 kB/s

  
  3.创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

   [[email protected] ~]#dd if=/dev/zero of=test bs=1M count=2048
   2048+0 records in
   2048+0 records out
   2147483648 bytes (2.1 GB) copied, 121.521 s, 17.7 MB/s
   [[email protected] ~]#mkfs.ext4 -b 2048 -L ‘TEST‘ -m 1 test
   mke2fs 1.41.12 (17-May-2010)
   test is not a block special device.
   Proceed anyway? (y,n) y
   Filesystem label=TEST
   OS type: Linux
   Block size=2048 (log=1)
   Fragment size=2048 (log=1)
   Stride=0 blocks, Stripe width=0 blocks
   131072 inodes, 1048576 blocks
   10485 blocks (1.00%) reserved for the super user
   First data block=0
   Maximum filesystem blocks=537919488
   64 block groups
   16384 blocks per group, 16384 fragments per group
   2048 inodes per group
   Superblock backups stored on blocks:
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
   Writing inode tables: done                           
   Creating journal (32768 blocks): done
   Writing superblocks and filesystem accounting information: done
   This filesystem will be automatically checked every 35 mounts or
   180 days, whichever comes first.  Use tune2fs -c or -i to override.
   [[email protected] ~]#tune2fs -o acl test
   tune2fs 1.41.12 (17-May-2010)
   [[email protected] ~]#echo ‘/root/test /mnt/test  ext4  defaults  0 0‘ >> /etc/fstab
   [[email protected] ~]#echo ‘/root/test /mnt/test  ext4  defaults,loop  0 0‘ >> /etc/fstab
   [[email protected] ~]#mount -a
时间: 2024-10-16 16:04:32

dd命令的使用简介的相关文章

【转】linux 中dd命令使用详解

原文网址:http://xiaozhuang.blog.51cto.com/4396589/850657 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xiaozhuang.blog.51cto.com/4396589/850657 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果你想要在线看 manual, 可以试试:

Linux 中用 dd 命令来测试硬盘读写速度

https://blog.51cto.com/moerjinrong/2286323 Linux 中用 dd 命令来测试硬盘读写速度dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. dd 命令通用语法格式如下: dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks 1 命令简介 1.1 主要选项 指定数字的地

Ubuntu部分命令的使用简介

1. lsusb #查看系统中的usb设备 lsusb –v  #查看详细的usb设备信息 2.ubuntu mount u盘 第一步:查看U盘信息 sudo fdisk -l 得到类似下面这样的信息 Disk /dev/sdb: 8027 MB, 8027897856 bytes 14 heads, 22 sectors/track, 50907 cylinders Units = cylinders of 308 * 512 = 157696 bytes Device Boot Start

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] ~]#

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=#:  

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

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

Linux DD命令

if =输入文件(或设备名称). ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数. obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数. cbs = bytes 一次转换bytes字节. conv = ASCII 把EBCDIC码转换为ASCII码. conv = ibm 把ASCII码转换为alternate EBCDIC码. conv = ublock 把固定们转换成变动位 conv = lcase 把字母由大写变为小写. conv = swab 交

linux dd 命令详解

1 磁盘管理 1.1 dd 1.1.1 功能说明 读取,转换并输出数据. 1.1.2 语法 dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][--help][--version] 1.1.3 补充说明 dd可从标