树莓派系统剪裁、克隆
最近需要对10多个树莓派进行烧写系统,没办法逐个去配置,所以想配置好一个之后再去克隆,并且把系统剪裁到最小,方便储存、传输,并且缩短烧写时间。
环境
- 树莓派3B
- 系统版本:stretch,2018年4月28日
- 16G tf卡
失败尝试
- 克隆后在主机上剪裁
按照这个地方给的方法尝试了一下,教程中关于分区开始和结束没有写准确,修正后依然无法启动 - 直接在树莓派上剪裁
按照上面链接中给出的第二个脚本,依然无法启动,可能跟硬件版本有关
经过上面尝试后觉得还是直接在树莓派上克隆并剪裁靠谱,所以集中精力搞这个。
成功
经过反复查找,终于在github上找到了两个有用的链接,分别对应不同的系统版本,主要操作是:
1. 将系统烧写、配置好,此为tf卡A;
2. 另外准备一个16G或8G速度快一点的tf卡B,在电脑上格式化为exFAT格式,以方便树莓派读写并存储大于4G的文件,利用usb读卡器插上树莓派;
3. 首先安装exFAT读写库:exfat-fuse,然后挂载到/mnt目录;
4. 使用下面的脚本:
#!/bin/sh
#install tools
sudo apt-get -y install rsync dosfstools parted kpartx
#mount USB device
usbmount=/mnt
img=$usbmount/rpi-`date +%Y%m%d-%H%M`.img
echo ===================== part 1, create a new blank img ===============================
# New img file
#sudo rm $img
bootsz=`df -P | grep /boot | awk '{print $2}'`
rootsz=`df -P | grep /dev/root | awk '{print $3}'`
totalsz=`echo $bootsz $rootsz | awk '{print int(($1+$2)*1.5)}'`
sudo dd if=/dev/zero of=$img bs=1K co