それでは、予行演習でなく、いよいよ本番だ。再びsuを実行してルートになり、以下を入力する。
cd /usr/src/linux make clean make menuconfig
以上を実行すると、何百個ものオプション(何百通りもの失敗する方法と表現することもできる)のあるメニューが画面に表示されるが、変更するのは数個のみだろう。もちろん冒険心があるなら、万一の場合に備えて予備のカーネルを準備しておきさえすれば、どれでも好きに変更できる。オプションをオフにしたい場合には、チェックを外せば、コンパイルされなくなる。提供されているオプションを見たりメニュー内を移動したりするには、矢印キーを使用する。また「H」を入力すればいつでもヘルプを表示させることができる。
Linuxカーネルはモノリシック、すなわち大雑把に言い換えると、すべてが投げ込まれた単一の大きなソフトウェアだ。しかしLinuxカーネルは、必要な場合にのみ起動後に読み込むことのできる「モジュール」を使用して拡張することができる。したがってモジュールとしてコンパイル可能である機能をすべてモジュールとしてコンパイルした場合には、カーネルは最も小さくなる。またその場合の性能は、モジュールが読み込まれる際に一度だけ小さなマイナス影響を受けるだけだ。しかしだからといってすべてをモジュールにするのも得策ではない。というのも幾つかの機能は、ブート時に必要になるためだ。例えば、必要なコードがすでにカーネル内になければ、モジュールがあるパーティーションからモジュールを読み込むことはできない。従って、モジュールにすることが合理的である場合には必ずモジュールにするという方針で設定すればよいだろう。
モジュールにした方がよいという理由はもう一点ある。それは、使わないだろうと予想されるハードウェア用のサポートのチェックをすべて外した場合に、予想外の問題が起こってしまうことがあるためだ。例えばわたし自身、LVM AND RAID DEVICE(LVMとRAID)内のオプションのチェックを外した後、このことが原因となって必要なモジュールが構築されず、さらにそのことが原因でそのほかの数多くの問題が起こったという経験をしたことがある。最も安全なやり方は、不要なオプションは「M」(モジュールとしてコンパイルする)とマークして、必要ではないということが絶対に確実である場合以外には、チェックを外さないようにするという方法だ。例えば、持っていないカードや使わないファイルシステムは通常はチェックを外しても安全だろう。とはいえ、何らかのオプションのチェックを外した結果として、二次的で目につかず文書化もされていないような影響がないという保証はなく、それが原因となって何か問題が起こる可能性はある。その場合には、バックアップしておいたカーネルを使って再起動し、問題のオプションを単に再びチェックすればよい。
以下に、メモリを幾らか節約するために検討することのできるオプションを挙げる。
Copyright © 2010 OSDN Corporation, All Rights Reserved.