树莓派操作系统根文件系统编程(Rootfs ROMing)- 如何把它作为RAM磁盘时添加软件包

我正在探索在树莓派上启用 RAM 磁盘和实现只读根文件系统的过程,同时结合 Soracom 连接。

测试环境:

激活 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

  1. 以RW方式挂载/mnt/root-ro目录,然后使用chroot命令执行如下命令:
shell

$ sudo -s # mount -o remount,rw /mnt/root-ro # chroot /mnt/root-ro # mount -t proc proc /proc
  1. 配置必要的设置,安装软件包。确保D-Bus等通信服务能够正常运行。
  2. 清理(如有必要)并重新启动树莓派。

永久数据存储在你的树莓派:

要存储日志等永久数据,可以在initramfs的底部实现本地持久存储解决方案。

结论:

祝贺你在树莓派上实现了RAM磁盘和只读根文件系统,同时结合了Soracom连接。通过遵循这些技术步骤,你可以优化树莓派物联网项目的性能和安全性。