Linux使用dd命令来复制和转换数据的操作方法

2025-01-23 04:50

本文主要是介绍Linux使用dd命令来复制和转换数据的操作方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文...

简介

linux 中的 dd 命令是一个功能强大的数据复制和转换实用程序。它以较低级别运行,通常用于创建可启动的 USB 驱动器、克隆磁盘和生成随机数据等任务。

dd 全称可以为:data duplicatordisk desjstroyerData Definition

功能和能力

  • 磁盘映像:创建整个磁盘或分区的精确、逐位副本

  • 数据擦除:使用零或随机数据安全地覆盖驱动器

  • 文件转换:ASCII 和 EBCDIC 之间的转换、字节顺序交换和文件填充

  • 数据恢复:通过忽略读取错误从故障驱动器读取数据

  • 可启动媒体创建:将磁盘映像写入 USB 驱动器或 SD 卡

  • 存储性能测试:对驱动器写入速度进行粗略的基准测试

语法

dd if=&l编程t;input_file> of=<output_file> [options]
  • if:输入文件(源文件或设备,例如 /dev/sda/dev/zero

  • of:输出文件(目标文件或设备,例如,/dev/sdbmyfile.img

  • Options:自定义的行为选项

常用选项

  • bs=[BYTES]:将输入和输出块大小都设置为 BYTES

块大小表示 dd 命令每次输入或输出一次性读取或写入的数据大小

  • count=[N]:仅复制 N 个输入块

  • skip=[N]:开始复制之前跳过输入文件中的 N 个块

  • seek=[N]:开始写入之前跳过输出文件中的 N 个块

  • conv=[TYPE]:指定转换类型(例如,sync、noerror、notrunc

  • status=[LEVEL]:控制输出详细程度(例如,none、 noxfer、 progress

  • iflag=[FLAGS]:输入特定标志(direct、sync

  • oflag=[FLAGS]:输出特定标志(append、sync

  • ibs:设置输入块大小

  • obs:设置输出块大小

  • noerror:读取错误后继续

  • notrunc:不要截断输出文件

  • sync:使用 NULL 填充每个输入块至 ibs 大小

示例用法

基础用法

dd if=source.txt of=destination.txt

# 如果目标文件不存在,则自动创建,否则会覆盖目标文件

创建可启动的 USB 驱动器

将 ISO 文件写入 USB 驱动器

sudo dd if=Ubuntu.iso of=/dev/sdb bs=4M status=progress
  • if=ubuntu.iso:输入的 ISO 文件

  • of=/dev/sdb:输出的 USB 设备

  • bs=4M:使用 4 MB 的块大小来加快复制速度

  • status=progress:操作过程中显示进度

备份磁盘

创建磁盘镜像

sudo dd if=/dev/sda of=backup.img bs=64K conv=sync,noerror
  • if=/dev/sda:输入的原磁盘设备

  • of=backup.img:输出的磁盘镜像

  • bs=64K:块大小为 64 KB

  • conv=sync,noerror:当发生错误时继续China编程读取,并用控制填充

从镜像中恢复磁盘

sudo dd if=backup.img of=/dev/sda bs=64K

创建包含随机数据的文件

dd if=/dev/urandom of=random_data.bin bs=1M count=10
  • if=/dev/urandom:随机输入源

  • of=random_data.bin:输出的文件

  • bs=1M:区块大小为 1 MB

  • count=10:创建一个 10 MB 的文件

安全擦除磁盘

使用随机数据覆盖磁盘

sudo dd if=/dev/urandom of=/dev/sda bs=1M status=progress

测试磁盘写入速度

将零写入磁盘以测试写入速度

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

将文件拆分成块

将文件分割成更小的块

dd if=largefile of=smallfile bs=1M count=100

防止覆盖目标文件

dd if=source.txt of=destination.txt conv=notrunc

将数据追加到文件

dd if=users.txt of=newusers.txt conv=append

压缩 dd 读取的数据

sudo dd if=/dev/sda bs=1M | gzip -c -9 > sda.dd.gz

操作过程中显示进度条

dd if=source_file of=destination_file status=progress

将文件的数据格式从 EBCDIC 转换为 ASCII

sudo dd if=textfile.ebcdic of=textfile.ascii conv=ascii

关键转换标志

  • sync:用空字节填充每个块以达到指定的大小

  • noerror:尽管读取有错误,仍继续操作

  • notrunc:不要截断输出文件

  • ucase:将文本转换为大写

  • lcase:将文本转换为小写

以上就是Linux使用dd命令来复制和转China编程换数据的操作方法的详细内容,更多关于Linux dd命令复制和转换数据的资料请关注编程China编程(www.chinasem.cn)其它相关文章!

这篇关于Linux使用dd命令来复制和转换数据的操作方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153192

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数