擦拭块设备

另一个dd用例是擦拭设备。

$sudo dd if=/dev/zero bs=1M of=/dev/sda

上面的命令指示DD从/dev/zero设备读取,该设备提供空字符,并将它们写入设备,直到它完全填充。

压缩DD读取的数据

我们想创建整个/dev/sda块设备的克隆,我们可以写:

$sudo dd if=/dev/sda bs=1M | gzip -c -9 > sda.dd.gz
linux dd命令

'dd'的基本语法非常简单。默认情况下,程序从“标准输入”读取数据并写入“标准输出”。但是,我们可以分别使用'if'和'of'命令行选项来指定可选的'input'和'output'文件。

这里dd与绝大多数shell命令不同,因为它不使用标准的--option或者-o语法作为选项。

让我们看一个dd用法的示例。

该实用程序最典型的用例之一是主引导记录的备份:旧版“MBR”分区系统上的第一个扇区。该扇区的长度通常为512字节:它包含grub引导加载程序的第1阶段和磁盘分区表。

假设我们要备份/dev/sda磁盘的'MBR',我们所要做的就是使用以下语法调用dd:

$sudo dd if=/dev/sda bs=512 count=1 of=mbr.img

让我们分析上面的命令。
首先,我们将使用sudo命令的实际DD调用前缀,以便使用管理权限运行命令。

然后调用dd,用'if'选项指定输入源,用'of'指定输出文件。我们还使用'bs'和'count'选项分别指定一次应读取的数据量或者块大小,以及要读取的块总量。在这种情况下,我们可以省略'bs'选项,因为'512'字节是dd使用的默认大小。如果运行上面的命令,我们将看到它生成以下输出:

1+0 records in
1+0 records out
512 bytes copied, 0.000657177 s, 779 kB/s

读写时跳过块

使用“skip”选项:

$sudo dd if=/dev/sda of=hidden-data-after-mbr count=2047 skip=1

当我们想要恢复克隆数据并将其写回相同的磁盘区域时,我们要使用Seek选项

$sudo dd if=hidden-data-after-mbr of=/dev/sda seek=1
日期:2020-07-07 20:56:45 来源:oir作者:oir