2

Linux上で動作する組み込みシステムに取り組んでいます。製品の起動時間を短縮するために(IPネットカメラです)ルートファイルシステムのサイズを縮小したいと思います。私はすでに機能的なルートファイルシステムを持っており、現在手動​​で部分を削除し、ルートファイルシステムがマウントされるかどうかを確認しています。現在の試行錯誤の方法ではなく、ファイルシステムのサイズを削減するためのより論理的なアプローチがありますか? 追加の詳細で更新されました:ターゲットで使用されている元のファイルシステムは、組織内の複数の組み込み製品で使用されている汎用ファイルシステムです。特定の製品、つまりIPNetCamを実行するために必要な最小限のファイルシステムを削除したいと思います。特定のアプリケーションを起動して実行するために必要なファイルの正確なセットを決定できるプロファイリング方法があるかどうかを知りたいです。

4

2 に答える 2

3

まだ行っていない場合は、SquashFSなどの圧縮ファイルシステムを使用する必要があります。これにより、ブートイメージのフットプリントが大幅に削減されます。

于 2012-05-17T17:04:03.553 に答える
1

OSとそのアプリケーションで使用されるファイルを一覧表示する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

もちろん、このメソッドは、サンプルの実行ではアクセスされないが、まれな状況や例外的な状況でも必要なファイルを無視します。また、ファイルシステムが読み取り専用モードでアクセスされる初期段階で、ブートローダーまたはOSによって直接読み取られるファイルを追加する必要があります。

于 2012-05-20T08:56:22.493 に答える