dd命令简介

dd命令

dd命令是linux下的一个文件复制工具,dd命令可以复制文件,也可以复制设备,dd命令的参数很多,这里只介绍一些常用的参数。

1、read命令

shell 复制代码
dd if=/dev/nvme0n1 of=/path/to/file bs=512 skip=1 count=1

参数说明:

if=/dev/nvme0n1 :输入文件,/dev/nvme0n1是想要读取数据的设备名

of=/path/to/file : 输出文件,将读取的数据保存到此文件中

bs=512 : 块大小,默认是512字节

skip=1 : 跳过1个块,即跳过512个字节(这里需要计算,要跳过的字节数除以块大小bs)

count=1 : 只读取1个块,即读取512个字节

2、write命令

shell 复制代码
dd if=/path/to/file of=/dev/nvme0n1 bs=512 seek=1 count=1

参数说明:

if=/path/to/file : 输入文件,将此文件中的数据写入到设备中

of=/dev/nvme0n1 : 输出设备,写入的数据保存到此设备中

bs=512 : 块大小,默认是512字节

seek=1 : 从第1个块开始写入,即从512个字节开始写入

count=1 : 只写入1个块,即写入512个字节

3、copy命令

3.1、从 A 复制到 B

shell 复制代码
dd if=/dev/nvme0n1 of=/dev/nvme1n1 bs=4M status=progress

参数说明:

if=/dev/nvme0n1 of=/dev/nvme1n1 由nvme0n1复制到nvme1n1

bs=4M 块大小为4MB,可调整

status=progress 显示进度

3.2、复制分区A 到 分区B

shell 复制代码
dd if=/dev/sda1 of=/dev/sdb1 bs=4M status=progress

3.3、将磁盘或分区复制到一个镜像文件,创建磁盘镜像

shell 复制代码
dd if=/dev/sda of=/path/to/image.img bs=4M status=progress

参数说明:

of=/path/to/image.img 保存的镜像文件路径及名字

3.4、将镜像文件写回到磁盘:

shell 复制代码
dd if=/path/to/image.img of=/dev/sdX bs=4M status=progress

3.5、创建系统安装启动U盘:

shell 复制代码
dd if=/path/to/image.iso of=/dev/sdX bs=4M status=progress oflag=sync

参数说明:

of=/dev/sdX U盘设备名

oflag=sync : 确保数据写入磁盘

4、全盘写0

shell 复制代码
dd if=/dev/zero of=/dev/nvme0n1 bs=1M status=progress

5、随机写

shell 复制代码
dd if=/dev/urandom of=/dev/nvme0n1 bs=1M status=progress

6、测试磁盘性能(用处不大)

shell 复制代码
dd if=/dev/zero of=/dev/nvme0n1 bs=1G count=1024 status=progress oflag=direct

参数说明:

oflag=direct : 不缓存,直接写入磁盘

count=1024 : 写入1024GiB的数据

bs=1G : 块大小为1GiB

7、交换字节顺序

shell 复制代码
dd if=inputfile of=outputfile conv=swab

参数说明:

conv=swab : 交换字节顺序

如原本数据为 0x1bca 交换字节后会变成 0xca1b

8、转换文件格式

8.1、将文件转换为大写

shell 复制代码
dd if=inputfile of=outputfile conv=ucase

8.2、将文件转换为小写

shell 复制代码
dd if=inputfile of=outputfile conv=lcase
相关推荐
wuyk5552 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
一技安身7 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
平头哥AI7 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
代码村新手8 小时前
Linux调试器-gdb的使用
linux
新时代牛马9 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷10 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
xx~t10 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
啦啦啦啦啦zzzz10 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
0+11110 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm
nLif11 小时前
基于GTK的简易MFC对话框兼容层 -- MfcToGTK
linux·c++·mfc·gtk