linux 启动盘zhi,Linux制作启动盘之dd命令详解

2023-11-13

1. dd命令简介

dd在linux中是 一个非常强大的工具,常用于复制大量数据,测试读写性能 ,清空硬盘数据(不可恢复),由于dd 命令允许以二进制方式读写,所以特别适合在原始设备上输入、输出。dd命令用于复制文件并对原文件的内容进行转换和格式化处理。dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。用的比较多的还是用dd来备份裸设备。但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便。建议在有需要的时候使用dd 对物理磁盘操作,如果是文件系统的话还是使用tar backup cpio等其他命令更加方便。另外,使用dd对磁盘操作时,最好使用块设备文件。

5f97c41379d7a696abcdd97c4a054ce3.png

2. dd命令与cp命令的区别

两个命令都用于复制数据。cp仅仅是复制文件,全程全部经由操作系统处理,而dd则是底层数据的复制,复制到目标块设备时,数据是连接的,而cp可能不是连续的。dd可以复制分区信息等等底层信息,而cp只能复制可读文件。

3. dd选项

dd指令使用

语法格式

dd [option]

dd指令选项详解

if=file:输入文件名,缺省为标准输入

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

cbs = byte 一次转换bytes字节。

count=blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCIl码。

conv = ebcdic 把ASCIl码转换为EBCDIC码。

conv = ibm 把ASCIl码转换为alternate EBCDIC码。

conv = block 把变动位转换成固定字符。

conv = ublock 把固定位转换成变动位。

conv = ucase 把字母由小写转换为大写。

conv = lcase 把字母由大写转换为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。

4. dd常用选项

if=inputfile

指定源文件,即指定输入文件、缺省为标准输入,在LINUX中一切皆文件,因此可指定一些特殊的文件(如设备文件)用于特殊用途

of=outputfile

指定目标文件,即指定输出文件,缺省为标准输出

bs=N bytes

同时指定读入/输出的块大小为N个字节,N为数字

count=N blocks

指定拷贝的块数量,块大小由bs指定。N为数字

以上4个dd参数为最常用的选项。

5. 常用案例

5.1 备份整个盘(分区)的数据

以sda为源,sdb为目标

[root@zcwyou ~]# dd if=/dev/sda of=/dev/sdb

5.2 备份整个盘(分区)数据到文件

把sda的数据备份到/root/backup/sda.raw

[root@zcwyou ~]# dd if=/dev/sda of=/root/backup/sda.raw

5.3 根据备份文件恢复到某分区

比如:把/root/backup/sda.raw恢复到/dev/sda

[root@zcwyou ~]# dd if=/root/backup/sda.raw of=/dev/sda

5.4 备份整个盘(分区)并压缩后保存至指定路径

备份/dev/sda,并使用gzip压缩后保存为/root/sda.raw.gz

[root@zcwyou ~]# dd if=/dev/sda | gzip > /root/sda.raw.gz

5.5 将备份的压缩文件还原到分区

把文件/root/sda.raw.gz还原到分区

[root@zcwyou ~]# gzip -dc /root/sda.raw.gz | dd of=/dev/sda

5.6 备份MBR

备份sda的MBR,保存到

[root@zcwyou ~]# dd if=/dev/sda of=/root/sda.mbr bs=512 count=1

05ec22e6f74cb80e64a23a749d2f3451.png

bs用于指定备份的块大小,单位为字节,MBR存放的位置的分区的前512字节,count用于指定块的数量。

块大小可以使用的计量单位表

单元大小 代码

字节(1B) c

字节(2B) w

块(512B) b

千字节(1024B) k

兆字节(1024KB) M

吉字节(1024MB) G

5.7 还原MBR

把保存的MBR恢复到sda

[root@zcwyou ~]# dd if=/root/sda.mbr of=/dev/sda

5.8 拷贝内存内容到硬盘

[root@zcwyou ~]# dd if=/dev/mem of=/root/backup/mem.mem bs=1024

5.9 拷贝光盘内容到硬盘

[root@zcwyou ~]# dd if=/dev/cdrom of=/var/backup/cdrom.iso

5.10 增加swap分区文件大小

创建一个空白文件,用于SWAP空间,大小按需求

[root@zcwyou ~]# dd if=/dev/zero of=/swapfile bs=1024 count=100000

用/dev/zero填充0,输出文件swapfile,

37376d71809a214fe1dab737a452645d.png

指定文件为swap文件

[root@zcwyou ~]# mkswap /swapfile

挂载swap文件

[root@zcwyou ~]# swapon /swapfile

修改/etc/fstab,开机自动挂载

增加一行

/swapfile swap swap default 0 0

5.11 销毁硬盘数据(慎用)

利用随机数填充硬盘,用于销毁数据

[root@zcwyou ~]# dd if=/dev/urandom of=/dev/sdb

5.12 测试磁盘写能力

[root@zcwyou ~]# time dd if=/dev/zero of=/test.dbf bs=8k count=300000

f5376ed9f1e2568fe32236756623b3e7.png

因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

5.13 测试磁盘读能力

[root@zcwyou ~]# time dd if=/dev/sdb1 of=/dev/null bs=8k

a5048ffbb6ffafa1010ebdcdf0aeb00c.png

因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。

5.14 查找性能最佳的块大小

测试4个数值,找到执行时间最短的即为最佳

[root@zcwyou ~]# dd if=/dev/zero bs=1024 count=1000000 of=/path/to/test.1GB

[root@zcwyou ~]# dd if=/dev/zero bs=2048 count=500000 of=/path/to/test.1GB

[root@zcwyou ~]# dd if=/dev/zero bs=4096 count=250000 of=/path/to/test.1GB

[root@zcwyou ~]# dd if=/dev/zero bs=8192 count=125000 of=/path/to/test.1GB

5.15 某种程度上修复硬盘

当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。使用以下命令有可能使这些数据起死回生, 且这个过程是安全,高效的。

[root@zcwyou ~]# dd if=/dev/sda of=/dev/sda

5.16 从raw设备备份到raw设备

[root@zcwyou ~]# dd if=/dev/rsd1b of=/dev/rsd2b bs=8k skip=8 seek=8 count=3841

5.17 裸设备到文件系统

dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=3841

6. 结合nc进行远程备份

[root@zcwyou ~]# dd if=/dev/sda bs=16065b | nc 192.168.1.100 1234

源数据服务器,把dd数据重定向到nc

[root@zcwyou ~]# netcat -l -p 1234 | dd of=/dev/sdc bs=16065b

目标备份服务器,通过nc接收数据,把数据重定向到dd

可以把接收到的数据使用bzip2压缩后保存

[root@zcwyou ~]# netcat -l -p 1234 | bzip2 > partition.img

可以把接收到的数据使用gzip压缩后保存

[root@zcwyou ~]# netcat -l -p 1234 | gzip > partition.img

7. 修改数据某处

将一个很大的视频文件中的第i个字节的值改成0x41(也就是大写字母A的ASCII值)

[root@zcwyou ~]# echo A | dd of=bigfile seek=$i bs=1 count=1 conv=notrunc

8. 总结

dd是一个强大的数据备份管理工具,包括备份,恢复,读写速度测试等等,是Linux上非常强大的一个工具,使用时,要注意对目前业务的影响,不建议在磁盘IO高的情况使用dd,也不建议在业务繁忙时间使用dd。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux 启动盘zhi,Linux制作启动盘之dd命令详解 的相关文章

  • Spring(二)IOC容器的初始化流程

    文章目录 一 Spring 核心容器类 1 1 BeanFactory 1 2 ApplicationContext 1 3 BeanDefinition 二 IOC容器的初始化 2 1 基于Xml的IOC容器的初始化 2 1 1 寻找入口
  • 15个顶级Java多线程面试题及答案

    1 现在有T1 T2 T3三个线程 你怎样保证T2在T1执行完后执行 T3在T2执行完后执行 这个线程问题通常会在第一轮或电话面试阶段被问到 目的是检测你对 join 方法是否熟悉 这个多线程问题比较简单 可以用join方法实现 2 在Ja
  • LLM在放射科学中应用潜力

    本论文在全球范围内评估了 31 个大型语言模型 LLM 在解读放射科报告并从放射学发现中推导出诊断信息 impression 任务上的表现 这是目前已知的对全球 LLM 用于放射科学自然语言处理 NLP 进行的最全面评估之一 该研究通过在这
  • 8款常见的自动化测试开源框架

    在如今开源的时代 我们就不要再闭门造车了 热烈的拥抱开源吧 本文针对性能测试 Web UI 测试 API 测试 数据库测试 接口测试 单元测试等方面 为大家整理了github或码云上优秀的自动化测试开源项目 希望能给大家带来一点帮助 一 性
  • 运维体系的构建

    文章目录 一 前言 二 基础 2 1 项目摸底 2 2 做一个好辅助 2 3 学习业务 2 4 标准与流程 2 5 维护 三 进阶 3 1 系统 服务优化 3 2 工作流程优化 3 3 规矩 3 4 运维管理平台 一 前言 运维的基础工作通
  • php lazy loading,React丨用户体验丨hook版 lazy loading

    我们都知道随着单页应用 bundle 的体积不断增大 会造成首次加载时间过长 白屏时间过长 过程中会加载了我们首页没有必要看到的一些 页面 组件 js文件 所以我们需要对 bundle 文件进行拆分来进行按需加载 懒加载 这里需要用到 we
  • Xilinx FIFO Generator 需要注意RST复位

    Xilinx FIFO Generator 需要注意RST复位 系列文章推荐 Xilinx FIFO Generator 需要注意RST复位 Xilinx FIFO Generator 需要注意Actual Depth Xilinx FIF
  • cvCloneImage()内存泄漏解决方法, cvCloneImage()和cvCopy()的区别

    转自 http blog csdn net stellar0 article details 8741759 cvCloneImage 每次使用时编译器会分配新的内存空间 不会覆盖以前的内容 所以如果在循环中使用内存会迅速减小 每次用完都需
  • Python 计算机视觉(六)—— OpenCV 进行图像量化与采样

    对于信号的采样可以参考我之前的文章 数字信号处理 2 1 采样 对于信号的量化可以参考 数字信号处理 2 4 ADC 中的有限字长效应 在本篇文章中绘图使用到了 matplotlib 库 需要了解学习可以参考我之前写的用来总结这个绘图库的文
  • 一文看懂Spark中reduceByKey 和 groupByKey 的区别

    目录 一 先看结论 二 举例 画图说明 1 实现的功能分别是什么 1 groupByKey 实现 WordCount 2 reduceByKey 实现 WordCount 2 画图解析两种实现方式的区别 1 groupByKey 实现 Wo
  • C++深拷贝与浅拷贝以及写时复制

    深拷贝和浅拷贝的优缺点 看了深拷贝 浅拷贝优缺点 我们知道浅拷贝效率高 但涉及到指针引用等会涉及到指针的多次释放导致悬挂指针 深拷贝 不会造成指针悬挂的问题 但会浪费空间以及效率较低的问题 下面看下用到浅拷贝的情况 include
  • TCP通信发送和接收数据(Socket、ServerSocket)、TCP通信案例

    目录 TCP TCP发送接收数据 发送数据 Socket 接收数据 ServerSocket TCP通信案例1 TCP接收数据后给出反馈案例2 TCP接收数据后给出反馈案例3 TCP接收数据后给出反馈案例4 TCP 概述 TCP通信协议是一
  • C++实现——三子棋游戏

    题目描述 两个人玩三子棋游戏 即在3 3的矩阵上下棋 一个人画叉一个人画圈 谁先出现成行或成列或成对角线三个相同的棋子就算谁赢 编写算法实现 判断给定棋局的状态 用1代表先手 2代表后手 出现的六种状态为 1won 2won x 代表棋局错
  • 爬虫逆向——某建筑市场监管平台的滑块验证码分析

    目录 网址链接 正文 一 思路分析 二 图片处理 三 完整代码 网址链接 aHR0cHM6Ly9nY3htLmh1bmFuanMuZ292LmNuL2RhdGFzZXJ2aWNlLmh0bWw bs64解密可见 正文 注 分步的代码为示例代
  • GD32F103与STM32F103的区别 2021.6.2

    GD32F103和STM32F103区别介绍 关键词Key words GD32F103 STM32F103 摘要Abstract 本文主要是GD32F103和STM32F103区别进行介绍 目录 简介 GD32和STM32的区别 2 1
  • 正交向量 正交矩阵

    如何判断向量正交 内积 对应位置相乘再求和 是内积 卷积 加上滑动窗口 判断向量是否正交 两个向量正交 求其内积 看是否为0 若为零 则正交 在空间上向量垂直就正交 例子 a 1 1 0 b 1 1 0 则内积 a b 1 1 1 1 0
  • Linux教程:如何使用kubeadm从头到尾搭建k8s单节点服务并部署dashboard

    前言 在以往教程中 我们使用的是Minikube快速搭建的k8s服务 但这种方式只能在开发环境中使用 并不推荐生产环境 官方的推荐的方案是采用kubeadm快速搭建 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工
  • 改造vue-element-admin 的登录功能,变成从后台数据库中验证登录

    改造vue element admin 的登录功能 变成从后台数据库中验证登录 首先了解登录时前段需要什么样的数据 要知道vue element admin 这个后台开发模板是集成非常多我们日常开发网站的基本功能 所以我们在改造登录功能的时
  • Leetcode26-28,这几道简单有趣的算法题你都会吗?

    26 删除排序数组中的重复项 题目要求 给定一个排序数组 你需要在原地删除重复出现的元素 使得每个元素只出现一次 返回移除后数组的新长度 不要使用额外的数组空间 你必须在原地修改输入数组并在使用O 1 额外空间的条件下完成 示例1 给定数组

随机推荐

  • flutter GestureDetector onTop 点击反应过慢

    如果你遇到过需要自己定义的带手势的view 发现点击几下可能只响应一次 很有可能是GestureDetector的child没有加背景 有时GestureDetector的child不需要加背景也可以点击 但是只可以点击child显示有内容
  • 几个常用数学知识点

    机器学习跟数学有着紧密的关系 因此掌握一些常用的数学知识点 有助于我们理解某些模型的底层相关原理 1 泰勒公式 2 驻点 极值点 鞍点 拐点 2 1 驻点 在数学 特别在微积分 函数在一点处的一阶导数为零 该点即函数的驻点 Stationa
  • MyBatis中的statementType详解

    在mapper文件中可以使用statementType标记使用什么的对象操作SQL语句 statementType 标记操作SQL的对象 取值说明 1 STATEMENT 直接操作sql 不进行预编译 获取数据 Statement 2 PR
  • 各种酒英文名

    okolehao 夏威夷烧酒 芋薯烧酒 orgeat 杏仁橘花香茶一种用于鸡尾酒和食物中的 含有桔子与杏仁的甜作料 杏仁糖浆 鸡尾酒的一种配料或食品的香料 不含酒精 杏仁桔花香茶 一种不含酒精的清凉甜饮料 ouzo 茴香烈酒 无色 不甜且有
  • 前端中的滴到思

    hping3 c 200000 d 12000 S w 64 p 801 flood rand source IP c 是数据包数量 d 是数据包的大小 S 是数据包的类型 w winsize 默认 64 p 目标网站的端口 flood 开
  • 解决Windows11系统缺少Windows.Data.Pdf.dll文件出现错误问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个Windows
  • nodeJS fs.writeFile 实现文字换行

    写文件遇见需要换行的情况就在需要换行的内容前面加换行符号就阔以了 简单 r n windows n linux r mac 下面是一个复制文件的方法 每次追加时间戳的时候希望他换行 gt appendFile 的时候内容前面加 r n co
  • php自动验证,ThinkPHP 自动验证及验证规则详解

    ThinkPHP 自动验证 ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证 自动验证是基于数据对象的 而大多情况下数据对象是基于 POST表单 不是绝对的 创建的 基本的自动验证功能包括 必须字段 email邮箱格式
  • 使用 ChatGPT、Stable Diffusion、React 和 NodeJS 构建网站画廊

    TLDR 在本文中 您将学习如何构建一个 Web 应用程序 该应用程序使用 ChatGPT 和 Stable Diffusion 为您提供的任何网站描述生成徽标和合适的域名 介绍 人工智能正在接管世界 这些技术每天都在震撼着我们的世界 Ch
  • 家里用服务器放在哪个位置,路由器摆放在家中哪个位置好 路由器摆放位置【详解】...

    路由器摆放在家中哪个位置好 路由器的摆放位置其实非常讲究的 这里就给大家讲解下相关知识 一起来看看 其实wifi所发射的信号 也就是无线电波 向手机和收音机发射出的电磁波是一样的 但是呢wifi的信号相当的短 一般常见的话只有12公分左右
  • Windows Server 系列 - User logon name(pre-Windows 2000) 和 User logon name 的区别

    一 在Active Directory中一直疑惑User logon name pre Windows 2000 和 User logon name这两个字段的区别 详细如下 AD UI界面展示名称 AD 后端属性名称 User logon
  • 使用Composition API和setup语法糖重构Vue组件

    Vue3 引入了Composition API 它是一种更灵活的方式来组织和复用组件的逻辑 而不是依赖于传统的选项式API 如data methods computed等 Composition API的核心是一个名为setup的函数 它可
  • 如何在github上重命名或修改文件夹

    在github上整理流程的时候 有一个文件夹命名不合适 想返回去改 但是在网页上没有找到重命名文件夹的选项 经过一番折腾之后 我是这么做的 1 首先在服务器上找到公匙 公匙在 ssh目录下 以 pub结尾的文件 将其复制 2 在github
  • markdown基本用法

    标题 和 都可以用于表示标题 一级标题 二级标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 标题的前后都要空一行 号后应当加一个空格 和 应当顶格书写 建议使用 来表示标题 字体 斜体 斜体 加粗 粗体 斜体 加粗 斜体
  • OpenCV中的人脸活体检测和身份认证如何实现?OpenCV人脸识别

    本文将介绍如何在OpenCV中实现人脸活体检测和身份认证 结合人脸检测 关键点定位和深度学习模型 我们可以有效地检测和区分真实人脸和照片 视频等非真实生物特征 以实现可靠的身份认证和活体检测 人脸检测和关键点定位 使用OpenCV提供的人脸
  • [STM32学习笔记(一)] 如何安装keil5 MDK版本并安装C51

    文章目录 1 注意事项 2 安装流程 2 1 获取Keil5安装包 2 2 安装keil5 2 3破解keil5 MDK 2 4 安装STM32芯片包 3 在安装了mdk的基础上安装c51 1 注意事项 安装路径必须全部是英文 如果已经安装
  • 突破前端反调试:阻止页面无限不断debugger

    不知道你们有没有遇到过上图这样 有时候想调试网站 一打开开发者工具立即 debugger 而且跳过了还是会继续 或者是有时候在调试网页时 突然就给你来一个 debugger 接着就是反复来回 debugger 了 贼烦 那今天分享个教程 教
  • Spock1

    文章目录 背景 扩展 BDD Behavior driven development行为驱动测试 依赖 Demo Spock深入 结构 setup与given assert 异常断言 Mock 创建对象 注入对象 调用频率约束 目标约束 方
  • Nacos-2.1.1安装配置+集群

    Nacos安装配置 集群 nacos 2 1 1安装配置 集群 Linux 一 环境准备 二 Nacos安装 运行 单机 三 替换nacos内置数据源 四 nacos集群配置 nacos 2 1 1安装配置 集群 Linux 本篇博客用于记
  • linux 启动盘zhi,Linux制作启动盘之dd命令详解

    1 dd命令简介 dd在linux中是 一个非常强大的工具 常用于复制大量数据 测试读写性能 清空硬盘数据 不可恢复 由于dd 命令允许以二进制方式读写 所以特别适合在原始设备上输入 输出 dd命令用于复制文件并对原文件的内容进行转换和格式