简介
dd命令是Linux下的一个重要的磁盘操作命令,它的主要作用是备份和复制磁盘。
dd的语法是:
dd if=输入文件的名称 of=输出文件的名称 [参数=值]
if=输入文件的名称:指定输入文件的名称,可以是文件、设备、目录等
of=输出文件的名称:指定输出文件的名称,可以是文件、设备、目录等
参数=值:可选,用来控制dd的操作
常用的参数有:
bs=字节数:一次读写的字节数,默认为512字节
count=块数:复制的块数
conv=转换格式:指定输入和输出的数据的转换格式,例如ascii,ebcdic等
ibs=输入字节数:每次读取的字节数
obs=输出字节数:每次输出的字节数
seek=块数:从输入文件开头跳过的块数
skip=块数:从输出文件开头跳过的块数
status=noxfer:不显示转换统计信息
举例
例如:
- 备份磁盘:
dd if=/dev/sda of=/dev/sdb
- 备份文件:
dd if=input.iso of=input.bak
- 磁盘转磁盘(4M字节每次读写):
dd if=/dev/sda of=/dev/sdb bs=4M
- 跳过输入文件的前100个块,从输出文件开始的第50个块开始写入:
dd if=input.iso of=input.bak skip=100 seek=50
- 磁盘转文件(磁盘的前1024个字节备份到文件):
dd if=/dev/sda of=disk.bak bs=1024 count=1
所以,dd命令是Linux下非常强大的备份和磁盘复制命令,要谨慎使用。
一些其他的使用场景
1.磁盘克隆:将一个磁盘的内容完全克隆到另一个磁盘,使用命令:dd if=/dev/sda of=/dev/sdb bs=64K
2.创建启动U盘:将ISO镜像写入U盘,使U盘变成启动盘,使用命令:dd if=系统镜像.iso of=/dev/sdb bs=64K
3.磁盘擦除:使用随机数据覆盖整个磁盘,彻底抹除磁盘数据,使用命令:dd if=/dev/urandom of=/dev/sdb bs=64K
4.文件固定长度截断:将文件截断到指定长度,使用命令:dd if=input.file of=output.file bs=64K count=10 这将input.file截断到10个块,每个块64K
5.磁盘分区表擦除:将磁盘分区表擦除,让磁盘回到未分区状态,使用命令:dd if=/dev/zero of=/dev/sdb bs=512 count=1 conv=notrunc
6.创建交换分区:在空磁盘上创建交换分区,使用命令:dd if=/dev/zero of=/dev/sdb1 bs=1024 count=40960 这将在sdb1上创建40G交换分区
67.文件内容替换:使用命令:dd if=input.file of=output.file bs=10 conv=notrunc,这会从输入文件input.file中读10个字节,并覆盖输出文件的前10个字节。可以用于隐藏文件内容。
8.测试磁盘速度:使用命令:dd if=/dev/sda of=/dev/null bs=64K count=10k,这会从磁盘读取10*1024个块,每个64K,并丢弃输出,可以测试磁盘读速度。
9.数据保存为二进制文件。echo “abc”|dd of=adc.bin