如何在 Windows、Linux 和 macOS 上克隆 Raspberry Pi SD 卡

Raspberry Pi 是终极修补匠的玩具。 它的大多数用户都喜欢在此过程中试验和破坏工作装置。 然而,尽管它很有趣,但每个人都喜欢拥有一个可以在实验结束后返回的工作基线配置。

另一个常见的情况是,假设您刚刚了解了一个很酷的基于 Raspberry Pi 的新项目或 Linux 发行版,并且迫不及待地想尝试一下。 问题是,您只有一张 micro SD 卡,并且已经有一个您不想丢失的工作安装。

在上述两种情况下,对您的工作 Raspberry Pi 安装进行精确的、逐位相同的备份会很有帮助。 所以今天,我们将学习如何 克隆或备份 将 Raspberry Pi micro SD 卡转换为图像文件,以及 恢复 我们完成实验后的图像。 我们将解释如何在 Windows、Linux 和最后是 macOS 上执行此操作。

笔记:此方法将创建一个与 SD 卡总容量大小完全相同的图像文件。 例如,如果您有 16 GB 的 SD 卡,则生成的映像文件也将是 16 GB,无论您的安装实际使用了多少空间。 有一种缩小图像大小的方法,但它只适用于 Linux,我们将在本教程后面进行解释。

视窗说明

备份树莓派 SD 卡

1. 使用 USB 或内置读卡器将要克隆的 micro SD 卡插入 PC。

2. 下载并安装 Win32DiskImager,然后运行它。 你会看到这样的屏幕:

成像仪

3. 在下面 设备 右上角的部分, 选择您的 SD 卡的驱动器. 这是 D: 就我而言。 现在单击左侧的文件夹图标,然后 选择位置和文件名 将保存图像文件的位置。 我选择了文件名 raspbian_backup_19_oct.img. 你可以选择任何你喜欢的文件名,但最好有一个 .img 扩大。 完成后,点击 按钮。

imager_read

4. 这将在您指定的位置克隆 SD 卡。 抄袭 需要一段时间 完成,因此在此期间不要关闭电脑或让电脑进入睡眠状态。 完成后,您将收到“读取成功”消息。

imager_success

您现在可以自由地将卡插回您的 Raspberry Pi 并破坏或安装新发行版。 完成播放并想要恢复备份的图像后,请按照下一部分中的步骤进行操作。

恢复树莓派 SD 卡

将 micro SD 卡插入 PC,然后打开 Win32DiskImager。 选择图像文件 您之前创建的,以及适当的 驾驶 在里面 设备 部分。 现在,点击 按钮。 图像将完全按照您复制时的状态保存到 SD 卡中。

imager_write

同样,此过程将需要一段时间,具体取决于 SD 卡的大小。 恢复完成后,您可以从 PC 中取出该卡,然后将其重新插入 Raspberry Pi。

Linux 说明

备份树莓派 SD 卡

1. 使用 USB 或内置读卡器将 SD 卡插入 PC。 现在开一个 终端 窗口,然后输入命令 sudo fdisk -l. 这将列出系统上存在的所有文件系统。

2. 尝试找出 设备名称 您的 SD 卡。 我有一张 16GB 的 SD 卡,因此很容易识别为设备 /dev/sdb 它的大小为 14.9GB。 这是因为设备上的实际存储总是略低于宣传的。 记下此设备名称.

磁盘

3. 使用 dd 命令将图像写入硬盘。 例如:

sudo dd if=/dev/sdb of=~/raspbian_backup.img

在这里, 如果 参数(输入文件)指定要克隆的文件。 就我而言,它是 /dev/sdb,这是我的 SD 卡的设备名称。 将其替换为您的设备名称。 这 参数(输出文件)指定要写入的文件名。 我选择了 raspbian_backup.img 在我的主目录中。

笔记 小心,在执行之前仔细检查参数 dd 命令,因为在此处输入错误的参数可能会破坏驱动器上的数据。

在克隆完成之前,您不会看到命令的任何输出,这可能需要一段时间,具体取决于 SD 卡的大小。 完成后,您将看到如下输出。

dd-成功

您现在可以移除 SD 卡并在您的 Pi 中使用它。 准备好恢复备份的映像后,请按照以下说明进行操作:

恢复树莓派 SD 卡

1. 将 SD 卡插入 PC。 在我们恢复镜像之前,重要的是要确保 SD 卡的分区是 卸载. 要验证这一点,请打开 终端并执行命令 sudo mount | grep sdb. 在这里,替换 sdb 使用您的 SD 卡的设备名称。

如果您看到空白输出,则无需执行任何操作。 如果您确实看到一些已挂载的分区, 卸载 列出的那些。 例如:

sudo umount /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

2. 使用 dd 将图像文件写入 SD 卡的命令:

sudo dd if=~/raspbian_backup.img of=/dev/sdb

这就像我们用来克隆的命令,但是 反转. 这一次, 输入文件 if 是备用图片,而 输出文件 of 是 SD 卡设备。

再次验证,然后 在这里双重验证参数因为在这里输入错误的命令会导致永久的数据丢失。

写入完成后,您将看到来自 dd 的确认。 然后,您可以从 PC 中取出卡,然后将其重新插入 Raspberry Pi。

macOS 使用说明

备份树莓派 SD 卡

1. 使用 USB 或内置读卡器将 SD 卡插入 Mac。 现在开一个 终端 窗口,然后输入命令 diskutil list. 尝试识别 SD 卡的设备 ID。 例如,我的显示为 /dev/disk3.

mac-diskutil

2. 卸载 SD 卡:

diskutil unmountDisk /dev/disk3

在这里,替换 disk3 使用您在步骤 1 中确定的 SD 卡的名称。

3. 使用 dd 命令将图像写入硬盘。 例如:

sudo dd if=/dev/disk3 of=~/raspbian_backup.img

在这里, if 参数(输入文件)指定要克隆的文件。 就我而言,它是 /dev/disk3,这是我的 SD 卡的设备名称。 将其替换为您的设备名称。 这 of 参数(输出文件)指定要写入的文件名。 我选择了 raspbian_backup.img 在我的主目录中。

笔记:小心,在执行之前仔细检查参数 dd 命令,因为在此处输入错误的参数可能会破坏驱动器上的数据。

在克隆完成之前,您不会看到命令的任何输出,这可能需要一段时间,具体取决于 SD 卡的大小。 然后,您可以移除 SD 卡并在您的 Pi 中使用它。 准备好恢复备份的映像后,请按照以下说明进行操作:

恢复树莓派 SD 卡

1. 将 SD 卡插入 Mac。 打开一个 终端 窗口,并使用以下命令卸载它:

diskutil unmountDisk /dev/disk3

在这里,替换 disk3 使用您在上一节的步骤 1 中确定的 SD 名称。

2. 使用 dd 将图像文件写入 SD 卡的命令:

sudo dd if=~/raspbian_backup.img of=/dev/disk3

这就像我们用来克隆的命令,但是 反转. 这一次, 输入文件 if 是备用图片,而 输出文件 of 是 SD 卡设备。

再次验证,然后 在这里双重验证参数因为在这里输入错误的命令会导致永久的数据丢失。

写入完成后,您将看到来自 dd 的确认。 然后,您可以从 Mac 中取出该卡,然后将其重新插入 Raspberry Pi。

如何缩小克隆的 Raspberry Pi 映像(仅限 Linux)

如文章开头所述,这些方法创建的映像文件等于 SD 卡的总容量。 例如,克隆容量为 32GB 的 SD 卡将创建 32GB 的图像文件,即使卡上实际使用的只有 5GB。 如果您只有一个或两个这样的图像,这很好,但超过此数量(尤其是如果您使用 SSD)会导致您的空间不足。

为了解决这个限制,我们将使用 PiShrink,一个脚本 自动缩小 Pi 图像 然后它将在启动时自动调整为 SD 卡的最大大小。 这也使得将图像复制回 SD 卡的速度更快。

不幸的是,这个工具只在 Linux 上可用。 如果您没有安装 Linux,您可以在虚拟机中安装最新版本的 Ubuntu 或 Linux Mint,并在其中运行此脚本。 以下是如何使用它:

1. 下载 PiShrink 脚本,并使其可执行。 在一个 终端,输入以下两条命令:

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

chmod +x ./pishrink.sh

2.运行脚本其次是 图像名称 你想缩小。

sudo ./pishrink.sh ./raspbian_backup.img

鱼腥草

3. 然后图像将被缩小。 完成后,您可以按照上面列出的方法将缩小的图像文件写入 SD 卡。 例如,在 Linux 上:

sudo dd if=~/raspbian_backup.img of=/dev/sdb

还请参见:如何通过电子邮件在 Raspberry Pi 上运行命令

克隆 Raspberry Pi SD 卡以轻松恢复

这就是克隆(也称为备份)和恢复现有 Raspberry Pi 安装的全部内容。 您再也不会失去在 Raspberry Pi 上完美运行的 Raspbian OS 安装来尝试一个新的发行版或一个很酷的项目。 只需备份您的安装,修改并在完成后恢复映像。 没有比这更简单的了。

您喜欢这种备份 Raspberry Pi 安装的方法吗? 有更好的方法吗? 问题? 注释? 在下面的评论部分让我们知道。

Leave a Comment

Your email address will not be published.