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