【linux】dd命令

embedded/2024/9/24 8:16:08/

目录

命令简介

命令格式

使用场景

注意事项


命令简介

1,用来复制和转换文件的命令行工具

2,dd命令可以以指定的块大小从输入文件读取数据,再根据要求以相同或不同的块大小将数据写入输出文件。

命令格式

dd  if=input-file   of=output-file   options说明if:输入文件of:输出文件options:指定一些额外的选项,比如指定块大小、偏移量等。

dd命令的一些常用选项包括:

- bs=:块的大小,单位BYTES字节,可加上如K、M、G等

- count=:要复制的块数为N个,每个块大小由bs参数确定

- skip=:从输入文件的起始位置跳过N个块后开始复制

- seek=:在输出文件中跳过N个块后开始写入数据

- iflag=:输入文件的选项,如direct、sync等

- oflag=:输出文件的选项,如direct、sync等

-status=progress 显示进度

通过使用这些选项,指定不同的复制和转换需求。需要注意的是,dd命令是一个强大而又危险的工具,因为它可以直接访问设备,所以在使用时要谨慎,避免误操作导致数据丢失。

使用场景

用于在低级别对数据进行复制和转换。以从指定的磁盘分区、文件等读取数据,写入到指定的输出目标,可用于包括备份、恢复、数据转换和系统维护等。

示例:

示例 1:创建磁盘镜像

dd if=/dev/sda   of=/path/to/backup.img

if是输入文件(input file)是整个硬盘/dev/sda;of输出文件是将要创建的磁盘映像文件backup.img

 

示例 2:恢复磁盘镜像

dd  if=/path/to/backup.img   of=/dev/sda

将映像文件中的数据恢复到硬盘/dev/sda中。

 

制作可启动USB驱动器:

dd   if=/path/to/linux.iso  of=/dev/sdb   bs=4M   status=progress


这里,ISO文件被直接写入指定的USB设备(这里假设为/dev/sdb),bs=4M 设置块大小为4MB以加快写入速度,status=progress用于显示写入进度。

 

示例 3:测试磁盘读写速度

time  dd if=/dev/zero  of=/tmp/testfile  bs=1G count=1  oflag=direct

创建一个 1GB 的文件 /tmp/testfile,并尝试以 1GB 的块大小直接写入磁盘(通过 oflag=direct)。time 统计时间,1G/time计算出写入速度。

示例 4:格式化转换

将一个 raw 磁盘镜像 rawdisk.img,转换为 VMDK 格式(用于 VMware)。虽然 dd 本身不直接支持格式转换,但你可以使用其他工具(如 qemu-img)与 dd 结合来实现这一目的。以下是一个概念性的例子:

ddif=rawdisk.img of=partition1.img bs=512 skip=63 count=xxx  # xxx 是分区的块数qemu-img convert -f raw -O vmdk partition1.img partition1.vmdk

 

注意事项

使用dd命令时需要特别小心,因为一个错误的命令可以完全擦除磁盘或造成不可逆的数据损失。始终确保你完全理解ifof参数指向的设备或文件。


http://www.ppmy.cn/embedded/35914.html

相关文章

Mysql数据库

目录 Mysql优点 sql概述 sql的优点 DDL概述 DDL语言 创建,删除数据库 数据库表的基本概念 创建表的步骤 列的数据类型 列的约束: 列的规则 表的操作 DML概述 DML语言 数据操作 DQL—基础查询 单行函数 字符函数 逻辑处理 数学函数 日期函数 …

【机器学习】剪贴画图像等文本引导运动生成技术革新

AniClipart:剪贴画图像的文本引导运动生成技术革新 一、技术背景与挑战二、AniClipart的创新与实现三、实验结果与应用前景四、代码实例 随着科技的飞速发展,我们正处于一个数字内容爆炸的时代。在这一浪潮中,剪贴画作为一种古老而独特的艺术…

C++ 函数与数组

例1 求数组各项的累加和 例2 修改数组元素大于5的为0 1 用数组名作为函数参数时还应注意以下几点: 1)形参数组和实参数组的类型必须一致,否则将引起错误。 2)形参数组和实参数组的长度可以不相同,因为在调用时&#…

基于Springboot+Vue的Java项目-旅游网站系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

一文掌握python杖举类(Enum)

目录 枚举类是一种特殊的数据类型,用于定义一组命名的常量集合,这些常量通常代表某一特定领域的有限且固定的选项集。通过使用枚举类,可以提高代码的可读性和可维护性,同时避免硬编码和潜在的类型错误。 一. 定义枚举类 二. 枚举成员 1、 名称与值 2、 访问枚举成员 …

OpenNJet:云原生技术中的创新者与实践者

目录 引言OpenNJet介绍OpenNJet优势1. 性能无损动态配置2. 灵活的CoPilot框架3. 支持HTTP/34. 支持国密5. 企业级应用6. 高效安全 OpenNJet 编译与安装环境准备编译环境配置配置yum源yum 安装软件包创建符号连接修改 ld.so.conf 配置 编译代码 部署 WEB SERVER配置OpenNJet部署…

超越视觉极限:深度学习图像超分辨率算法清单【第一部分】

超越视觉极限:深度学习图像超分辨率算法清单 简介2014年 - SRCNN (Super-Resolution Convolutional Neural Network)2016年 - VDSR (Very Deep Super Resolution)2016年 - LapSRN (Laplacian Pyramid Super-Resolution Network)2017年 - EDSR (Enhanced Deep Super-…

[VulnHub靶机渗透] Hackademic: RTB1

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…