日経Linuxの最新号で,起動時間の短縮方法の特集があったので,Ubuntu8.10(Intrepid)で試してみました。
大雑把にいうと,不要なサービスを停止し,カーネルを再構築して外部モジュールをカーネルに組み込むという作業が必要になります。カーネル再構築については次回にまとめますが,時間もかかるし,難易度も高いので,初心者の方にはあまりお勧めできません。
実際の起動時間がわかりやすいよう,GRUBメニューの選択から背景画像が表示されるまでを,動画にしてみました。前半が「不要サービスの停止のみ」,後半が「再構築カーネルの使用時」のものです。
ツイート
大雑把にいうと,不要なサービスを停止し,カーネルを再構築して外部モジュールをカーネルに組み込むという作業が必要になります。カーネル再構築については次回にまとめますが,時間もかかるし,難易度も高いので,初心者の方にはあまりお勧めできません。
実際の起動時間がわかりやすいよう,GRUBメニューの選択から背景画像が表示されるまでを,動画にしてみました。前半が「不要サービスの停止のみ」,後半が「再構築カーネルの使用時」のものです。
不要なサービスを停止した状態で45秒だった起動時間が,再構築したカーネルを用いた結果,38秒まで短縮できました。7秒という時間が長いか短いかわかりませんが,体感速度は確実に上がります。

不要サービスの停止では実質45秒ですが,bootchartでは21秒となっています。日経Linuxで「19秒」とあるのは,この時間と比較しているので,同じ基準で考えると,今回のカーネル再構築後の結果は14〜15秒程度といえるのでは?
$ sudo aptitude install bootchart
bootchartをインストールすると,次回以降の起動時に/var/log/bootchartというフォルダの中に,上のような画像がpng形式で保存されます(Ubuntuの場合は,GRUBのmenu.lstを書き換える必要はありません)。
なお,再構築したカーネルからの起動は,initrdを使用していないため,bootchartの記録はできません。
$ sudo aptitude install sysv-rc-conf
早速,実行してみましょう。端末で次のコマンドを実行します。
$ sudo sysv-rc-conf
すると,下図のような画面が出ます。[×]というチェックが入っているものが起動するサービスで,このチェックを外せば(矢印キーで移動し,スペースキーを押すとON・OFFできる),そのサービスを次回起動時に停止させることができます。「S」の欄は起動初期に立ち上がるサービス,「2」はログイン時,「0」は停止時,「6」は再起動時にそれぞれ起動するサービスです(これらの記号や数値をランレベルといいます)。

←今回の調整後のサービス。ブラウザ内でリンク先の画像を表示すると,5秒毎に切り替わります。
今回新たに停止したのは,apparmor,apport,avahi-deamon,dns-clean ,cups ,pcmciautil の6つですが,もともと止めていたものがあるかも知れませんので,上の画像で確認して下さい。
(注意)必要なサービスを止めてしまうと起動できなくなります。必要なサービスは環境によって異なります。

不要サービスの停止では実質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」は再起動時にそれぞれ起動するサービスです(これらの記号や数値をランレベルといいます)。

←今回の調整後のサービス。ブラウザ内でリンク先の画像を表示すると,5秒毎に切り替わります。
今回新たに停止したのは,apparmor,apport,avahi-deamon,dns-clean ,cups ,pcmciautil の6つですが,もともと止めていたものがあるかも知れませんので,上の画像で確認して下さい。
(注意)必要なサービスを止めてしまうと起動できなくなります。必要なサービスは環境によって異なります。
ツイート
InitNGと勘違いされてません?記事で触れているのは,仮想RAMディスクのinitrdです。initrdを介さず,直接ファイルシステムから起動するということです。




Fedoraでinitrtdを有効にしたことがあったんですが、デーモンがうまく起動してくれずに結局使っていません^^; うまくデーモンの都合が付いたら起動がかなり早くなるんですけれどねぇ。