我有一个基本的 Raspberry Pi SD 映像,当我需要它时,我会将其闪存到所有微型 SD 卡上。
根据使用情况,我将不得不重新安装图像并进行更改:
- /boot/config.txt 激活一些配置
- /boot/wpa_supplicant.conf 设置适当的 wifi 凭证
- 另一个 /boot/gui13.conf 文件,用于配置我需要 RPi 执行的操作。
我看到像 Balena.io 这样的一些公司会为您提供一个“预配置的映像”,其中已经包含适当的 Wifi 凭据(可能还有我的用户 ID 和某种凭据,用于向他们的服务器验证我的 rpi)。
他们是怎么做到的?
我想做同样的事情:能够在我的图像中插入一些 JSON / Conf 文件并准备一个类似的 .img 文件。
你们知道他们是怎么做到的吗?是否有工具/库可以自动化此过程?
答案1
在你的情况下,它会更简单:
下载您选择的 RaspberryPi 操作系统映像。说它叫
rpios.img
找到分区的开头
/boot
。参考fdisk -l rpios.img Disk rpios.img: 1.7 GiB, 1858076672 bytes, 3629056 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: 0x067e19d7 Device Boot Start End Sectors Size Id Type rpios.img1 8192 532479 524288 256M c W95 FAT32 (LBA) rpios.img2 532480 3629055 3096576 1.5G 83 Linux
乘以值扇区大小和开始
rpios.img1
(分区)的/boot
。bc -l <<< 8192*512 4194304
/boot
使用偏移量挂载分区:mount -o offset=4194304 rpios.img /mnt
wpa_supplicant.conf
使用您所需的配置创建所有文件,例如/mnt
卸载
umount /mnt
。现在您拥有了个性化图像,您可以在需要的地方闪烁。
提示:使用
cp rpios.img /dev/sdb && sync
而不是dd
-type 命令也可以很好地工作,而且更简单,因为您不必指定块大小以获得理想的速度。当然,上述步骤可以自动化(例如在脚本中或其他方式),以便在闪烁之前为每个用例创建“个性化”图像。