当前位置: 代码网 > 服务器>服务器>Linux > Linux使用dd命令来复制和转换数据的操作方法

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

2025年01月23日 Linux 我要评论
简介linux 中的 dd 命令是一个功能强大的数据复制和转换实用程序。它以较低级别运行,通常用于创建可启动的 usb 驱动器、克隆磁盘和生成随机数据等任务。dd 全称可以为:data duplica

简介

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

dd 全称可以为:data duplicatordisk destroyerdata definition

功能和能力

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

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

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

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

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

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

语法

dd if=<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:当发生错误时继续读取,并用控制填充

从镜像中恢复磁盘

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命令来复制和转换数据的操作方法的详细内容,更多关于linux dd命令复制和转换数据的资料请关注代码网其它相关文章!

(0)

相关文章:

  • Linux编译器--gcc/g++使用方式

    一、预编译指令1.1预处理功能去掉注释头文件的展开条件编译宏替换1.2指令预处理指令是以#号开头的代码行gcc下使用:gcc -e code.c -o code.i 来生成可执行文…

    2025年02月08日 服务器
  • Linux文件重定向&&文件缓冲区解读

    一、c文件接口stdin & stdout & stderrc默认会打开三个输入输出流,分别是stdin, stdout, stderr仔细观察发现,这三个流的类型…

    2025年02月08日 服务器
  • 在Linux服务器上部署War项目教程

    在Linux服务器上部署War项目教程

    linux服务器上部署war项目1.将war包上传到linux服务器上可以使用ftp或sftp等工具。2.确认服务器上已经安装了java运行环境如果没有安装可以... [阅读全文]
  • Linux部署jar包过程

    Linux部署jar包过程

    linux部署jar包部署jar包需要注意:linux和你jar的jdk中的版本一定要是一致的需要导入打包的插件,这样我们的jar包才是可运行的数据库的密码大概... [阅读全文]
  • Nginx 日志格式的实现

    Nginx 日志格式的实现

    引言nginx 作为一个高效的 web 服务器,广泛用于静态内容的服务、反向代理、负载均衡等场景。日志记录是服务器管理和监控中至关重要的一部分,nginx 提供... [阅读全文]
  • Nginx与Tomcat之间的关系及说明

    Nginx与Tomcat之间的关系及说明

    nginx 和 tomcat 都是现代 web 应用架构中常用的组件,它们在一起通常用于高性能的 web 服务、负载均衡和反向代理等场景中。虽然它们的功能有所重... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com