优化嵌入式Linux系统的根文件系统大小

时间:2012-05-17 16:58:31

标签: linux filesystems embedded

我正在开发一个在linux上运行的嵌入式系统。为了减少产品的启动时间(这是一个IP网络摄像头),我想减少根文件系统的大小。我已经有一个功能的根文件系统,我目前正在手动删除部分,看看是否将挂载根文件系统。是否有更合理的方法来减少文件系统的大小,而不是当前的试错法更新了其他详细信息:目标上使用的原始文件系统是在我们组织中的多个嵌入式产品中使用的通用文件系统。我想将文件系统剥离到运行我的特定产品所需的最低限度.i.e IPNetCam。我想知道是否有任何分析方法,帽子可以确定引导和运行特定应用程序所需的确切文件集。

2 个答案:

答案 0 :(得分:3)

如果您还没有这样做,则应使用压缩文件系统,例如SquashFS。这将大大减少启动映像的占用空间。

答案 1 :(得分:1)

列出操作系统及其应用程序使用的文件的一种方法是:

  • 打开文件系统上的atime标志(如果尚未设置)
  • 重新启动
  • 在您的应用程序运行足够长时间后,使用atime查找上次启动后访问过的文件:

# last reboot | head -1
reboot   system boot  2.6.35-30-generi Sun May 20 10:08 - 10:48  (00:40)
# touch -d "2012-05-20 10:07" /tmp/ref
# find / -xdev -anewer /tmp/ref > /tmp/usedFiles

当然,此方法忽略了在样本运行中未访问的文件,但在偶发或异常情况下仍然是必需的。在以只读模式访问文件系统时,您还需要在早期阶段添加由引导加载程序或操作系统直接读取的文件。

相关问题