该篇教程主要讲解 Ubuntu 下使用 dd 命令备份磁盘为镜像

dd 命令:

Linux系统中的一个强大工具,主要用于在Unix和类Unix系统上转换和复制文件。它可以从标准输入或文件中读取数据,根据指定的格式转换数据,然后输出到文件、设备或标准输出。dd命令的参数包括输入文件(if)、输出文件(of)、块大小(bs)等,这些参数允许用户精确控制数据的读取、转换和写入过程。

dd 命令的应用场景非常广泛,包括但不限于:

● 数据备份和恢复:可以使用 dd 命令备份硬盘数据到另一个硬盘,或者从备份中恢复数据。

● 磁盘擦除和数据恢复:dd 命令可以用于擦除磁盘上的数据,或者在数据丢失后尝试恢复数据。

● 性能基准测试:通过 dd 命令可以测试磁盘的读写速度,评估系统的 I/O 性能。

数据转换:dd 命令可以在复制过程中处理数据,例如转换字节序或在 ASCII 与 EBCDIC 编码间互换。

● 创建特定大小的文件:可以使用dd命令创建一个指定大小且填充了特定数据的文件,如空文件或包含随机数据的文件。

● 文本大小写转换:dd 命令还可以用于将文本文件中的小写字母转换为大写字母,或反之。

使用dd命令时,需要注意其强大的功能也伴随着潜在的风险。不正确的使用可能导致数据丢失或系统损坏。因此,在使用dd命令之前,建议详细阅读其手册页(man dd)以了解所有可用选项和参数的含义及用法,并在必要时进行充分的测试。

下载Ubuntu

这里用 Ubuntu 作为演示,如果官方下载镜像比较慢,可以用清华大学开源软件镜像站速度会快一些。

清华大学开源软件镜像站:

https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases

img

可以点击时间进行排序,这里我下载最新的版本

img

这里我下载的是桌面版

img

搭建运行环境

如果是物理机运行要将镜像写入U盘,这里我是用虚拟机来运行的,简单说一下怎么跑起来。

将镜像放到“isos”目录

img

创建虚拟机,参考设置

img

直通需要备份的硬盘

img

VNC 打开,选择第一项(自动默认)

img

不用安装,直接关闭这个弹窗

img

快捷键 Ctrl+Alt+T ,打开一个终端窗口

img

获取 root 权限,输入下面命令:

img

挂载备份路径

这里演示用 SMB 进行挂载,生成的镜像会保存到这里。

安装 cifs-utils 软件包,以便支持在 Linux 系统上挂载 SMB 共享

1
apt install cifs-utils

img

创建一个名称为“backup”的文件夹

1
mkdir /mnt/backup

img

挂载 SMB 到 backup

1
mount -t cifs //IP地址/共享文件夹名称 /mnt/backup -o username=SMB账号名,password=SMB密码,uid=your_user_id,gid=your_group_id

img

查看挂载后的目录列表(可以看到有原来东西就说明没问题了)

1
ls /mnt/backup

img

备份磁盘为镜像

使用dd命令将磁盘备份为一个 img 镜像文件

列出块设备(包括磁盘)的信息,输入下面命令:

1
lsblk

img

sda 是直通需要备份的硬盘

img

将 sda 磁盘的内容,备份到 backup 目录的 emmc.img 文件中

1
dd if=/dev/sda of=/mnt/backup/emmc.img bs=4M status=progress

img

查看挂载后的目录列表,可以看到生成的 emmc.img

1
ls /mnt/backup

img

TIP:

可以通过计算 md5 校验值确保文件完整性,过程要比较久

计算要备份的磁盘的 md5

1
md5sum /dev/sda

img

计算镜像的 md5

1
md5sum /mnt/backup/emmc.img

img