我正在使用 alix 2d13 开发基于 linux 的设备。
我开发了一个脚本,负责创建映像文件、创建分区、安装引导加载程序 (syslinux)、内核和 initrd,并且负责将根文件系统文件放入正确的分区。
配置文件位于 tmpfs 文件系统上,并在系统启动时由软件创建,该软件读取驻留在自己分区上的 XML 文件。
我正在寻找一种更新文件系统的方法,并且我考虑了两种解决方案:
- 固件更新是一个压缩文件,可以包含内核、initrd 和/或 rootfs 分区,这样,在重新启动时,initrd 会注意将 rootfs 映像添加到正确的分区;
- 固件更新是一个压缩文件,其中可能包含两个 tar 存档,一个用于引导,一个用于根文件系统。
每个解决方案都有自己的优势: - 文件系统映像可以让我删除任何未使用的文件,但需要大量时间,并且会快速杀死紧凑型闪存;- 存档更小,更新所需的时间更少,但我很快就会在根文件系统上拥有 caos。
另一种解决方案可能是放置一个文件列表并将一个更新前/后更新脚本放入 tar 存档中,因此任何不驻留在文件列表中的文件都将被删除。
你怎么看?