定制化树莓派镜像

// 树莓派官方镜像下载地址
https://www.raspberrypi.org/downloads/

// 本次定制使用官方镜像 
2020-02-13-raspbian-buster-lite.img

// 可以通过两种方法来定制化镜像
// 方案一:直接修改源镜像内容 ...
// 方案二:安装包放入镜像内且在第一次启动时定制 

// 方案一就不说了,直接改就可以了 ...
// 方案二就是在rc.local中加入install安装脚本在第一次启动时执行
// 别忘记在rc.local中移除install安装脚本
// 挂载官方镜像

fdisk --bytes -lo Id,Start,Size 2020-02-13-raspbian-buster-lite.img
Disk 2020-02-13-raspbian-buster-lite.img: 1.7 GiB, 1803550720 bytes, 3522560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc1dc39e5

Id Start       Size
 c  8192   44979712
83 98304 1753219072

mount -o loop,offset=$((98304*512)),sizelimit=1753219072 2020-02-13-raspbian-buster-lite.img /mnt
// 如果镜像剩余可用空间不足以放置安装包怎么办 ...
// 网上摘录,有修改,未做验证 ...

// 创建一个10M大小的文件
dd if=/dev/zero of=/root/src.img bs=1M count=10

// 把这个文件关联成一个块设备
losetup /dev/loop0 /root/src.img

// 查看关联是否成功
losetup -a
/dev/loop0: [fd00]:176964 (/root/src.img)

// 把它格式化成ext4文件系统
mkfs.ext4 /dev/loop0

// 卸载关联关系,再查看
losetup -d /dev/loop0
losetup -a

// 向目标镜像增加空间
cat /root/src.img >> /root/dst.img

// 扫描检查
e2fsck -f /root/dst.img

// 重新设置大小
resize2fs /root/dst.img