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

相关推荐
Starry-sky(jing)1 分钟前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
电梯界知识分子9 分钟前
景德镇老房重新设计阶段规划楼梯与电梯,1.7m×1.6m空间装400kg观光电梯,棕色框架茶色玻璃适配中式装修
大数据·服务器·前端·网络·家用电梯
qeen8712 分钟前
【Linux】Ext2文件系统介绍
linux·服务器
古法老登瞎折腾13 分钟前
大数据智能运维实战(八):从调度任务追到计算引擎——补齐排查链路
java·大数据·运维·spring ai·mcp
zhongben123_14 分钟前
从0到1开发一款生鲜配送APP:核心技术难点与架构避坑指南
大数据·运维·人工智能·ios·架构·web app
FlightYe35 分钟前
视界原理之3D视频(三):解码和显示
android·linux·3d·ffmpeg·音视频·android runtime
学页官方37 分钟前
部署实战】教培系统私有化部署全流程:从云服务器到上线验收
运维·服务器
小嘉丶学长40 分钟前
Day08 · 字符串(二)
服务器·开发语言·python·学习·1024程序员节
时间售卖铺43 分钟前
MySQL 备份
运维·数据库·mysql·云原生
指艺1 小时前
VirtualBox安装fedora完成后重启,仍提示安装fedora
运维·服务器