Linux dd 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何在 Linux 中使用强大的 dd 命令来创建存储设备(如 USB 驱动器)的备份镜像,并进行恢复。实验涵盖了 dd 命令的语法和选项,以及创建和恢复备份镜像的实际示例。本实验属于磁盘和文件系统工具技能集的一部分,这对于需要执行低级数据操作任务的系统管理员和高级用户来说至关重要。

实验首先解释了 dd 命令的语法和选项,包括如何指定输入和输出文件或设备、设置块大小以及控制复制过程中的状态更新。然后,实验演示了如何创建 USB 驱动器的备份镜像,并将该镜像恢复到另一个 USB 驱动器。实验假设你拥有访问系统中存储设备所需的权限。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/BasicFileOperationsGroup(["`Basic File Operations`"]) linux(("`Linux`")) -.-> linux/SystemInformationandMonitoringGroup(["`System Information and Monitoring`"]) linux(("`Linux`")) -.-> linux/UserandGroupManagementGroup(["`User and Group Management`"]) linux/BasicFileOperationsGroup -.-> linux/cp("`File Copying`") linux/SystemInformationandMonitoringGroup -.-> linux/dd("`File Converting/Copying`") linux/UserandGroupManagementGroup -.-> linux/sudo("`Privilege Granting`") subgraph Lab Skills linux/cp -.-> lab-422630{{"`Linux dd 命令实用示例`"}} linux/dd -.-> lab-422630{{"`Linux dd 命令实用示例`"}} linux/sudo -.-> lab-422630{{"`Linux dd 命令实用示例`"}} end

理解 dd 命令的语法和选项

在这一步中,我们将学习 Linux 中 dd 命令的语法和选项。dd 命令是一个强大的工具,用于低级数据操作,包括创建存储设备的备份镜像。

首先,让我们了解 dd 命令的基本语法:

dd if=<input_file> of=<output_file> [options]

以下是命令中每个部分的含义:

  • if=<input_file>:指定输入文件或设备。
  • of=<output_file>:指定输出文件或设备。
  • [options]:用于自定义 dd 命令行为的各种选项。

dd 命令的一些常见选项包括:

  • bs=<bytes>:设置块大小(以字节为单位)。默认值为 512 字节。
  • count=<blocks>:指定要复制的输入块的数量。
  • conv=<conversion>:对输入数据执行各种转换,例如 conv=notrunc 表示不截断输出文件。
  • status=<type>:控制复制过程中显示的状态更新。status=progress 选项会显示进度。

示例用法:

sudo dd if=/dev/sdb of=/tmp/usb_backup.img bs=4M status=progress

此命令创建 /dev/sdb 设备(通常是 USB 驱动器)的备份镜像,并将其存储在 /tmp/usb_backup.img 文件中。bs=4M 选项将块大小设置为 4 MB,status=progress 显示复制操作的进度。

示例输出:

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 60.0926 s, 17.9 MB/s

输出显示 1 GB 的数据从输入设备复制到输出文件,复制操作耗时 60 秒,传输速率为 17.9 MB/s。

创建 USB 驱动器的备份镜像

在这一步中,我们将使用 dd 命令创建 USB 驱动器的备份镜像。

首先,我们需要识别 USB 驱动器的设备。你可以使用 lsblk 命令列出系统中连接的所有块设备:

sudo lsblk

找到与你的 USB 驱动器对应的设备,通常命名为 /dev/sdb 或类似名称。

接下来,我们创建 USB 驱动器的备份镜像:

sudo dd if=/dev/sdb of=~/project/usb_backup.img bs=4M status=progress

此命令在 ~/project 目录下创建一个名为 usb_backup.img 的备份镜像文件。bs=4M 选项将块大小设置为 4 MB,status=progress 显示复制操作的进度。

示例输出:

4096000000 bytes (4.1 GB, 3.8 GiB) copied, 180.104 s, 22.7 MB/s

输出显示 4.1 GB 的数据从 USB 驱动器复制到备份镜像文件,复制操作耗时 180 秒,传输速率为 22.7 MB/s。

将备份镜像恢复到 USB 驱动器

在这一步中,我们将把之前创建的 USB 驱动器备份镜像恢复到 USB 驱动器上。

首先,我们再次使用 lsblk 命令识别 USB 驱动器的设备:

sudo lsblk

找到与你的 USB 驱动器对应的设备,通常命名为 /dev/sdb 或类似名称。

接下来,我们将备份镜像恢复到 USB 驱动器:

sudo dd if=~/project/usb_backup.img of=/dev/sdb bs=4M status=progress

此命令将 usb_backup.img 文件恢复到 USB 驱动器设备 /dev/sdbbs=4M 选项将块大小设置为 4 MB,status=progress 显示恢复操作的进度。

示例输出:

4096000000 bytes (4.1 GB, 3.8 GiB) copied, 180.104 s, 22.7 MB/s

输出显示 4.1 GB 的数据从备份镜像文件复制到 USB 驱动器,恢复操作耗时 180 秒,传输速率为 22.7 MB/s。

恢复操作完成后,你可以验证 USB 驱动器的内容,以确保数据已正确恢复。

总结

在本实验中,你学习了 Linux 中 dd 命令的语法和选项,这是一个用于低级数据操作和创建存储设备备份镜像的强大工具。你探索了命令的基本结构,包括 if(输入文件)、of(输出文件)以及各种选项,如 bs(块大小)、count(块数量)、conv(数据转换)和 status(进度显示)。接着,你学习了如何通过识别设备并使用 dd 命令将数据复制到镜像文件来创建 USB 驱动器的备份镜像。最后,你了解了如何将备份镜像恢复到 USB 驱动器,确保数据准确复制。

Linux 命令速查表

您可能感兴趣的其他 Linux 教程