当您在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
您将看到连接到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
只有在之前收缩了分区时才这样做。如果您使用count和复制少于完整分区,那么您可能会有一个不完整的映像,缺少数据或无法引导。
6.导航到USB驱动器的根目录.
CD / MEDIA / PI / PICKUP
7.使用pishrink与-z参数,它使用gzip压缩您的图像。
sudo pishrink.sh -z myimg.img
此过程也需要几分钟,但是,当完成时,您将最终包含一个称为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内。它位于“开始”菜单的“系统工具”部分中。
5.选择外接microSD卡从GParted窗口右上角的下拉菜单中。
6.卸载rootfs分区如果通过右键单击并从菜单中选择卸载键标记(键图标)。如果选项呈灰色,则未安装。
7.右键单击rootfs并选择“调整大小/移动”。
8.设置分区的新大小由于最小尺寸或稍微略大,单击调整大小..请注意,GPARTED可能会超过所用空间的量(当我们卸载使用4.3GB使用的分区时,它更改为6GB正在使用中),但您必须与之使用至少它最小。
9。单击绿色复选标记在gparted窗口和单击Apply(受到警告时)继续前进。
10。关掉覆盆子π。
11.拆卸源microSD卡从USB读卡器插入到覆盆子PI中以启动。
12.按照说明在上面关于创建磁盘映像的部分。确保使用数属性。
将你的树莓派磁盘图像写入卡片
一旦你完成了,你就有了一个扩展名为。img.gz的文件,你可以像从网上下载任何。img文件一样把它写入或“刻录”到microSD卡上。刻录自定义图像最简单的方法是:
1.发射覆盆子PI成像仪在你的电脑上。你可以下载raspberry pi成像仪如果你没有已经拥有它。
2.选择使用自定义从“选择OS”菜单中。
3.选择您的.mg.gz文件.
4.选择MicroSD卡你想燃烧它。
5.单击“写入”.