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

相关推荐
fengyehongWorld几秒前
Linux 终端快捷键
linux·运维
hyf32663344 分钟前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
哎呦喂我去去去1 小时前
C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
linux·windows·c#
为自己_带盐1 小时前
安敢越雷池一步?浅尝雷池WAF社区版
运维·web安全
NiceCloud喜云2 小时前
海外云服务器怎么选?适用场景、价格和避坑经验总结
运维·服务器
easy_coder2 小时前
Linux LVM 知识文档
linux·运维
小小的木头人3 小时前
Ubuntu 使用 udev + systemd + UUID 实现 USB 硬盘自动挂载
linux·运维·ubuntu
布鲁飞丝4 小时前
彩笔运维勇闯机器学习--cpu与qps的线性关系
运维·人工智能·机器学习
kaoa0004 小时前
Linux入门攻坚——84、网络虚拟化技术-1
linux·运维·服务器
RisunJan4 小时前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全