dd 是 Linux 中一个强大的磁盘和文件操作工具,常用于数据复制、转换和备份。它以块为单位处理数据,适合低级别操作。以下是 dd 的详细使用指南:
dd if=<输入文件> of=<输出文件> [选项]
备份整个磁盘到镜像文件:
dd if=/dev/sdX of=/path/to/backup.img bs=4M status=progress
if=/dev/sdX:源磁盘(如 /dev/sda)。bs=4M:设置块大小为 4MB(提高速度)。status=progress:显示进度(仅限较新版本)。恢复镜像到磁盘:
dd if=/path/to/backup.img of=/dev/sdX bs=4M status=progress
dd if=/dev/sdX of=/dev/sdY bs=4M status=progress
/dev/sdX 完整克隆到 /dev/sdY(目标磁盘需相同或更大容量)。dd if=/dev/zero of=/path/to/file bs=1M count=100
dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
oflag=direct 绕过缓存,结果更真实)。dd if=/dev/zero of=/dev/sdX bs=4M status=progress
dd if=input.txt of=output.txt conv=ucase
conv=ucase)。dd if=/dev/sdX of=output.img skip=1000 bs=1M count=500
| 选项 | 作用 |
|---|---|
bs=BYTES |
设置读写块大小(如 4M)。 |
count=N |
复制 N 个块后停止。 |
skip=N |
跳过输入文件的前 N 个块。 |
seek=N |
跳过输出文件的前 N 个块。 |
conv=FLAGS |
转换选项(如 notrunc 不截断输出文件)。 |
oflag=FLAGS |
输出模式(如 direct 直接 I/O)。 |
dd 直接操作块设备,错误的 of= 参数可能导致数据丢失(如误选系统盘)。cmp 或 sha256sum 校验:
bash
sha256sum /dev/sdX backup.imgrsync, cat, pv。shred 或 scrub。bash
dd if=/dev/sdX | gzip > backup.img.gzbash
gunzip -c backup.img.gz | dd of=/dev/sdX通过合理使用 dd,你可以高效完成磁盘操作任务,但务必确认命令参数后再执行!