Linux 的 dd 命令

Linux 的 dd 命令是一个功能强大的数据转换和复制工具,主要用于低级别的数据操作。以下是关于 dd 命令的详细扩展说明:

基本语法

复制代码
dd if=<输入文件> of=<输出文件> [选项]

主要功能

  1. 磁盘/分区克隆

    • 示例:将 /dev/sda 完整克隆到 /dev/sdb

      复制代码
      dd if=/dev/sda of=/dev/sdb bs=4M status=progress
    • 参数说明:

      • bs:设置块大小(默认512字节)
      • count:指定复制的块数
      • status=progress:显示进度信息
  2. 创建磁盘映像

    • 创建系统备份:

      复制代码
      dd if=/dev/sda of=backup.img bs=4M conv=sync,noerror
    • 恢复备份:

      复制代码
      dd if=backup.img of=/dev/sda bs=4M
  3. 数据擦除

    • 安全擦除磁盘:

      复制代码
      dd if=/dev/zero of=/dev/sdX bs=1M
    • 更安全的随机数据擦除:

      复制代码
      dd if=/dev/urandom of=/dev/sdX bs=1M
  4. 文件转换

    • 大小写转换:

      复制代码
      dd if=input.txt of=output.txt conv=lcase
    • 编码转换:

      复制代码
      dd if=input.txt of=output.txt conv=ebcdic

高级用法

  1. 网络传输

    • 通过netcat传输磁盘映像:

      复制代码
      dd if=/dev/sda bs=4M | nc <目标IP> 1234

      接收端:

      复制代码
      nc -l 1234 | dd of=/dev/sdb bs=4M
  2. 测试磁盘性能

    • 写入测试:

      复制代码
      dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
    • 读取测试:

      复制代码
      dd if=testfile of=/dev/null bs=1G count=1 iflag=direct
  3. 创建虚拟文件系统

    • 创建1GB大小的空文件:

      复制代码
      dd if=/dev/zero of=virtual_disk.img bs=1G count=1

注意事项

  1. 危险操作警告 :错误使用可能造成数据丢失,特别是在操作原始设备时(如/dev/sda)

  2. 性能优化:

    • 适当增大bs参数可提高性能(通常4M-64M为宜)
    • 使用oflag=direct绕过缓存进行真实性能测试
  3. 进度监控:

    • 较新版本可使用status=progress

    • 旧版本可通过发送USR1信号查看进度:

      复制代码
      kill -USR1 <dd进程PID>

常见应用场景

  1. 系统迁移和备份
  2. 创建可启动USB设备
  3. 数据恢复和取证
  4. 磁盘性能基准测试
  5. 安全数据销毁

dd命令因其底层操作特性,在系统管理、数据恢复和安全领域有着不可替代的作用,但使用时需格外谨慎。

相关推荐
ai小陈13 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
Ivanqhz14 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
FPGA小徐15 小时前
PA1 基础设施(2)深度解析:NEMU 中 ITRACE、MTRACE、FTRACE、IRINGBUF、ETRACE、DIFFTEST 全解析
java·服务器·网络
有毒的教程15 小时前
VMware仅主机模式:物理机 ↔ 虚拟机 文件共享
运维
知行EDI16 小时前
知行之桥 MaBang 端口使用指南——Create Order 订单创建篇
java·服务器·数据库
成旭先生16 小时前
【2026】企业信息模糊查询 API 实战:名称、注册号、统一社会信用代码、企业类型与法人一次查全
服务器·数据库·数据服务
殷色玫瑰17 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
山岚的运维笔记18 小时前
ComfyUI NVIDIA安装教程:官方便携版下载+run_nvidia_gpu.bat启动,8G显存Windows实操
运维·服务器·windows·笔记·prompt·aigc·comfyui
海宇大数据18 小时前
零信任架构实战:基于海宇活体识别V步骤1构建自动化远程公证会话初始化网关
运维·人工智能·架构·自动化
꯭自꯭闭꯭18 小时前
DM7主备升级方案
linux·服务器·数据库