参考链接:How to Back Up Your Raspberry Pi as a Disk Image | Tom's Hardware (tomshardware.com)
第一步、压缩分区大小,以便减少img文件大小。(此步骤非必须)
这一步主要是为了压缩需要备份的系统分区大小,正常情况下如果SD卡大小32GB,实际系统只占用了10GB,还有22GB是未使用的,但是在使用dd命令只做img镜像的时候,是按照整张卡的大小备份的,所以必须要准备一张容量大于32GB的SD卡才能完成备份,不仅增加成本,而且备份的时间也会长很多。
可以使用gparted工具来压缩分区,把待备份的系统分区压缩到合适的大小。
需要一个读卡器,两张SD卡,都安装有树莓派系统,其中一张卡为需要备份的树莓派系统。
1.把不需要备份的SD卡插入树莓派,安装gparted工具
sudo apt-get install gparted -y
2.打开gparted,进行压缩
选择要备份的SD卡,一般为/dev/sda
如果没有卸载的话先卸载SD卡
右键选择Resize/Move
输入新的分区大小,只要输入比当前占用的大小大一点就可以了
点击绿色的对勾开始压缩
压缩完成以后将需要备份的SD插入树莓派。
二、开始备份
1.插入SD卡,用来暂存生成的img文件,可以使用如下命令查看插入的sd卡挂载名称
lsblk
2.使用dd命令制作img镜像文件
下面的命令适用于制作未经过分区压缩的SD卡
sudo dd if=/dev/mmcblk0 of=[mount point]/myimg.img bs=1M
下面的命令适用于已经分区压缩过的SD卡,加入count参数,比如下面的例子,如果备份系统的整体大小为6GB,可以适当分配7000MB的大小,保证把所有数据都copy到img中。
sudo dd if=/dev/mmcblk0 of=[mount point]/myimg.img bs=1M count=7000
3.制作完成后压缩成img.gz文件
使用如下命令下载压缩脚本
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
sudo chmod +x pishrink.sh
sudo mv pishrink.sh /usr/local/bin
切换到img所在目录
cd /media/pi/pickup
进行压缩
sudo pishrink.sh -z myimg.img
三、还原
1.使用树莓派系统自带的imager工具还原系统