我正在探索在树莓派上启用 RAM 磁盘和实现只读根文件系统的过程,同时结合 Soracom 连接。
测试环境:
- 树莓派 3 代 B+ 型
- 树莓派操作系统 (Lite;32位;2020-12-02)
- Soracom SIM 卡
激活 Soracom SIM 卡:
在继续RAM磁盘和只读根文件系统设置之前,请使用以下步骤激活 Soracom SIM卡:
- 将 Soracom SIM 插入树莓派。
- 将你的树莓派连接到互联网上。
- 在 Soracom平台 注册
- 注册后,登录到 Soracom 控制台并导航到 SIM 卡管理部分。
- 找到 Soracom SIM,点击 SIM 卡的ID。
- 按照提供的说明激活 SIM 卡并完成必要的配置。
启用 RAM 磁盘:
要启用 RAM 磁盘,请遵循以下步骤:
- 打开终端,执行以下命令:
ruby
$ sudo raspi-config nonint enable_overlayfs $ sudo systemctl reboot
- reboot重新启动后,树莓派将使用覆盖从RAM磁盘启动。
禁用内存盘:
如果要禁用内存盘并从microSD卡启动,请遵循以下步骤:
- 打开终端,运行以下命令:
ruby
$ sudo raspi-config nonint disable_overlayfs $ sudo systemctl reboot
- 重新启动后,树莓派将从microSD卡启动。
检查现在的配置:
使用实例查询当前内存盘的配置信息。
shell
$ sudo raspi-config nonint get_overlay_now && echo "enabled" || echo "disabled"
该命令将显示内存盘是启用还是禁用。使用实例
总结:
将树莓派操作系统根文件系统转换为只读配置的过程是根据“RaspberryPi: Read-only Root-FS (using overlayfs).”的备忘录中提供的说明执行的。备忘录中概述的步骤被进一步研究并打包以供个人使用。
转换过程使用overlayfs,正如 “RaspberryPi: Read-only Root-FS (using overlayfs).”的备忘录中所解释的那样。
执行之后:
执行完命令后,可以使用以下命令验证文件系统配置:
bash
$ df -h /dev/mmcblk0p2 30G 1.1G 28G 4% /mnt/root-ro tmpfs 464M 712K 463M 1% /mnt/root-rw overlay 464M 712K 463M 1% / $ mount /dev/mmcblk0p2 on /mnt/root-ro type ext4 (ro) tmpfs on /mnt/root-rw type tmpfs (rw) overlay on / type overlay (rw)
在Raspberry Pi上配置你自己的软件包和设置:
在遵循使用覆盖转换为只读根文件系统的说明之后,你有两个选项来安装软件包和软件:
- 选项A:将SD卡挂载为读写(RW)并正常启动。
- 选项B:将SD卡重新挂载为RW,然后使用chroot。
选项A:将SD卡安装为RW并启动:
- 打开/boot/config.txt文件,注释掉initramfs initrd.gz这一行。保存修改。
- 重启树莓派。它现在将从SD卡正常启动。
- 你可以使用apt或编辑必要的文件,因为树莓派操作系统现在从SD卡正常启动。
- 如果需要,重新启动并恢复到只读(RO)模式。
选项B:将SD卡安装为RW并使用chroot
- 以RW方式挂载/mnt/root-ro目录,然后使用chroot命令执行如下命令:
shell
$ sudo -s # mount -o remount,rw /mnt/root-ro # chroot /mnt/root-ro # mount -t proc proc /proc
- 配置必要的设置,安装软件包。确保D-Bus等通信服务能够正常运行。
- 清理(如有必要)并重新启动树莓派。
永久数据存储在你的树莓派:
要存储日志等永久数据,可以在initramfs的底部实现本地持久存储解决方案。
结论:
祝贺你在树莓派上实现了RAM磁盘和只读根文件系统,同时结合了Soracom连接。通过遵循这些技术步骤,你可以优化树莓派物联网项目的性能和安全性。