巧用 Linux dd 命令生成最小 Image 文件
背景
基于 RaspberryPi 设计了一个 LoRaWAN 网关(物联网设备),原本是安装在 8GB 的 TF 卡中。
按传统的办法,需要生成了一个 8GB 的 Image 文件,然后批量复制到其他 TF 卡之中。
问题
批量复制 8GB Image 到 TF 卡,耗时很大。其实 Linux 真正占用不到 1.5GB,希望能缩小 Image 文件大小。
解决
-
将 TF 装入卡套,插进 win10 电脑,打开 DiskGenius,查看主分区,如:
簇大小:4096,已用簇数:292,656 => 对应扇区:(292,656 * 4,096) / 512 = 2,341,248
起始扇区号:131,072
需要复制的扇区数:131,072 + 2,341,248 = 2,472,320 -
将 TF 插入 Linux 电脑,制作镜像
dd if=/dev/mmcblk0 of=./SX1302GWRaspi.img bs=512 count=2472320 conv=noerror,sync status=progress -
批量复制 TF 卡
dd if=./SX1302GWRaspi.img of=/dev/mmcblk0 bs=64k conv=noerror,sync status=progress
注意:此方便生成的镜像依赖 TF 卡容量,如母盘为 8GB,批量复制的子盘也必须为 8GB