我正在使用alix 2d13开发基于linux的设备。
我开发了一个脚本,负责创建映像文件,创建分区,安装引导加载程序(syslinux),内核和initrd,并注意将根文件系统文件放入正确的分区。
配置文件位于tmpfs文件系统上,并在系统启动时由读取驻留在自己分区上的XML文件的软件创建。
我正在寻找更新文件系统的方法,我考虑了两种解决方案:
每种解决方案都有自己的优势: - 文件系统映像将让我删除任何未使用的文件,但需要很多时间,它会快速杀死紧凑型闪存; - 存档较小,需要较少的更新时间,但我会在短时间内对根文件系统产生错误。
另一种解决方案可能是放置文件列表并将更新前/后更新脚本放入tar存档中,因此任何不驻留在文件列表中的文件都将被删除。
您怎么看?
答案 0 :(得分:17)
我使用了以下方法。它有点基于“建立墨菲兼容的嵌入式Linux系统”一文,可用here。我使用了那篇文章中描述的versions.conf东西,而不是cfgsh的东西。
答案 1 :(得分:2)
您可以拥有一个单独的分区进行更新(Say Side1 / Side2)。 现有的内核,rootfs在Side1中,然后将更新放在Side2中并切换。 通过这种方式,您可以减少磨损均衡并延长使用寿命,但设备成本更高。
答案 2 :(得分:0)
您可以在提取tar文件之前快速格式化分区。或者使用图像解决方案,但使用尽可能小的图像,并在dd后重新调整文件系统(尽管这对于只读存储不是必需的)