做了一套感知装置,本地计算节点使用了树莓派3B 。因为需要在不同的示范工程里部署,需要制作一批同样的装置,一台台升级、配置的话费时费力,而且由于多名研究生同时做这类事情时,因为不能保证每人的操作都规范,对每套装置的检测更是让人头大。由于本地计算节点都是配置一致的树莓派3B ,就想着通过直接复制树莓派3B 使用的SD卡实现系统的量产。
复制SD卡,是常见的操作,但是能够找到的复制工具,多多少少都有点瑕疵。集中起来,一来是制作的SD卡的镜像与SD卡的容量一致,二来呢复制的时候要对SD卡逐块写,复制使用的时间更是让人窒息。在分析了作为母盘的SD 卡的分区与文件系统结构后,尝试了下面SD卡的复制方案。效果良好。考虑到课题组还有类似的工作要完成,整理了这段文字,供课题组的师生借鉴(其实,这个方案以前偶尔用过,但只停留在个人偶尔使用一下而已)。
树莓派SD卡的复制(量产)首先需要对母盘SD卡备份。具体备份步骤如下:
图1. SD的分区信息
- 准备一台Linux系统。学生时代养成的习惯,本文使用的是fedora系统;
- 将SD卡插入读写器,通过读写器将SD卡接入Linux系统;
- 启动终端,使用su命令获得root权限;(以下操作都在终端窗口输入命令/指令完成)
- 使用fdisk -l 命令查看 SD卡的分区信息如图1;
- 使用 umount /dev/sdb1卸载SD开上的第一个分区;(分区情况见图1,下同)
- 使用 umount /dev/sdb3卸载SD开上的第三个分区;
- 使用mkdir命令在 /mnt目录下建立子目录 sdb1和sdb3;
- 使用mount /dev/sdb1 /mnt/sdb1命令将SD卡的第一个分区挂载到/mnt/sdb1 ;
- 使用mount /dev/sdb3 /mnt/sdb3命令将SD卡的第一个分区挂载到/mnt/sdb3 ;
- 考虑到本文操作时使用的用户名为在wind,故在/home/wind目录里建立子目录mmc;
- 使用 cd /home/wind/mmc 命令将当前目录设置为 /home/wind/mmc
- 使用 tar -zcvf sdb1.tar.gz /mnt/sdb1命令将 sd卡第一个分区里的文件内容打包、压缩到/ /home/wind/mmc/sdb1.tar.gz文件;
- 使用 tar -zcvf sdb3.tar.gz /mnt/sdb3命令将 sd卡第三个分区里的文件内容打包、压缩到/ /home/wind/mmc/sdb3.tar.gz文件;
至此,母盘SD卡的内容备份完毕。