日経Linuxの最新号で,起動時間の短縮方法の特集があったので,Ubuntu8.10(Intrepid)で試してみました。

大雑把にいうと,不要なサービスを停止し,カーネルを再構築して外部モジュールをカーネルに組み込むという作業が必要になります。カーネル再構築については次回にまとめますが,時間もかかるし,難易度も高いので,初心者の方にはあまりお勧めできません。

実際の起動時間がわかりやすいよう,GRUBメニューの選択から背景画像が表示されるまでを,動画にしてみました。前半が「不要サービスの停止のみ」,後半が「再構築カーネルの使用時」のものです。

不要なサービスを停止した状態で45秒だった起動時間が,再構築したカーネルを用いた結果,38秒まで短縮できました。7秒という時間が長いか短いかわかりませんが,体感速度は確実に上がります。

ubuntu-boot
不要サービスの停止では実質45秒ですが,bootchartでは21秒となっています。日経Linuxで「19秒」とあるのは,この時間と比較しているので,同じ基準で考えると,今回のカーネル再構築後の結果は14〜15秒程度といえるのでは?


【bootchartの導入】

上に載せた起動の詳細を示す画面を記録するには,bootchartというプログラムが必要です。

$ sudo aptitude install bootchart

bootchartをインストールすると,次回以降の起動時に/var/log/bootchartというフォルダの中に,上のような画像がpng形式で保存されます(Ubuntuの場合は,GRUBのmenu.lstを書き換える必要はありません)。

なお,再構築したカーネルからの起動は,initrdを使用していないため,bootchartの記録はできません。

【不要サービスの停止】

Ubuntuの場合,サービスの起動や停止は,sysv-rc-confというプログラムで行います。次のコマンドでインストールします。

$ sudo aptitude install sysv-rc-conf

早速,実行してみましょう。端末で次のコマンドを実行します。

$ sudo sysv-rc-conf

すると,下図のような画面が出ます。[×]というチェックが入っているものが起動するサービスで,このチェックを外せば(矢印キーで移動し,スペースキーを押すとON・OFFできる),そのサービスを次回起動時に停止させることができます。「S」の欄は起動初期に立ち上がるサービス「2」はログイン時,「0」は停止時,「6」は再起動時にそれぞれ起動するサービスです(これらの記号や数値をランレベルといいます)。

new-sysv-rc-conf
←今回の調整後のサービス。ブラウザ内でリンク先の画像を表示すると,5秒毎に切り替わります。


今回新たに停止したのは,apparmor,apport,avahi-deamon,dns-clean ,cups ,pcmciautil の6つですが,もともと止めていたものがあるかも知れませんので,上の画像で確認して下さい。

(注意)必要なサービスを止めてしまうと起動できなくなります。必要なサービスは環境によって異なります。