2

我正在开发一个在 linux 上运行的嵌入式系统。为了减少产品的启动时间(它是一个 IP 网络摄像机),我想减少根文件系统的大小。我已经有一个功能性的根文件系统,目前正在手动删除部分并查看根文件系统是否会挂载。是否有一种更合乎逻辑的方法来减少文件系统大小而不是当前的试错方法 更新了更多细节:目标上使用的原始文件系统是我们组织中跨多个嵌入式产品使用的通用文件系统。我想将文件系统精简到运行我的特定产品 .ie IPNetCam 所需的最低限度。我想知道是否有任何分析方法可以确定启动和运行特定应用程序所需的确切文件集。

4

2 回答 2

3

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

于 2012-05-17T17:04:03.553 回答
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

当然,此方法会忽略在您的示例运行中未访问但在不常见或特殊情况下仍然需要的文件。当以只读模式访问文件系统时,您还需要在早期阶段添加引导加载程序或操作系统直接读取的文件。

于 2012-05-20T08:56:22.493 回答