提取树莓派系统并复制到其他SD卡

使用树莓派Zero做了一个网关,程序用Python写的。现在已经开发完成,正准备批量生产,不可能每次都从官方的系统烧录,再安装软件,安装依赖库,各种配置,麻烦不说,还容易出错。所以想找个办法把一个已经安装和配置好的树莓派系统提取出来,然后再烧录到其他的SD卡上。这样可以省下很多时间和精力。
折腾了很久才成功,所以记录一下,希望能够帮助有同样需要的人。所有操作均在Mac上完成,需要使用Docker。

1. 准备系统

  • 从官方网站下载树莓派系统并烧录到SD卡
  • 安装自己需要的软件
  • 配置好一切东西

2. 提取系统

  • 将SD卡插到读卡器上,插到Mac上,打开终端。diskutil list 查看一下SD卡有没有读出来

  • 使用 diskutil info /dev/disk2 查看一下SD卡有多少个块

  • 使用 sudo dd bs=512 count=30597120 if=/dev/disk2 of=./full_20200303.img 命令,将SD卡打成img镜像,这里的count是第二步中看到的块数。等待执行完成,16G的卡大概需要23分钟

  • 这个时候可以看到生成了一个15G的文件

3. 剪裁系统

  • https://github.com/thhan/Docker-PiShrink Clone一份代码到本地。将刚才生成的img文件复制到代码的根目录。然后执行 ./docker.sh,注意,要把Docker启动起来。进入容器后,执行 pishrink ./full_20200303.img

  • 剪裁完成后会有输出大小,这时可以看到img文件变成了2.4G

4. 烧录系统

  • 我们可以使用刚才剪裁好的系统,烧录到新的SD卡上。和从官网下载的系统烧录步骤一样
posted @ 2020-03-03 22:33  guopanbo  阅读(2165)  评论(0编辑  收藏  举报