首页/数据/备份与容灾速查/dd 磁盘克隆与镜像

dd 磁盘克隆与镜像

按块复制数据的底层工具:可整盘镜像、擦除、格式转换;参数写错会直接覆盖目标盘,属于高风险命令,执行前必须反复确认设备名。

备份与容灾速查数据更新于 2026-10-13

dd 是什么

dd 按块复制数据,不解析文件系统结构:整盘镜像、镜像还原、擦除介质、生成测试文件都是它的常见用途。它的特点是只认设备与块,不做任何确认提示,因此参数一旦写错就是不可逆的数据破坏,属于必须谨慎对待的高风险命令。

基本信息

用途整盘或分区镜像、镜像恢复、生成测试文件
关键参数if 输入、of 输出、bs 块大小、count 块数
进度显示status=progress(GNU coreutils 版 dd 支持)
数据落盘conv=fsync 在结束时强制同步,避免缓存未刷出

磁盘镜像与恢复

磁盘镜像与恢复
dd if=/dev/sda of=/backup/sda-$(date +%F).img bs=4M status=progress conv=fsync
# 恢复镜像到目标盘(危险操作,会覆盖目标盘全部数据)
# dd if=/backup/sda-2026-10-12.img of=/dev/sda bs=4M status=progress conv=fsync
# 只读采样前 1MB,用于查看分区表结构
# dd if=/dev/sda bs=512 count=2048 of=/tmp/mbr-sample.bin

常用参数

参数含义常用取值
if 与 of输入设备与输出设备写反会覆盖源盘,执行前反复确认
bs每次读写的块大小4M 兼顾速度与内存占用
count 与 skip复制的块数与起始偏移用于局部采样或分段恢复
status输出进度信息progress 适合大容量镜像
conv转换与同步行为fsync 保证结束时落盘

安全使用要点

  • 先确认设备名:插入外置盘后用 lsblk 核对容量与型号,避免凭记忆写 of
  • 运行中系统直接镜像属于崩溃一致快照,数据库场景应停写或先做存储快照
  • 镜像本身不含文件系统校验:恢复后要用对应工具做一致性检查
  • 大容量镜像耗时很长,建议后台执行并保留日志,避免终端断开中断任务
  • 坏盘抢救优先用 ddrescue:它会记录失败块位置并支持断点续跑
dd 不识别文件系统、不提示确认:of 写错设备即不可逆数据丢失。生产场景优先使用 ddrescue 或存储快照工具,并先在测试环境演练。
块大小影响速度:过小会频繁系统调用拖慢速度,过大则占用更多内存,机械盘与网络存储上常用 1M 到 4M 之间取值。

易错点

  • if 与 of 写反会把备份盘内容覆盖到生产盘
  • 对运行中的系统整盘 dd 得到的是崩溃一致性镜像,数据库场景需停写或使用快照
  • 镜像文件与源盘同盘存放:一次磁盘故障同时损失源数据与镜像
  • 用 dd 抢救故障盘会在遇到坏块时反复重试,反而加重介质损伤,应换用 ddrescue

数据来源与参考

  • man 1 dd(GNU coreutils)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌