【发布时间】:2012-05-17 16:58:30
【问题描述】:
我正在开发一个在 linux 上运行的嵌入式系统。为了减少产品的启动时间(它是一个 IP 网络摄像机),我想减少根文件系统的大小。我已经有一个功能性的根文件系统,目前正在手动删除部分并查看根文件系统是否会挂载。是否有比当前试错法更合乎逻辑的方法来减小文件系统大小更新了更多详细信息:目标上使用的原始文件系统是我们组织中跨多个嵌入式产品使用的通用文件系统.我想将文件系统精简到运行我的特定产品(即 IPNetCam)所需的最低限度。我想知道是否有任何分析方法可以确定启动和运行特定应用程序所需的确切文件集。
【问题讨论】:
-
文件系统大小可能不是影响启动时间的主要因素。此外,检查挂载文件系统的能力并不能说明您是否拥有运行系统所需程序所需的组件。需要注意的主要问题是您的发行版是否打包了您不需要的大量库、各种额外的守护程序(您可能有一个您不知道的 ssh 或 Web 服务器),或者更糟糕的是,测试/演示程序。诸如busybox之类的东西通常具有可以包含/删除各种功能的配置。
-
@ChrisStratton 嵌入式系统是固定功能(IP 网络摄像头),所以如果我能够安装 rfs 并运行设备应该没问题。最终用户一旦部署就不会修改它。我正在寻找您提到的要删除的内容。我想知道是否有一种结构化的方式,我可以只选择根文件系统所需的最低限度
-
@ChrisStratton 文件系统将在 NAND 中闪存,复制到 RAM 并安装在设备中。因此,通过减少根文件系统的总大小,我们可以减少设备启动所需的时间(启动时间是指内核启动、应用程序开始运行并且 IPNetcam 可以使用)
-
@Badria - 除非您的 NAND 接口非常慢,否则与其他启动时间来源相比,这可能不是很长的时间。
-
我对“当前手动删除部分并查看根文件系统是否会挂载”部分有点困惑。您是说您正在切断文件系统映像末尾的部分内容以缩小它吗?这不是一个好主意,它可能会导致静默损坏(“mount”可能不会检测到任何错误)。为此,您需要使用工具来缩小文件系统。对于 ext2/3/4,这描述了如何:microhowto.info/howto/…
标签: linux filesystems embedded