TOP比較データ> 初期ラムディスク
徹底比較!! Red Hat vs SUSE
徹底比較!! Red Hat vs SUSE

第3回:ブートローダ/カーネル起動/初期ラムディスク展開の比較

著者:日本アイ・ビー・エム  原田 真   2006/2/7
前のページ  1  2  3
初期ラムディスク

   カーネルはシステムに搭載されているいくつかのハードウェアを認識するため、初期ラムディクスを必要とします。RHEL4やSLES9のカーネルは、ともにモジュラカーネルの形式となっています。モジュラカーネルではあらかじめカーネル内にすべてのデバイスドライバを含めているのではなく、必要に応じてデバイスドライバを順次カーネルに読み込ませる形で各種デバイスに対応します。

   そのため、起動時のカーネル内に必要なデバイスドライバが含まれていないデバイスから起動しようとしても、デバイスドライバが存在しないために実デバイスにアクセスできず、必要なデバイスドライバのファイルを読み込むことができないといった問題が発生します。

   わかりやすく例えると、缶詰の中に缶切りが入っている状態であり、そのままではいつまでたっても缶を開けることができません。そのような状態で缶詰を開けるためには、別の場所から缶切りを持ってくる必要があります。

   初期ラムディスクというのは、その「別の場所」にあたるものであり、そこに必要なデバイスドライバを用意しておきます。そのため初期ラムディスク自身は、ブートローダからアクセスできる位置に存在する必要があります。

   初期ラムディスクに用意する必要のあるデバイスドライバの例として、次のようなディスクサブシステムや、ファイルサブシステムまわりのデバイスドライバ関係をあげることができます。

  • SCSIアダプタ用デバイスドライバ
  • FibreChannel HBA用デバイスドライバ
  • LVM用モジュール

表2:初期ラムディスクに用意する必要のあるデバイスドライバ例

   ビジネスで使用されているサーバの多くは、ディスクサブシステムとしてSCSIディスクやFibre Channelで接続されたストレージを使用しています。また、LVMを使用して論理ボリューム管理をしている場合も多数あります。そのため、一般的にサーバシステムにおいて起動時にデバイスを利用できるようにするためには初期ラムディスクが必要だと考えていいでしょう。


初期ラムディスクの作成

   通常、初期ラムディスクファイルは"mkinitrd"コマンドで作成します。RHEL3以前のRHELやSLES9では、初期ラムディスクファイルの構造はファイルシステムのイメージファイルを圧縮した形式となっています。そのため、初期ラムディスクファイルを解凍してループバックマウントすることにより、手動で編集することができます。

   それに対して、RHEL4では初期ラムディクスファイルの構造はRHEL3以前のRHELやSLES9に構造から変更されています。こちらは、ファイルシステムのイメージファイルではなく、"cpio"形式のアーカイブファイルとして圧縮したものになっています。また、こちらも手動での編集が可能です。

  RHEL4 SLES9
initrdの形式 cpio形式 ファイルシステム形式

表3:initrdの形式の比較

   通常では初期ラムディスクは"mkinitrd"コマンドで作成し、手動で編集する必要はありません。しかし、ここではRHEL4およびSLES9での初期ラムディスクの相違の理解を深めるため、あえて初期ラムディスクの展開方法を示してみます。

-RHEL4
# cat /boot/initrd-2.6.9-11.EL.img | gunzip | cpio -id

-SLES9 (RHEL3以前と同様)
# cat /boot/initrd | gunzip >./initrd.img
# mount -o loop ./initrd.img /mnt

   起動したカーネルは初期ラムディクス内のスクリプトの定義に従って、デバイスドライバを読み込みます。RHEL4とSLES9ではそのスクリプトが異なりますが、前述のように初期ラムディスクの展開を行えば、スクリプトを確認することができます。

  RHEL4 SLES9
スクリプト・ファイル /init /linuxrc

表4:初期ラムディクス内のスクリプトの比較

前のページ  1  2  3


日本アイ・ビー・エム 原田 真
著者プロフィール
日本アイ・ビー・エム株式会社  原田 真
日本アイ・ビー・エム株式会社 xSeriesテクニカル・サポート所属
1999年のLinuxサポートセンターの設立以来、一貫して先進Linux関連プロジェクトやLinuxビジネスの開発、特に新製品に関するサポートに従事。現在は、xSeriesハードウェア・プラットフォームのLinuxサポートを担当。


INDEX
第3回:ブートローダ/カーネル起動/初期ラムディスク展開の比較
  はじめに
  GRUBの設定ファイルの違い
初期ラムディスク