背景
团队最近在做树莓派相关的项目,每次下发树莓派都需要经过:配件装盒-官方镜像烧录-安全策略配置&采集程序部署等。每台树莓派都需要经过以上步骤。
突发奇想,是否可以在官方镜像基础上配置完我们的策略、部署好我们的程序之后将这个版本打成我们私有镜像,这样后面要上线的树莓派只需要手动烧录就可以了呢?
步骤
说干就干。提前准备好,组装好配件的树莓派、sd卡1(128G)、sd卡2(16G)。这里准备两张sd卡的用途是:
1、树莓派批量购买发送的大容量系统卡。
2、制作系统的中间卡。
之所以选一张16G小容量的中间卡,是因为在后面写镜像类dd命令是全盘复制,小容量会节省时间。
卡2准备好系统
先选择小容量sd卡2烧录好官方系统、做好我们最终的系统配置。
卡1格式化&挂载
把卡1使用读卡器连接树莓派usb口,会发现/dev下面多出设备。我这里是/dev/sda。下面格式化卡1:
// 若已下载则忽略
apt-get install xfsprogs
mkfs.xfs /dev/sda
挂载卡1:
mkdir /data
mount /dev/sda /data
压缩卡2至卡1
下面将卡2内容传输至卡1:
// 若已下载则忽略
sudo apt install dc3dd
sudo dc3dd if=/dev/mmcblk0 of=/data/pi.img
这里传输需要等待二十分钟左右。传输完成之后就可以使用树莓派官方压缩脚本对镜像进行压缩了。镜像制作过程提示信息:
镜像压缩
下载镜像脚本:
git clone https://github.com/Drewsif/PiShrink/
chmod +x PiShrink/pishrink.sh
sudo mv PiShrink/pishrink.sh /usr/local/bin
压缩镜像:
sudo pishrink.sh -z /data/pi.img
压缩过程提示信息:
压缩过程完成之后我们会得到一个压缩后的镜像文件:pi.img.gz
。查看大小只有600+M。后续烧录镜像我们只需要在windows下使用Win32DiskImager工具,将上述解压出来的.img镜像文件烧录进sd卡即可!