擦拭块设备
另一个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
'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