先感谢漂移菌的技术支撑,耐心、细致的帮我解决了一个困扰我很久的问题——树莓派系统备份问题。

 

问题的提出:

树莓派各种版本系统,各种App,各种更新...总之Z简单的备份方法就是使用镜像备份,即将树莓派的SD卡(硬盘)通过工具(如:Win32DiskImager)整个备份,下次需要使用的时候,直接将备份文件再写入SD卡,简单粗暴实用。

 

需要备份情况:

好不容易搞好了项目,保存一下留个纪念

 

朋友也想用Z简单的方法实现我的项目,类似直接把SD卡邮寄给他

 

不想每次都更新系统

 

好不容易配置好的环境

 

...不限于上述情况,日后再总结

 

那么问题就来了:现在市场常规容量SD卡16G,每个树莓派工程都用传统方式备份,我有那个时间,电脑硬盘也没那么多空间呀,我电脑有那么大空间,朋友也不见得有...还有文件(镜像)传输的问题。

 

总结:镜像太大,存储,备份,还原,传输都不方便

我将这个需求整理了一下,然后发到群里,大牛漂移菌很快回复,并给予了耐心详细的引导。下边我把方法简单总结一下,方便大家学习使用:

 

先说明一点:这个方法虽然将镜像的大小缩小,但稍微有点麻烦。大家自己评估哈

 

项目地址:https://github.com/Drewsif/PiShrink

 

需要工具:linux系统电脑或虚拟机,电脑需要硬盘空间较多,SD卡读卡器啥的就不多说了

 

总步骤:

下载(安装)脚本

 

给SD卡做镜像

 

将镜像压缩(其实可能不是压缩,细节不用管,压缩好理解)

 

详细步骤:下边都是在linux环境下进行的

 

    下载(安装)脚本

 

参考项目https://github.com/Drewsif/PiShrink中的描述

 

逐一运行红框中的命令,第一条命令如果提示错误,可以从github的对应文件名的文档中复制到u盘里,然后复制到linux系统中。

 

给SD卡做镜像

先用lsblk命令查看SD卡的盘符,如下图所示,先不插SD卡,查询一下,插入SD卡再查询一下,多出来的就是SD卡

 

盘符即为sdb

 

用DD命令复制SD卡:(复制下边的整行命令,修改其中的sdb为你的SD卡盘符,rpi.img可以不改为你要存储的文件名)

 

sudo  dd  if=/dev/sdb  of=./rpi.img  bs=8M

 

将镜像压缩

 

命令:

sudo pishrink.sh -s rpi.img newpi.img

 

漫长的等待之后就能看到结果了,如下图所示,将32G的存储卡镜像变为了6.2G