【问题标题】:Read-only file-system on yoctoyocto 上的只读文件系统
【发布时间】:2016-08-04 09:05:45
【问题描述】:

我对 yocto 项目中的“只读 rootfs”功能有一些疑问,不幸的是,文档没有那么有用。

因此,将其添加到 EXTRA_IMAGE_FEATURES 会使 yocto fs 只读,但在:

5.15.3. Areas With Write Access

With the read-only-rootfs feature enabled, any attempt by the target to
write to the root filesystem at runtime fails. Consequently, you must make
sure that you configure processes and applications that attempt these types
of writes do so to directories with write access (e.g. /tmp or /var/run).

他们说可以将某些区域设为 rw,但他们没有提供有关此的额外信息。

我想要实现的是要加载到 RAM 中的所有操作、进程和内容,并且 SD 卡应该保持不变,就好像它是在闪烁之后,而不是在其上写入一个位。但是用户应该有可能在任何时候将sd卡上的特定文件夹(内存区域)打开并写入一些东西,然后再次将系统设置为只读。

有人会这样做吗?你会帮我很多的。

【问题讨论】:

  • 您好,安装了 tmpfs rw 的区域本身将被允许,正如他所说的 /tmp、/var/run 和其他为其配置的区域。如果你想使用文件系统来 ro 并最终 rw 可以搜索 UbiFS。

标签: linux arm filesystems yocto cortex-a


【解决方案1】:

默认情况下,Yocto 应该将所有需要的 RW 挂载创建为 tmpfs。 它们位于 RAM 中,因此易失(在关机/重启时删除)。

为了持久存储数据,我实现了以下方法:

  • RootFS 位于永久内存的 RO 挂载分区上。此分区在运行时保持“不变”。
  • 需要在运行时更改/写入的数据(如配置、日志等)存储在持久内存的第二个分区上。此分区在挂载的 RW 中。
  • 默认情况下在 RootFS 上但需要更改的配置被移动到第二个分区并替换为指向这些文件的符号链接。
  • 第二个分区使用自定义 fstab 文件自动挂载,该文件通过 base-files_*.bbappend 添加。

可能还有其他方法可以实现相同的目标,但这种解决方案多年来一直在毫无困难地工作 ;-)

【讨论】:

    【解决方案2】:

    meta-readonly-rootfs-overlay“(...) 提供了必要的脚本和配置,以在只读根文件系统之上设置可写根文件系统覆盖。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2010-12-22
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      相关资源
      最近更新 更多