新しいハードウェアをシステムに追加するとき、またはブート プロセスの初期段階で使用される可能性のある構成ファイルを変更した後、またはカーネル モジュールのオプションを変更するときに、初期 RAM ディスク (initrd または initramfs とも呼ばれる) を再構築する必要がある場合があります。適切なカーネル モジュール、ファイル、および構成ディレクティブを含めます。以下の例では、$(uname -r) の使用法を示しています。これは、現在のカーネル バージョンを実際に入力せずにコマンドに渡す方法です。
手順
1. まず、元の初期 RAM ディスクをバックアップします:
# cp /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.bak
2. 新しい初期 RAM ディスクの作成 (カーネル 2.4 の /etc/modprobe.conf または /etc/modules.conf に新しいモジュールを追加した後):
# mkinitrd -f /boot/initrd-`uname -r`-new.img `uname -r`
新しい初期 RAM ディスク ファイル initrd-[kernel-version]-new.img が /boot ディレクトリに作成されていることがわかります。 mkinitrd パラメーター (詳細については、man mkinitrd を参照してください):
# mkinitrd --help usage: mkinitrd [--version] [--help] [-v] [-f] [--preload [module]] [--force-ide-probe] [--force-scsi-probe | --omit-scsi-modules] [--image-version] [--force-raid-probe | --omit-raid-modules] [--with=[module]] [--force-lvm-probe | --omit-lvm-modules] [--builtin=module] [--omit-dmraid] [--net-dev=interface] [--fstab=fstab] [--nocompress] [initrd-image] [kernel-version]
最もよく使用されるパラメータは次のとおりです:
-f mkinitrd が既存のイメージ ファイルを上書きできるようにします。–preload=module – モジュール module を初期 RAM ディスク イメージにロードします。このモジュールは、/etc/modprobe.conf で指定されている SCSI モジュールよりも先にロードされます。このオプションは、必要に応じて何度でも使用できます。
–with=module – モジュール モジュールを初期 RAM ディスク イメージにロードします。モジュールは、/etc/modprobe.conf で指定されている SCSI モジュールの後にロードされます。このオプションは、必要に応じて何度でも使用できます。
初期 RAM ディスク ファイルに新しい名前を選択した場合は、/etc/grub.conf に新しいエントリを追加する必要があります。 使用できるようにする:
title Red Hat Enterprise Linux 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img
その後、起動時に Grub メニューでエントリ「New initrd」を選択できるようになります。
バックアップの操作
前述のように、新しい initrd で問題が発生した場合に備えて、以前の initrd のバックアップを取ることをお勧めします。必要に応じて、バックアップの初期 RAM ディスク イメージ用に /boot/grub/grub.conf に別のエントリを作成して、バックアップを復元する必要なく、起動時に古いバージョンを便利に選択することができます。この構成例では、grub メニューから新しいまたは古い初期 RAM ディスク イメージを選択できます:
title Red Hat Enterprise Linux 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img title Red Hat Enterprise Linux 5 w/ old initrd (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img.bak
または、古い initrd を選択する必要があり、再起動する前に grub.conf に別のエントリを作成しなかった場合は、grub で編集モードに入ることができます。そうするには:
grub がパスワードで保護されている場合は、p を押してパスワードを入力します
矢印キーを使用して、起動するカーネルのエントリを強調表示します
編集するには e を押します
initrd 行を強調表示し、もう一度 e を押します
initrd のパスを、作成したバックアップ コピーに変更します (/initrd-2.6.32-200.13.1.el5.img.bak など)。
Enter を押して、変更を一時的に保存します。
起動するには b を押してください