OpenBSD - 小規模システムのデフォルトのインストールサイズを減らす

OpenBSD - 小規模システムのデフォルトのインストールサイズを減らす

私は最近Soekris net4526にOpenBSDをインストールしようとしましたが、64MBのオンボードストレージが小さすぎました。最小の設定(bsdとbaseXX.tgzのみ)も合わないため、OpenBSDを小さくする方法はありますか? OpenBSD 3.9を使用しようとしています。リンクを与えることができますか?

答え1

良いニュースはできる完了しました。しかし、何をしているのかを知る必要があり、openbsdメーリングリストに何か助けを求めることはできません。

以下を行う必要があります。

  • Soekrisより強力なビルドマシン
  • 削除するコンテンツのリストは、あなたが喜んで妥協した内容によって決まります。 (マシンをどの用途に使用するかを指定していません。)

最新のbase.tgzスナップショットをダウンロードしました。サイズは148Mです。ベースから削除できるアイテムのいくつかのアイデアは次のとおりです。

  • Perlがなくても生きていれば、Perlを削除すると54.5Mが節約されます。
  • Perlがない場合は、pkg_*ツールと/etc/signify/openbsd-*-pkg.pubファイルを削除することもできます。 fw_update、libexec/securityなどの他の部分も削除できます。
  • terminfoデータベース、5.6M
  • /usr/bin/spell、/usr/bin/deroff(注文に使用されるため保持されます)、および/usr/share/dictは3.5Mを節約します。
  • トリムエリア情報、3M
  • /etc/firmwareは2.3Mを節約します。
  • たぶん/sbin/isakmpdは必要ないかもしれません。これにより、1.8Mが節約されます。
  • /usr/share/man/は1.3Mを節約します(選択したマニュアルページは手動コレクションではなくデフォルトバージョンにインストールされます)。
  • マニュアルページなしで/usr/bin/man、/usr/bin/mandoc、/etc/examples/man.confを削除することもできます。
  • 3Mのlibsqliteも削除できます。
  • 発掘、ホスト、nslookup 1.4Mを削除
  • /usr/share/miscは1.2Mを節約します。
  • cvsは0.7Mを節約します
  • /usr/bin/fileと/etc/magicは0.6Mを節約します。
  • texinfoは0.5Mを節約します
  • /usr/mdec は 0.3M を節約します。
  • /var/sysmerge/etc.tgzは0.2Mを節約します。

この時点であなたは近づいています。おそらく使用量が70M程度であるので、使用しないものを削除から始めるべきです。たとえば、/usr/sbinにpppdが必要ですか? httpdが必要ですか?おそらく起動などをインストールする必要はありません。ユースケースに応じて慎重に分類する必要があります。

試してみるもう1つの方法は、-O2の代わりに-Osを使用してシステムをコンパイルすることです。スペースも節約できれば確認してみる価値があります。しかし、参考にしてください。 OsはいいえOpenBSDでよくテストされたgccコードパス。これを実行している間、コンパイラエラーが発生しても驚くことはありません。

だから私が考えるポイントはできるこのプロジェクトに十分な時間を投資する意思がある場合は、完了できます。あなただけがOpenBSDの単純なバージョンを作成するかどうかを決定できます。もう一度申し上げますが、openbsdメーリングリストで何か助けを期待しないでください。あなたがこのプロジェクトに助けを求めるならば、人々はあなたを嘲笑します。

答え2

確かに、flashrdあなたのシナリオに合わせて動作する必要があります。

flashrdは64MBのRAMと1GBのフラッシュメモリで起動し、デフォルトのOpenBSD / i386またはOpen BSD / amd64インストールをホストします。デフォルトのflashrd設定では、少なくとも128 MBのRAMを使用することをお勧めします。

最新バージョンのOpenBSDwithを使用する必要があります。flashrd(現在位置5.9) まぁここにオススメです。

答え3

ライブラリのサイズを小さくするために使用できるいくつかの方法があります。私はシステムから実行可能ファイルを削除する前に常にこの手順を実行します。

  1. 〜56 Mbを節約するには、ライブラリ分析データを削除してください。

    rm /target/usr/lib/lib*_p.a
    
  2. 共有オブジェクトからシンボルテーブルを削除します。

    strip /target/usr/lib/lib*.so.*
    

たとえば、libc.so.86.0合計3 Mbで、750 kbだけが削除されます。

これは、[gdbがインストールされていない状態で]のユーザビリティにはまったく影響しません。

関連情報