先感谢漂移菌的技术支持,耐心、细致的帮我解决了一个困扰我很久的问题——树莓派系统备份问题。
问题的提出:
树莓派各种版本系统,各种软件,各种更新...总之最简单的备份方法就是使用镜像备份,即将树莓派的SD卡(硬盘)通过工具(如:Win32DiskImager)整个备份,下次需要使用的时候,直接将备份文件再写入SD卡,简单粗暴实用。
需要备份情况:
好不容易搞好了项目,保存一下留个纪念
朋友也想用最简单的方法实现我的项目,类似直接把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