rootfs.cpioのサイズを小さくする正しい方法は何ですか?

rootfs.cpioのサイズを小さくする正しい方法は何ですか?

私は使う

cpio -idv <rootfs

rootfs.cpio ファイルの内容をすべて抽出します。

以下は、petalinuxをコンパイルした後に取得したデフォルトのrootfs.cpioの内容です。

[root@xilinx ourput]# ls -ld *
drwxr-xr-x.  2 root root 4096 Apr 14 14:12 bin
drwxr-xr-x.  2 root root 4096 Apr 14 14:12 boot
drwxr-xr-x.  3 root root 4096 Apr 14 14:12 dev
drwxr-xr-x. 15 root root 4096 Apr 14 14:12 etc
drwxr-xr-x.  3 root root 4096 Apr 14 14:12 home
lrwxrwxrwx.  1 root root    9 Apr 14 14:12 init -> sbin/init
drwxr-xr-x.  3 root root 4096 Apr 14 14:12 lib
drwxr-xr-x. 10 root root 4096 Apr 14 14:12 media
drwxr-xr-x.  2 root root 4096 Apr 14 14:12 mnt
drwxr-xr-x.  2 root root 4096 Apr 14 14:12 proc
drwxr-xr-x.  2 root root 4096 Apr 14 14:12 sbin
drwxr-xr-x.  2 root root 4096 Apr 14 14:12 sys
lrwxrwxrwx.  1 root root    8 Apr 14 14:12 tmp -> /var/tmp
drwxr-xr-x.  9 root root 4096 Apr 14 14:12 usr
drwxr-xr-x.  8 root root 4096 Apr 14 14:12 var

各フォルダのサイズは次のとおりです。

[root@xilinx ourput]# du -sb *
680661  bin
4096    boot
8192    dev
160521  etc
8192    home
9       init
2572159 lib
36864   media
4136    mnt
4096    proc
730887  sbin
4096    sys
8       tmp
518578  usr
176548  var

ファイルシステムの合計サイズは約6.9MBで、私のシステムに比べて大きすぎます。私のアプリケーションに1つだけ追加するだけで、他のものは必要ありlogin promptません。しかし、なぜ不必要なものがそんなにたくさんあるべきですか?

不要なパッケージを削除してアプリケーションに再ログインするには、どのようなアプローチを取る必要がありますか? sbinにバイナリtinyloginがあることを確認し、それを維持したいと思います。しかし、他のファイルを無視して削除することはできないようです。

もしそうなら、rootfs.cpioのサイズを小さくする正しい方法は何ですか?

修正するtinylogin必要なログイン情報を提供するsbinフォルダにというファイルがあることをお伝えしたいと思います。しかし、次に何をすべきかわかりません!

ベストアンサー1

どのディストリビューションがrootfsを生成したかについては言及していません。しかし、最小限のrootfsだけを生成したいようです。このガイドは、最小限のファイルシステムを最初から構築するプロセスを案内します。http://www.tldp.org/HOWTO/Bootdisk-HOWTO/buildroot.html

おすすめ記事