【Linux系列】dd 命令的深度解析与应用实践
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
- kwan 的解忧杂货铺:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
- 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
- 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
- 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
- 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
- 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
- dd 命令概述
- 命令起源与定位
- 基本命令格式
- 核心参数详解
- 输入输出控制
- 数据转换选项
- 实用场景示例
- 1. 磁盘/分区备份与恢复
- 2. 制作可启动 USB
- 3. 磁盘性能测试
- 4. 安全数据擦除
- 高级应用技巧
- 网络传输数据
- 实时压缩备份
- 精确恢复分区表
- 风险与注意事项
- 性能优化策略
- 替代方案比较
- 典型问题解决
- 1. 处理坏道磁盘
- 2. 提取文件片段
- 3. 修改二进制文件
dd 命令是 Linux 系统中一个功能强大且用途广泛的命令行工具,其名称来源于"Data Duplicator"(数据复制器)。作为系统管理员和数据恢复专家的"瑞士军刀",dd 命令能够以原始方式处理数据,完成从简单文件复制到复杂磁盘操作的各类任务。
dd 命令概述
命令起源与定位
dd 命令最早出现在 UNIX 操作系统中,后被移植到 Linux 平台。它不同于普通的文件复制命令(如 cp),dd 以底层块设备的方式操作数据,可以精确控制数据流的每一个细节。这种特性使其成为:
- 磁盘克隆与备份的理想工具
- 数据恢复过程中的关键利器
- 性能测试与基准测量的有效手段
- 低级文件操作的灵活解决方案
基本命令格式
dd 命令的基本语法结构为:
dd if=<输入文件> of=<输出文件> [选项参数]
其中:
if
(input file):指定输入源,可以是设备文件或普通文件of
(output file):指定输出目标,同样可以是设备或文件- 选项参数:控制数据传输的各种特性
核心参数详解
输入输出控制
参数 | 说明 | 示例 |
---|---|---|
if | 输入文件 | if=/dev/sda |
of | 输出文件 | of=backup.img |
bs | 块大小 | bs=4M |
count | 复制块数 | count=1024 |
skip | 跳过输入开始的块数 | skip=10 |
seek | 跳过输出开始的块数 | seek=10 |
数据转换选项
参数 | 功能 | 典型应用 |
---|---|---|
conv | 转换选项 | conv=notrunc,noerror |
status | 进度显示 | status=progress |
实用场景示例
1. 磁盘/分区备份与恢复
创建磁盘镜像:
dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
此命令将整个 sda 磁盘备份为镜像文件,bs 参数设置块大小提高效率,status 显示进度。
恢复磁盘镜像:
dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
注意:此操作会覆盖目标磁盘所有数据!
2. 制作可启动 USB
dd if=ubuntu.iso of=/dev/sdb bs=4M conv=fsync status=progress
将 ISO 镜像直接写入 USB 设备(sdb),制作启动盘。
3. 磁盘性能测试
dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
测试写入速度,oflag=direct 绕过缓存获取真实磁盘性能。
4. 安全数据擦除
dd if=/dev/urandom of=/dev/sdX bs=1M status=progress
用随机数据覆盖整个设备,实现安全擦除。
高级应用技巧
网络传输数据
结合 netcat 实现远程磁盘克隆:
接收端:
nc -l 8888 | dd of=/dev/sdb
发送端:
dd if=/dev/sda | nc receiver_ip 8888
实时压缩备份
dd if=/dev/sda | gzip -c | split -b 2G - backup.img.gz.
创建压缩分卷备份,适合大磁盘备份到多个小文件。
精确恢复分区表
dd if=/dev/sda of=ptable.bak bs=512 count=1
备份 MBR 分区表(前 512 字节)。
dd if=ptable.bak of=/dev/sda bs=512 count=1
恢复分区表而不影响分区数据。
风险与注意事项
- 目标设备确认:错误的 of 参数可能导致数据灾难性丢失
- 权限要求:通常需要 root 权限操作设备文件
- 性能影响:大容量磁盘操作可能耗时较长
- 资源消耗:大量 I/O 操作可能影响系统性能
安全操作建议:
- 操作前使用
lsblk
确认设备标识 - 先在测试环境验证命令
- 考虑使用
conv=noerror,sync
处理坏块 - 对关键数据提前做好备份
性能优化策略
- 块大小调整:根据硬件特性优化 bs 参数(通常 4M-8M 较佳)
- 并行处理:结合 pv 工具监控进度:
dd if=/dev/sda | pv -s $(blockdev --getsize64 /dev/sda) | dd of=/dev/sdb
- 绕过缓存:对性能测试使用 oflag=direct
- 限速控制:通过 pv 限制传输速率:
dd if=/dev/sda | pv -L 10m | dd of=/dev/sdb
替代方案比较
虽然 dd 功能强大,但在某些场景下可以考虑替代工具:
工具 | 优势 | 劣势 |
---|---|---|
cp | 简单文件复制 | 不能处理设备文件 |
rsync | 增量备份、网络传输 | 不适用低级操作 |
cat | 简单数据流处理 | 缺少精细控制 |
pv | 进度显示、限速 | 功能较单一 |
典型问题解决
1. 处理坏道磁盘
dd if=/dev/sda of=/dev/sdb conv=noerror,sync
noerror 跳过错误,sync 用 NULL 填充无法读取的块。
2. 提取文件片段
dd if=largefile.bin of=part.bin bs=1M skip=100 count=10
提取从 100MB 位置开始的 10MB 数据。
3. 修改二进制文件
echo -n "NEWDATA" | dd of=file.bin bs=1 seek=100 conv=notrunc
在文件偏移 100 字节处写入新数据,不截断原文件。
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
相关文章:
【Linux系列】dd 命令的深度解析与应用实践
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
ETL背景介绍_1:数据孤岛仓库的介绍
1 ETL介绍 1.1 数据孤岛 随着企业内客户数据大量的涌现,单个数据库已不再足够。为了储存这些数据,公司通常会建立多个业务部门组织的数据库来保存数据。比如,随着数据量的增长,公司通常可能会构建数十个独立运行的业务数据库&am…...
【周输入】510周阅读推荐-1
本号一年了,有一定的成长,也有很多读者和点赞。自觉更新仍然远远不够,需要继续努力。 但是还是要坚持2点: 在当前这个时代,信息大爆炸,层次不齐,不追加多, 信息输入可以很多&#x…...
Games101作业四
作业0到作业3的代码 这次是实现 de Casteljau 算法,以及绘制 Bezier 曲线,比上次简单 核心思想就是递归,原理忘了就去看第十一节课,从15:00开始的 GAMES101-现代计算机图形学入门-闫令琪 代码 先实现贝塞尔曲线 cv::Point2f recursive_bezier(const std::…...
从Aurora 架构看数据库计算存储分离架构
单就公有云来说,现在云数据面临的挑战有以下 5 个: 跨 AZ 的可用性与数据安全性。 现在都提多 AZ 部署,亚马逊在全球有 40 多个 AZ, 16 个 Region,基本上每一个 Region 之内的那些关键服务都是跨 3 个 AZ。你要考虑整个…...
ElasticSearch深入解析(十一):分页
在Elasticsearch中,常用的分页方案有from size、search_after和scroll三种,适用于不同场景。from size基于偏移量分页,是全局排序后的切片查询,适用于小数据量、浅分页场景,但深度分页性能差,且有默认上限…...
【MySQL】MySQL数据库结构与操作
目录 一. 数据库的概念 二. 数据库的分类 三. 初始MySQL数据库 四. 数据库操作 1)创建数据库 2) 查看数据库 3)选中数据库 4)删除数据库 五. SQL数据类型 1)整型和浮点型 2)字符串类型 3)时间…...
Vue框架的基本介绍
目录 一.Vue 1.概述 2.三大主流框架 3.优点: 二.Vue搭建 三.语法 1.基本框架 2.插值表达式 3.Vue指令 1.v-text: 2.v-html: 编辑3.v-model: 4.v-on: 5.v-show: 6.v-if: 7.v-else: 8.v-bind: 9.v-for: 一.Vue 1.概述 Vue是一款用于构建用户界面的渐进式的…...
Web 架构之攻击应急方案
文章目录 一、引言二、常见 Web 攻击类型及原理2.1 SQL 注入攻击2.2 跨站脚本攻击(XSS)2.3 分布式拒绝服务攻击(DDoS) 三、攻击检测3.1 日志分析3.2 入侵检测系统(IDS)/入侵防御系统(IPS&#x…...
xss-labs靶场基础8-10关(记录学习)
前言: 内容: 第八关 关卡资源网站,html编码网站(两个网站,一个是实体编号转义(只对特殊字符有效,字母无效)、实体符号转义) 在线Html实体编码解码-HTML Entity Encodi…...
arctanx 导数 泰勒展开式证明
你提供的推导内容非常清晰,条理分明。下面是对 d d x arctan x 1 1 x 2 \frac{d}{dx} \arctan x \frac{1}{1 x^2} dxdarctanx1x21 的总结与适当补充: ✅ 结论 d d x arctan x 1 1 x 2 \frac{d}{dx} \arctan x \frac{1}{1 x^2} dxda…...
基于Java的家政服务平台设计与实现(代码+数据库+LW)
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…...
SpringBoot的外部化配置
一、什么是外部化配置 外部化配置是指把应用程序中各种可配置的参数、属性等信息,从代码内部提取出来,放置在外部的配置文件、数据库或配置中心等地方(比如使用.properties、.yml 或.xml 等格式的文件)进行管理。提高应用程序的可…...
Java鼠标事件监听器MouseListener、MouseMotionListener和MouseWheelListener
Java鼠标事件监听器MouseListener、MouseMotionListener和MouseWheelListener java中创建鼠标,键盘的事件行为监听器的几种方法 这里以鼠标点击事件监听器为例,其他也是一样创建。 常用的消息监听器对象 1:点击事件监听器 ActionListener 2:按键事件监…...
第三方支付公司如何代付和入账?
通俗来说,就是企业把钱打到第三方公司账户上,再由第三方公司把钱打入客户指定账户。 那么第三方支付入账流程是怎样的呢? 第一,企业向第三方支付公司指定账户充值打款;第二,企业提交代付银行卡信息后台操…...
.NET8关于ORM的一次思考
文章目录 前言一、思路二、实现ODBC>SqlHelper.cs三、数据对象实体化四、SQL生成SqlBuilder.cs五、参数注入 SqlParameters.cs六、反射 SqlOrm.cs七、自定义数据查询八、总结 前言 琢磨着在.NET8找一个ORM,对比了最新的框架和性能。 框架批量操作性能SQL控制粒…...
LlamaIndex 第八篇 MilvusVectorStore
本指南演示了如何使用 LlamaIndex 和 Milvus 构建一个检索增强生成(RAG)系统。 RAG 系统将检索系统与生成模型相结合,根据给定的提示生成新的文本。该系统首先使用 Milvus 等向量相似性搜索引擎从语料库中检索相关文档,然后使用生…...
记录为什么LIst数组“增删慢“,LinkedList链表“查改快“?
数组(Array) 增删慢:对于数组来说,增加或删除元素的操作可能会比较慢,特别是当你需要在数组的开头或中间进行这些操作时。这是因为这些操作通常需要移动数组中的其他元素以保持连续性。例如,如果你想要在数…...
【论文阅读】Dip-based Deep Embedded Clustering with k-Estimation
摘要 近年来,聚类与深度学习的结合受到了广泛关注。无监督神经网络,如自编码器,能够自主学习数据集中的关键结构。这一思想可以与聚类目标结合,实现对相关特征的自动学习。然而,这类方法通常基于 k-means 框架&#x…...
ARFoundation 图片识别,切换图片克隆不同的追踪模型
场景搭建: 你可以把我的代码发给AI,去理解 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.ARFoundation; using UnityEngine.XR.ARSubsystems; using TMPro; using Unit…...
鸿蒙next播放B站视频横屏后的问题
(此文讨论范围为b站视频链接,且不包括b站直播链接;android/iOS的webview播放b站视频完全没有这么多问题) 1、竖屏播放没问题 从一个竖屏页p1点击进入视频页p2,p2页仍为竖屏; p2页有一Web组件,…...
华为0507机试
题目二 建设基站 有一棵二叉树,每个节点上都住了一户居民。现在要给这棵树上的居民建设基站,每个基站只能覆盖她所在与相邻的节点,请问信号覆盖这棵树最少需要建设多少个基站 #include <bits/stdc.h> using namespace std;const int …...
apache2的默认html修改
使用127.0.0.1的时候,默认打开的是index.html,可以通过配置文件修改成我们想要的html vi /etc/apache2/mods-enabled/dir.conf <IfModule mod_dir.c>DirectoryIndex WS.html index.html index.cgi index.pl index.php index.xhtml index.htm <…...
EXCEL下拉菜单与交替上色设置
Excel/WPS 表格操作教程(双功能整合) 目录 功能一:交替行上色 Excel 操作WPS 操作 功能二:下拉菜单设置 Excel 操作WPS 操作 组合效果示例注意事项 功能一:交替行上色 Excel 操作 选中数据区域 拖动鼠标选择需要设置…...
list基础用法
list基础用法 1.list的访问就不能用下标[]了,用迭代器2.emplace_back()几乎是与push_back()用法一致,但也有差别3.insert(),erase()的用法4.reverse()5.排序6.合并7.unique()(去重)8.splice剪切再粘贴 1.list的访问就不能用下标[]了,用迭代器…...
鸿蒙PC版体验_画面超级流畅_具备terminal_无法安装windows、linux软件--纯血鸿蒙HarmonyOS5.0工作笔记017
鸿蒙NEXT和开源鸿蒙OpenHarmony现在已经开发实现统一,使用鸿蒙ArkTS开发的应用,可以直接 在开源鸿蒙上. 鸿蒙的terminal是使用的linux的语法,但是有很多命令,目前还不能使用,常用的ifconfig等是可以用的. 鸿蒙终于出来PC版了,虽然,不像Windows以及mac等,开放的命令那么多,但…...
Spring 集成 SM4(国密对称加密)
Spring 集成 SM4(国密对称加密)算法 主要用于保护敏感数据,如身份证、手机号、密码等。 下面是完整集成步骤(含工具类 使用示例),采用 Java 实现(可用于 Spring Boot)。 一、依赖引…...
deepseek梳理java高级开发工程师微服务面试题
Java微服务高级面试题与答案 一、微服务架构设计 1. 服务拆分原则 Q1:微服务拆分时有哪些核心原则?如何解决拆分后的分布式事务问题? 答案: 服务拆分五大原则: 1. 单一职责原则(SRP)- 每个…...
人事管理系统8
员工管理(分页查询、查看详情页、修改): 1. 分页查询 Staff.java 中加入部门名和岗位名两个属性以及对应的 get 和 set 方法。这两个属性没有数据库字段对应, 仅供前端显示用: private String departname; //部门名属…...
Stapi知识框架
一、Stapi 基础认知 1. 框架定位 自动化API开发框架:专注于快速生成RESTful API 约定优于配置:通过标准化约定减少样板代码 企业级应用支持:适合构建中大型API服务 代码生成导向:显著提升开发效率 2. 核心特性 自动CRUD端点…...
第三章 初始化配置(一)
我们首先介绍配置Logback的方法,并提供了许多示例配置脚本。在后面的章节中,我们将介绍Logback所依赖的配置框架Joran。 初始化配置 在应用程序代码中插入日志请求需要大量的规划和努力。观察表明,大约4%的代码用于记录。因此,即…...
WebGIS 开发中的数据安全与隐私保护:急需掌握的要点
在 WebGIS 开发中,数据安全与隐私保护是绝对不能忽视的问题!随着地理信息系统的广泛应用,越来越多的敏感数据被存储和传输,比如个人位置信息、企业地理资产等。一旦这些数据泄露,后果不堪设想。然而,很多开…...
C语言 ——— 函数栈帧的创建和销毁
目录 寄存器 mian 函数是被谁调用的 通过汇编了解函数栈帧的创建和销毁 转汇编后(Add函数之前的部分) 转汇编后(进入Add函数之前的部分) 转汇编后(正式进入Add函数的部分) 编辑 总结 局部变量…...
2025年真实面试问题汇总(二)
jdbc的事务是怎么开启的 在JDBC中,事务的管理是通过Connection对象控制的。以下是开启和管理事务的详细步骤: 1. 关闭自动提交模式 默认情况下,JDBC连接处于自动提交模式(auto-commit true),即每条SQL语…...
【用「概率思维」重新理解生活】
用「概率思维」重新理解生活:为什么你总想找的「确定答案」并不存在? 第1层:生活真相——所有结果都是「综合得分」 现象:我们总想找到“孩子生病是因为着凉”或“伴侣生气是因为那句话”的单一答案现实:每个结果背后…...
Redis——线程模型·
为什么Redis是单线程却仍能有10w/秒的吞吐量? 内存操作:Redis大部分操作都在内存中完成,并且采用了高效的数据结构,因此Redis的性能瓶颈可能是机器的内存或者带宽,而非CPU,既然CPU不是瓶颈,自然…...
APS排程系统(Advanced Planning and Scheduling,高级计划与排程系统)
APS排程系统(Advanced Planning and Scheduling,高级计划与排程系统)是一种基于供应链管理和约束理论的智能生产管理工具,旨在通过动态优化资源分配和生产流程,解决制造业中的复杂计划问题。以下是其核心要点解析&…...
首个窗口级无人机配送VLN系统!中科院LogisticsVLN:基于MLLM实现精准投递
导读 随着智能物流需求日益增长,特别是“最后一公里”配送场景的精细化,传统地面机器人逐渐暴露出适应性差、精度不足等瓶颈。为此,本文提出了LogisticsVLN系统——一个基于多模态大语言模型的无人机视觉语言导航框架,专为窗户级别…...
仓颉Magic亮相GOSIM AI Paris 2025:掀起开源AI框架新热潮
巴黎,2025年5月6日——由全球开源创新组织GOSIM联合CSDN、1ms.ai共同主办的 GOSIM AI Paris 2025 大会今日在法国巴黎盛大开幕。GOSIM 作为开源人工智能领域最具影响力的年度峰会之一,本届大会以“开放、协作、突破”为核心,汇聚了来自华为、…...
《Effective Python》第2章 字符串和切片操作——深入理解Python 中的字符数据类型(bytes 与 str)的差异
引言 本篇博客基于学习《Effective Python》第三版 Chapter 2: Strings and Slicing 中的 Item 10: Know the Differences Between bytes and str 的总结与延伸。在 Python 编程中,字符串处理是几乎每个开发者都会频繁接触的基础操作。然而,Python 中的…...
windows 强行终止进程,根据端口号
步骤1:以管理员身份启动终端 右键点击开始菜单 → 选择 终端(管理员) 或 Windows PowerShell(管理员)。 步骤2:检测端口占用状态 # 查询指定端口(示例为1806) netst…...
PHP-FPM 调优配置建议
1、动态模式 pm dynamic; 最大子进程数(根据服务器内存调整) pm.max_children 100 //每个PHP-FPM进程大约占用30-50MB内存(ThinkPHP框架本身有一定内存开销)安全值:8GB内存 / 50MB ≈ 160,保守设置为100 ; 启动时创建的进程数&…...
我喜欢的vscode几个插件和主题
主题 Monokaione Monokai Python 语义高光支持 自定义颜色为 self 将 class , def 颜色更改为红色 为装饰器修复奇怪的颜色 适用于魔法功能的椂光 Python One Dark 这个主题只在python中效果最好。 我为我个人使用做了这个主题,但任何人都可以使用它。 插件 1.Pylance Pylanc…...
openharmony 地图开发(高德sdk调用)
1.显示地图 2.利用sdk完成搜索功能,以列表形式展示,并提供定位和寻路按钮 3.利用sdk完成寻路,并显示路线信息和画出路线,路线和信息各自点击后可联动到对方信息显示 4.调用sdk 开始导航 商务合作:...
Kotlin-类和对象
文章目录 类主构造函数次要构造函数总结 对象初始化 类的继承成员函数属性覆盖(重写)智能转换 类的扩展 类 class Student { }这是一个类,表示学生,怎么才能给这个类添加一些属性(姓名,年龄…)呢? 主构造函数 我们需要指定类的构造函数。构造函数也是函数的一种,但是它专门…...
LVS+keepalived实战案例
目录 部署LVS 安装软件 创建VIP 创建保存规则文件 给RS添加规则 验证规则 部署RS端 安装软件 页面内容 添加VIP 配置系统ARP 传输到rs-2 客户端测试 查看规则文件 实现keepalived 编辑配置文件 传输文件给backup 修改backup的配置文件 开启keepalived服务 …...
可视化+智能补全:用Database Tool重塑数据库工作流
一、插件概述 Database Tool是JetBrains系列IDE(IntelliJ IDEA、PyCharm等)内置的数据库管理插件。它提供了从数据库连接到查询优化的全流程支持,让开发者无需离开IDE即可完成数据库相关工作。 核心价值: 统一工作环境…...
【认知思维】沉没成本谬误:为何难以放弃已投入的资源
什么是沉没成本谬误 沉没成本谬误(Sunk Cost Fallacy)是指人们倾向于根据过去已经投入的资源(时间、金钱、精力等)而非未来收益来做决策的一种认知偏差。简单来说,它反映了"我已经投入这么多,不能就这…...
Linux 系统安全基线检查:入侵防范测试标准与漏洞修复方法
Linux 系统安全基线检查:入侵防范测试标准与漏洞修复方法 在 Linux 系统的安全管理中,入侵防范是至关重要的环节。通过对系统进行安全基线检查,可以有效识别潜在的安全漏洞,并采取相应的修复措施,从而降低被入侵的风险…...
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
题意 需要维护 n n n \times n nn 平面上的整点,每个点 ( x , y ) (x, y) (x,y) 有权值 V ( x , y ) V(x, y) V(x,y),初始都为 0 0 0。 同时给定 n n n 次修改操作,每次修改给出 x 1 , x 2 , y 1 , y 2 , v x_1, x_2, y_1, y_2, v x…...