Linux下的dd命令

简介

dd命令是Linux下的一个重要的磁盘操作命令,它的主要作用是备份和复制磁盘。
dd的语法是:

dd if=输入文件的名称 of=输出文件的名称 [参数=]
  • if=输入文件的名称:指定输入文件的名称,可以是文件、设备、目录等
  • of=输出文件的名称:指定输出文件的名称,可以是文件、设备、目录等
  • 参数=值:可选,用来控制dd的操作
    常用的参数有:
  • bs=字节数:一次读写的字节数,默认为512字节
  • count=块数:复制的块数
  • conv=转换格式:指定输入和输出的数据的转换格式,例如ascii,ebcdic等
  • ibs=输入字节数:每次读取的字节数
  • obs=输出字节数:每次输出的字节数
  • seek=块数:从输入文件开头跳过的块数
  • skip=块数:从输出文件开头跳过的块数
  • status=noxfer:不显示转换统计信息

举例

例如:

  • 备份磁盘:
dd if=/dev/sda of=/dev/sdb
  • 备份文件:
dd if=input.iso of=input.bak
  • 磁盘转磁盘(4M字节每次读写):
dd if=/dev/sda of=/dev/sdb bs=4M
  • 跳过输入文件的前100个块,从输出文件开始的第50个块开始写入:
dd if=input.iso of=input.bak skip=100 seek=50 
  • 磁盘转文件(磁盘的前1024个字节备份到文件):
dd if=/dev/sda of=disk.bak bs=1024 count=1

所以,dd命令是Linux下非常强大的备份和磁盘复制命令,要谨慎使用。

一些其他的使用场景

  1. 磁盘克隆:将一个磁盘的内容完全克隆到另一个磁盘,使用命令:dd if=/dev/sda of=/dev/sdb bs=64K
  2. 创建启动U盘:将ISO镜像写入U盘,使U盘变成启动盘,使用命令:dd if=系统镜像.iso of=/dev/sdb bs=64K
  3. 磁盘擦除:使用随机数据覆盖整个磁盘,彻底抹除磁盘数据,使用命令:dd if=/dev/urandom of=/dev/sdb bs=64K
  4. 文件固定长度截断:将文件截断到指定长度,使用命令:dd if=input.file of=output.file bs=64K count=10 这将input.file截断到10个块,每个块64K
  5. 磁盘分区表擦除:将磁盘分区表擦除,让磁盘回到未分区状态,使用命令:dd if=/dev/zero of=/dev/sdb bs=512 count=1 conv=notrunc
  6. 创建交换分区:在空磁盘上创建交换分区,使用命令:dd if=/dev/zero of=/dev/sdb1 bs=1024 count=40960 这将在sdb1上创建40G交换分区
  7. 文件内容替换:使用命令:dd if=input.file of=output.file bs=10 conv=notrunc,这会从输入文件input.file中读10个字节,并覆盖输出文件的前10个字节。可以用于隐藏文件内容。
  8. 测试磁盘速度:使用命令:dd if=/dev/sda of=/dev/null bs=64K count=10k,这会从磁盘读取10*1024个块,每个64K,并丢弃输出,可以测试磁盘读速度。
  9. 数据保存为二进制文件。echo “abc”|dd of=adc.bin

猜你喜欢

转载自blog.csdn.net/yikezhuixun/article/details/130635567