news 2026/4/15 17:42:14

Linux中dd命令详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux中dd命令详解

Linux 中 dd 命令详解(全面版)

dd是 Linux 中一个非常强大且危险的低级数据复制和转换工具,全称“data duplicator”“disk destroyer”(因误操作可毁盘而得外号)。它以块为单位直接读写设备或文件,绕过文件系统缓存,适合备份、克隆磁盘、擦除数据、制作启动盘等场景。

基本语法
dd [参数] if=输入源 of=输出目标 [其他选项]
  • if(input file):输入文件或设备(默认标准输入)。
  • of(output file):输出文件或设备(默认标准输出)。
  • bs(block size):每次读写的块大小(单位:字节)。
  • count:复制的块数量。
  • skip:从输入跳过指定块数。
  • seek:在输出跳过指定块数。
  • conv:转换选项(如 notrunc、sync)。

注意:dd 默认不显示进度,使用时需谨慎,写错 of 参数可能直接毁坏系统磁盘

常用参数详解
参数说明示例值
if=FILE输入文件或设备if=/dev/sda
of=FILE输出文件或设备of=/dev/sdb
bs=BYTES块大小(同时设置 ibs 和 obs),推荐使用 4K、1M 等bs=4M
ibs=BYTES输入块大小ibs=512
obs=BYTES输出块大小obs=4M
count=N复制 N 个块count=100
skip=N从输入开头跳过 N 个块skip=1
seek=N在输出开头跳过 N 个块(不覆盖前 N 块)seek=1024
conv=OPTION转换选项,多个用逗号分隔conv=notrunc,noerror,sync
status=LEVEL显示进度(Linux 现代版本支持)status=progress

conv 常见选项

  • notrunc:不截断输出文件(默认会截断)。
  • noerror:出错时继续执行(忽略读错误)。
  • sync:每个块不足时用 NULL 填充(配合 noerror 防止数据错位)。
  • fdatasync:写完后同步数据到磁盘。
  • sparse:尝试创建稀疏文件(节省空间)。
经典使用场景与示例
  1. 完整克隆硬盘(磁盘到磁盘)

    sudoddif=/dev/sdaof=/dev/sdbbs=64Kconv=noerror,syncstatus=progress
    • 将整个 sda 磁盘克隆到 sdb(包括分区表)。
    • 极度危险:确认 of 设备正确!
  2. 备份整个磁盘到镜像文件

    sudoddif=/dev/sdaof=/backup/sda-full.imgbs=4Mstatus=progress
  3. 从镜像文件恢复到磁盘

    sudoddif=/backup/sda-full.imgof=/dev/sdbbs=4Mstatus=progress
  4. 制作 Linux USB 启动盘(推荐方式)

    sudoddif=ubuntu-24.04-desktop-amd64.isoof=/dev/sdcbs=4Mstatus=progress&&sync
    • 注意:of= 是整个设备(如 /dev/sdc),不是分区(如 /dev/sdc1)。
    • 完成后执行 sync 确保数据刷盘。
  5. 备份 MBR(主引导记录,前 446 字节)

    sudoddif=/dev/sdaof=mbr.binbs=446count=1
  6. 备份整个分区表 + MBR(前 512 字节)

    sudoddif=/dev/sdaof=partition-table.binbs=512count=1
  7. 擦除磁盘(安全删除数据)

    • 快速清零(不彻底,但快):
      sudoddif=/dev/zeroof=/dev/sdabs=4Mstatus=progress
    • 彻底擦除(用随机数据,防恢复):
      sudoddif=/dev/urandomof=/dev/sdabs=4Mstatus=progress
  8. 只复制指定大小的数据

    sudoddif=/dev/sdaof=first-10GB.imgbs=1Gcount=10
  9. 跳过开头部分复制(例如跳过 MBR)

    sudoddif=/dev/sdaof=data-part.imgbs=512skip=1
  10. 测试磁盘读写速度

    • 写速度:
      ddif=/dev/zeroof=testfilebs=1Gcount=1oflag=dsync
    • 读速度(需先清缓存):
      sudosh-c"echo 3 > /proc/sys/vm/drop_caches"ddif=testfileof=/dev/nullbs=1G
实用技巧与注意事项
  • 显示进度:现代 dd(GNU coreutils 8.24+)支持status=progress,强烈推荐加。
  • 加速技巧
    • 使用较大 bs(如 4M、64M),但不要过大(内存不足会慢)。
    • 添加oflag=direct绕过缓存(写操作更快)。
  • 安全建议
    • 先用lsblkfdisk -l确认设备名。
    • 使用pv工具显示更美观的进度条:
      sudoaptinstallpvsudoddif=/dev/sda|pv|ddof=/dev/sdbbs=4M
    • 或直接用pv
      sudopv/dev/sda>/dev/sdb
  • 中断恢复:dd 被 Ctrl+C 中断后,可用kill -USR1 $(pidof dd)发送信号显示当前进度。
  • 常见错误
    • “No space left on device”:输出磁盘空间不足。
    • “Input/output error”:硬件故障,加conv=noerror可继续。
替代工具推荐
  • 磁盘克隆ddrescue(更智能,擅长坏道磁盘恢复)。
  • 启动盘制作cp、Rufus(Windows)、Etcher(图形化)。
  • 快速复制rsynccp(文件级更快)。

总结:dd 是 Linux 系统管理员的瑞士军刀,但“用得好是神器,用错毁全盘”。新手请先在虚拟机或非重要设备练习,并三思而后 dd

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 18:44:36

AI圈炸锅了!CMU研究揭示:小模型+大数据=大模型效果?成本直接砍半!小白程序员也能玩转!

在检索增强生成中,扩大生成模型规模往往能提升准确率,但也会显著抬高推理成本与部署门槛。CMU 团队在固定提示模板、上下文组织方式与证据预算,并保持检索与解码设置不变的前提下,系统比较了生成模型规模与检索语料规模的联合效应…

作者头像 李华
网站建设 2026/4/15 12:27:12

闲鱼/转转 自动捡漏机器人 2.0:引入 OCR 文字识别,过滤“传家宝”和“仅面交”

😫 前言:为什么 1.0 版本的爬虫不管用了? 1.0 版本的爬虫逻辑很简单:搜索关键词 -> 价格低于阈值 -> 报警。 但现在的卖家越来越“鸡贼”: 文不对题:标题写得好听,关键瑕疵(屏幕碎、ID锁)全写在图片里(甚至手写在纸上)。 地域歧视:价格极低,但图片里写着“…

作者头像 李华
网站建设 2026/4/13 5:36:53

AI 技术在CRM 系统中的应用

AI 技术已经从 CRM 系统(客户关系管理)的“插件”进化为了其核心引擎。现代 CRM 不再只是一个存储客户资料的静态数据库,而是一个能够主动思考、预测并执行任务的“智能助手”。以下是 AI 技术在CRM 系统中的核心应用场景:1. 销售…

作者头像 李华
网站建设 2026/4/12 17:12:06

AVENTICS 5610141310控制器

AVENTICS 5610141310 是一款气动元件,通常用于工业自动化系统中的气动控制。该产品属于 AVENTICS(现为 Emerson 自动化解决方案的一部分)的系列产品,专为高效、可靠的气动应用设计。主要特点类型:气动阀或气动控制元件…

作者头像 李华