当前位置: 首页 > news >正文

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

http://www.jsqmd.com/news/205907/

相关文章:

  • _springboot基于vue的工厂车间管理系统(11646)
  • 一边是35岁危机,一边是AI高薪。普通程序员如何选对路、不掉队?
  • C# 里弹出“确定”“取消”对话框
  • springboot图书电子商务网站的设计与实现(11647)
  • SEO插件评分全绿但排名差丨3个真正的问题可能在这
  • 限时公开!6款AI论文神器实测,查重率低于5%!
  • 2026届校园招聘大战开启!阿里、京东、字节等大厂争抢哪类人才?揭秘校招最新趋势!
  • springboot社区医院管理系统(11648)
  • hadoop|贪心
  • 爆肝拆解TradingAgents项目!LLM在AI投研中到底扮演什么角色?小白程序员也能懂的金融AI实战
  • “【震惊】57%企业已投产AI Agent!LangChain最新报告:Coding Agents统治程序员日常,这些坑千万别踩!“
  • Linux---Tomcat服务器Varnish代理服务器
  • EasyGBS打造智能视频监控新体系
  • _基于springboot的二手车交易系统(11649)
  • 爆肝程序员必看!RAG 2.0实战全攻略:从零构建企业级AI原生投诉系统,小白也能秒变AI架构师!
  • EasyGBS重塑商业场所视频监控管理新模式
  • AI圈炸锅!DeepSeek-OCR黑科技:压缩10倍长文本,成本直降90%!VTC技术让大模型“过目不忘“,中科院发布权威评测
  • ue用tick通信执行方法 mcp铺垫
  • 电加热烘箱功能升级,2025年有实力的优质源头生产厂家推荐 - 品牌推荐大师
  • 家庭聚会喝什么酒?适配全年龄层的 8款优选酒清单 - 资讯焦点
  • 【干货】大模型记忆革命:HGMEM技术让AI推理能力提升73%,开发者必看
  • 2026绿化趋势分析,苗木批发基地的成长轨迹,白蜡/红叶石楠/青叶复叶槭/樱花/红叶李,苗木批发基地批发商排行榜 - 品牌推荐师
  • 震惊!AI大模型不是越大越好!ICML 2025最新研究:中小模型+海量文档=性能开挂,小白也能懂的省钱攻略
  • 留学党必看!英国留学中介TOP榜,精准匹配优质机构 - 留学机构评审官
  • Dify二开系列:从LightRAG到多模态RAG,全能化进化之路
  • 保姆级教程:Spring AI RAG知识库构建,让你的AI助手“满腹经纶“!
  • 基于Vue的民俗文化管理系统设计与达成04j02(程序 + 源码 + 数据库 + 调试部署 + 制作环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
  • 【热评】“LLM是死路“!Meta前AI首席杨立昆创业新方向,AI程序员必看的技术革命
  • 上海留学中介榜单:口碑好之选,助力留学之路稳妥前行 - 留学机构评审官
  • 上海留学中介实锤榜!录取率高,助学子申请海外名校 - 留学机构评审官