dd
命令详解
dd
命令是 Unix 和 Linux 系统中一个非常强大的工具,用于转换和复制文件。它可以用来备份和恢复磁盘或分区、创建和修改文件系统、以及进行各种数据操作。dd
命令的灵活性和强大功能使其在系统管理、数据恢复和安全领域中广泛使用。
基本语法
dd [选项] if=输入文件 of=输出文件
其中:
if=输入文件
:指定输入文件。默认为标准输入(stdin)。of=输出文件
:指定输出文件。默认为标准输出(stdout)。bs=块大小
:指定读取和写入的块大小。默认为 512 字节。count=块数
:指定要复制的块数。skip=块数
:在读取输入文件之前跳过的块数。seek=块数
:在写入输出文件之前跳过的块数。conv=转换列表
:指定数据转换方式。
常用选项
-
if=输入文件
- 指定输入文件。例如:
dd if=input.img
- 指定输入文件。例如:
-
of=输出文件
- 指定输出文件。例如:
dd of=output.img
- 指定输出文件。例如:
-
bs=块大小
- 指定读取和写入的块大小。例如:
dd bs=1M
- 指定读取和写入的块大小。例如:
-
count=块数
- 指定要复制的块数。例如:
dd count=10
- 指定要复制的块数。例如:
-
skip=块数
- 在读取输入文件之前跳过的块数。例如:
dd skip=1
- 在读取输入文件之前跳过的块数。例如:
-
seek=块数
- 在写入输出文件之前跳过的块数。例如:
dd seek=1
- 在写入输出文件之前跳过的块数。例如:
-
conv=转换列表
- 指定数据转换方式。常见的转换选项包括:
notrunc
:不截断输出文件。noerror
:遇到读取错误时继续。sync
:使用零填充不足的块。swab
:交换每对字节。ascii
:转换为 ASCII。ebcdic
:转换为 EBCDIC。ibm
:转换为 IBM EBCDIC。lcase
:转换为小写。ucase
:转换为大写。block
:转换为块格式。unblock
:转换为非块格式。
- 例如:
dd conv=notrunc,noerror
- 指定数据转换方式。常见的转换选项包括:
常见用法
-
备份和恢复磁盘或分区
- 备份磁盘
sudo dd if=/dev/sda of=backup.img bs=4M
- 恢复磁盘
sudo dd if=backup.img of
- 备份磁盘