跳过主要内容

如何将raspberry pi备份为磁盘映像

如何将raspberry pi备份为磁盘映像
(图片信用:汤姆的硬件)

当您在Raspberry PI项目上努力工作时,您将想要完成整个操作系统和软件的完整磁盘备份,而不仅仅是您的代码。即便是最好的覆盆子Pi microSD卡可以失败或迷路,您也可能还希望重新使用另一张卡上的项目或与他人分享。例如,在Tom的硬件上,我们有一个覆盆子PI Web服务器我们用在电池测试中,我们有多个都有相同的图像。

有几种备份树莓派的方法。你可以使用树莓派操作系统的SD卡复制应用程序,它在开始菜单的附件部分,直接克隆你的microSD卡到另一个microSD卡。但除非你马上需要另一张卡,否则创建一个磁盘镜像是一个更好的主意:一个文件,你可以存储在个人电脑或云上,分发给其他人,并随时写入新的microSD卡,使用蚀刻机或树莓派磁盘成像仪。

有些人建议把microSD卡插在Windows电脑上,逐扇区复制Win32磁盘成像仪,但这造成了两个问题。首先,您要写入的卡片必须与您备份的卡片大小完全相同或更大。因为有细微差别的行业不同品牌和型号的卡片上,32 gb San磁盘卡可能还有一些比32 gb三星卡片和部门,如果小目标卡,复制过程不会正常工作和卡不会启动。其次,你的备份文件将非常大:你的卡的全部大小,即使你只用了32GB中的3个。

幸运的是,有一种方法可以创建一个压缩的磁盘映像,甚至小于您备份的源码卡上的使用空间数量。要创建磁盘映像,您需要一个外部USB驱动器来连接到raspberry pi并将其写入。如果USB驱动器的容量高于源microSD卡(例如32GB USB驱动器到图像为16GB卡),则可以在缩小之前备份整卡。但是,如果您没有足够大的USB驱动器,请查看本文底部的部分,缩小rootfs分区。

如何制作覆盆子pi磁盘映像

1.格式化u盘或硬盘作为NTFS(如果您在PC上使用Windows并计划在PC上读取此驱动器)或Ext4(适用于Linux)。确保闪存驱动器大于使用空间的容量。确保为您记住的驱动器一个卷名称(例如:ex:pibkup“在我们的情况下)。如果您愿意,您还可以直接在Raspberry PI上格式化驱动器。

磁盘格式

(图片信用:汤姆的硬件)

2.连接USB驱动器给你的树莓派。

3.安装pishrink.sh在你的覆盆子pi上并将它复制到/usr/local/bin通过键入文件夹:

wget https://raw.githubusercontent.com/drewsif/pishrink/master/pishrink.sh sudo chmod + x pishrink.sh sudo mv pishrink.sh / usr / local / bin

4.检查挂载点路径通过输入来的USB驱动器

lsblk

使用LSBLK查找挂载点

(图片信用:汤姆的硬件)

您将看到连接到Raspberry PI的驱动器列表以及每个连接点名称。您的USB驱动器可能会安装在/媒体/π/(卷名).在我们的情况下,它是/媒体/π/ pibkup.如果您的驱动器未安装,请尝试使用连接的USB驱动器重新启动,或者您可以通过键入手动安装它sudo mkdir /dev/mysub创建目录和/dev/sda1 /dev/myusb安装它。但是,如果它已经安装了,你就不能而且不应该这样做。

5.将所有数据复制到一个img文件使用dd命令。

/dev/mmcblk0 of= /dev/mmcblk0img b = 1米

但是,如果缩小源microSD卡上的分区,则需要使用count属性来告诉它只复制正在使用的mb。例如,在我们的例子中,我们有一个16GB的卡,但是在将rootfs压缩到6.5GB之后,卡中只有大约6.8GB在使用(当你计算/boot分区时)。因此,为了安全起见(复制太多数据比复制太少数据好),我们将dd设置为复制7GB数据,使用count=7000。数据量等于count *块大小(bs),所以7000 * 1M意味着7GB。

sudo dd if = / dev / mmcblk0 = [mount point] / myimg.img bs = 1m count = 7000

使用DD复制整个MicroSD卡

(图片信用:汤姆的硬件)

只有在之前收缩了分区时才这样做。如果您使用count和复制少于完整分区,那么您可能会有一个不完整的映像,缺少数据或无法引导。

6.导航到USB驱动器的根目录

CD / MEDIA / PI / PICKUP

7.使用pishrink与-z参数,它使用gzip压缩您的图像。

sudo pishrink.sh -z myimg.img

使用带-z选项的pishrink收缩树莓派图像

(图片信用:汤姆的硬件)

此过程也需要几分钟,但是,当完成时,您将最终包含一个称为myimg.img.gz的合理的映像文件。您可以将此文件复制到PC,将其上传到云或将其发送给朋友。

如何在覆盆子pi上缩小分区

如果要制作MicroSD卡的磁盘映像,但没有更大的容量的外部USB驱动器,则会出现问题。即使您在上面的教程中创建的最终的.img.gz文件应该小于源卡,您仍然需要足够的空间来容纳作为过程的一部分的未压缩的.img文件。

What’s particularly frustrating is that, by default, the dd file copy process makes an image out of ALL the space on your microSD card, even the unused space.For example, you might have a 64GB microSD card, but only be actually using 6GB of space. If you don’t shrink the rootfs partition, you will end up copying all 64GB over to your external drive, which will take a lot more time to complete and will require that you have at least 65GB of free space.

因此,解决方案是将microSD卡的rootfs分区缩小到只比使用的空间大一点的大小。然后你可以把你的分区复制到USB驱动器上。

要进行萎缩,您需要一个USB microSD读卡器和第二个MicroSD卡,其中覆盆子PI OS。

1.放置源microSD卡(你想复制的那个)在一个读者并连接到覆盆子pi。

2.启动你的覆盆子pi关闭不同的microSD卡。

3.安装gparted.在你的覆盆子pi上。

sudo apt-get安装gparted -y

4.启动gparted从覆盆子PI OS GUI内。它位于“开始”菜单的“系统工具”部分中。

启动gparted

(图片信用:汤姆的硬件)

5.选择外接microSD卡从GParted窗口右上角的下拉菜单中。

选择一个驱动器

(图片信用:汤姆的硬件)

6.卸载rootfs分区如果通过右键单击并从菜单中选择卸载键标记(键图标)。如果选项呈灰色,则未安装。

卸下分区

(图片信用:汤姆的硬件)

7.右键单击rootfs并选择“调整大小/移动”。

在gparted中调整/移动分区

(图片信用:汤姆的硬件)

8.设置分区的新大小由于最小尺寸或稍微略大,单击调整大小..请注意,GPARTED可能会超过所用空间的量(当我们卸载使用4.3GB使用的分区时,它更改为6GB正在使用中),但您必须与之使用至少它最小。

在GPARTED中输入分区的新大小

(图片信用:汤姆的硬件)

9。单击绿色复选标记在gparted窗口和单击Apply(受到警告时)继续前进。

单击GParted Checkmark以进程调整大小

(图片信用:汤姆的硬件)

10。关掉覆盆子π。

11.拆卸源microSD卡从USB读卡器插入到覆盆子PI中以启动。

12.按照说明在上面关于创建磁盘映像的部分。确保使用属性。

将你的树莓派磁盘图像写入卡片

一旦你完成了,你就有了一个扩展名为。img.gz的文件,你可以像从网上下载任何。img文件一样把它写入或“刻录”到microSD卡上。刻录自定义图像最简单的方法是:

1.发射覆盆子PI成像仪在你的电脑上。你可以下载raspberry pi成像仪如果你没有已经拥有它。

覆盆子π成像仪

(图片信用:汤姆的硬件)

2.选择使用自定义从“选择OS”菜单中。

覆盆子PI成像仪使用自定义

(图片信用:汤姆的硬件)

3.选择您的.mg.gz文件

4.选择MicroSD卡你想燃烧它。

覆盆子π成像仪

(图片信用:汤姆的硬件)

5.单击“写入”

覆盆子π成像仪

(图片信用:汤姆的硬件)
艾夫拉姆·皮尔奇是汤姆五金的总编。当他不在工作时摆弄最新的电子产品,或者在贸易展上戴上虚拟现实头盔时,你会发现他在摆弄手机、拆开电脑或编写插件。凭借他的技术知识和对测试的热情,Avram开发了许多现实世界的基准测试,包括我们的笔记本电脑电池测试。
  • aixylinux
    有一种简单的方法可以创建压缩的备份映像,而不需要中间文件。

    CD / media / pi / pibkp
    DD if = / dev / mmcblk0 |gzip -c - > mysys.img.gz

    我确实有一个问题,在USB驱动器上的NTFS文件系统是只读的。固定用:

    sudo apt-get删除ntfsprogs
    sudo apt-get安装ntfs-3g
    重启
    回复
  • ZagrobaAtTom 'sHardware
    “如果您的驱动器未安装,请尝试使用连接的USB驱动器重新启动,或者您可以通过键入sudo mkdir / dev / mysub手动安装它以创建目录和sudo init / dev / sda1 / dev / myusb以安装它。”/ dev / myusb或/ dev / mysub需要更正。
    回复