dd笔记

遇到dd这个命令的次数已经不是一次两次了,曾经用dd命令创建一个固定大小的文件,也查看过dd命令的手册,但确实没有深入认识这个命令,这个博客目的在于进一步认识这个命令以及它的其他应用。

Why DD?

dd名字可能来自于IBM的一种语言JCL, 意为”Data Description”。另一种解释是“cc”, 意为”convert and copy”,但因为cc已经被gcc编译器占用,所以选择了dd。

用途

dd命令使用选项的格式跟其他的命令不太相同,采用的是”选项=值”的形式。如果单纯讲解dd语法,难免枯燥,下面结合dd的用途来讲解。

  1. 从CD-ROM中创建ISO磁盘映像。
    dd if=/dev/sr0 of=myCD.iso bs=2048 conv=noerror,sync
    
  2. 备份/回复MBR
    # 复制软盘前两个扇区
    dd if=/dev/fd0 of=MBRboot.img bs=512 count=2
    # 创建整个x86主引导记录的镜像
    dd if=/dev/sda of=MBR.img bs=512 count=1
    
  3. 修改数据
    # 用空字节覆盖文件的前512字节
    dd if=/dev/zero of=/path/to/file bs=512 count=1 conv=notrunc
    
  4. 磁盘擦除
    dd if=/dev/zero of=/dev/sda bs=4k
    
  5. 驱动器性能基准测试
    dd if=/dev/zero bs=1024 count=1000000 of=file_1GB
    dd if=file_1GB of=/dev/null bs=1024
    
  6. 用随机数据生成文件
    dd if=/dev/urandom of=myrandom bs=100 count=1
    
  7. 将文件内容转为upper case
    dd if=filename of=filename1 conv=ucase
    
  8. 创建任意大小的空文件
    dd if=/dev/zero of=mytestfile.out bs=1 count=0 seek=1G
    

参考

dd (Unix)

Table of Contents