巧用 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

经验证的 SD 卡采购链接

¥17.5 闪迪 8GB Class10 A1
¥30.9 闪迪 16GB Class10 A1

posted @ 2020-08-24 15:21  KevinAshton  阅读(1072)  评论(0编辑  收藏  举报