linux中dd命令的15个例子

linux中dd命令的15个例子

Linux dd命令是功能最强大的实用程序之一,可以通过多种方式使用。该工具主要用于复制和转换数据,因此它代表数据复制器。该工具可用于:

备份和还原整个硬盘驱动器或分区

创建虚拟文件系统以及称为ISO文件的CD或DVD的备份映像

复制原始设备文件的区域,例如备份MBR(主启动记录)。

将ASCII等数据格式转换为EBCDIC。

将小写转换为大写,反之亦然。

注意:仅超级用户可以执行此命令。使用此命令时应格外小心,因为使用不当可能会导致大量数据丢失。因此,有些人将此工具视为数据破坏者。

一、dd命令的语法

dd命令的基本用法非常简单,因为它只接受两个参数:if =指定输入文件,of =指定输出文件。这些选项的参数可以是文件或块设备。但是,我不建议您使用dd复制文件,因为cp以一种更简单的方式进行复制。但是,您可以使用它来克隆硬盘。语法是

dd if = <源文件名> of = <目标文件名> [选项]
我们将通过dd命令示例学习各种选项。

1.备份和还原整个磁盘或分区

可以将所有数据从整个磁盘/分区保存到另一个磁盘/分区。不是简单的cp命令副本,而是块大小的副本。

a、将整个磁盘备份到磁盘

您可以将所有数据(整个磁盘)从磁盘复制/dev/sda到/dev/sdb。dd对文件系统或分区一无所知;它只会将所有内容从复制/dev/sda到/dev/sdb。您需要使用bs选项指定要复制的块大小。因此,这将在相同分区上使用相同数据克隆磁盘。

#dd if = / dev / sda of = / dev / sdb bs = 4096 conv = noerror,sync
97281 + 0条记录在
97280 + 0条记录
复制了99614720字节(100 MB),2.75838 s,36.1 MB / s


仅当第二个设备与第一个设备一样大或更大时,这才起作用。否则,第二个分区将被截断且毫无价值的分区。在这里,如果代表输入文件,则代表输出文件,而bs代表块大小(一次要读取/写入的字节数)。确保您使用的块大小为1024字节的倍数,等于1KB。如果未指定块大小,则dd使用默认块大小512字节。该conv 值参数NOERROR允许工具继续复制数据,即使它遇到的任何错误。sync选项允许使用同步的I / O。

b、创建dd磁盘映像(文件映像)

您可以创建磁盘映像或文件映像。将磁盘备份到映像比复制精确数据要快。同样,磁盘映像使恢复更加容易。

#dd if = / dev / sda of = / tmp / sdadisk.img

您可以将输出文件存储在所需的位置,但必须提供一个.img以上述扩展名结尾的文件名。除了/tmp/sdadisk.img,您可以根据需要将其存储在例如/sdadisk.img。

c、创建压缩磁盘映像

因为dd会创建整个磁盘的确切内容,所以这意味着它会占用太大的空间。您可以决定使用以下命令压缩磁盘映像

#dd if = / dev / vda | gzip -c> /tmp/vdadisk.img.gz

管子| 运算符使左命令的输出成为右命令的输入。该-c选项将输出写在标准输出上,并使原始文件保持不变。

d、备份分区或将一个分区克隆到另一个分区
只能备份一个简单的分区,而不是整个磁盘。您只需要在输入文件中指定分区名称,如下所示

#dd if = / dev / sda1 of = / dev / sdb1 bs = 4096 conv = noerror,sync

这会将分区同步/dev/sda1到/dev/sdb1。您必须验证的大小/dev/sdb1应大于/dev/sda1。或者您可以如下创建分区图像

#dd if = / dev / sda1 of = / tmp / sda1.img

e、还原磁盘或分区映像
如果原始驱动器有任何问题,则保存磁盘或分区有助于恢复所有数据。要还原,您需要按如下所示将输入文件与在备份操作期间指示的输出文件反向。

#dd if = / tmp / sdadis...

点击查看剩余70%

{{collectdata}}

网友评论0