新しいハードウェアをシステムに追加するとき、またはブート プロセスの初期段階で使用される可能性がある構成ファイルを変更した後、またはカーネル モジュールのオプションを変更するときに、初期 RAM ディスク (initrd または initramfs とも呼ばれる) を再構築する必要がある場合があります。適切なカーネル モジュール、ファイル、および構成ディレクティブを含めます。以下の例では、実際に入力せずに現在のカーネル バージョンをコマンドに渡す方法である $(uname -r) の使用法を示します。
手順
1. 新しいバージョンに予期しない問題が発生した場合に備えて、initrd のバックアップ コピーを作成することをお勧めします:
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# ll /boot/initramfs-$(uname -r).img* -rw-r--r--. 1 root root 16209434 Oct 11 14:43 /boot/initramfs-2.6.32-358.el6.x86_64.img -rw-r--r--. 1 root root 16209434 Apr 9 07:38 /boot/initramfs-2.6.32-358.el6.x86_64.img.bak
2. 現在のカーネル バージョンの initramfs を再構築します。
# dracut -f
3. ビルドしている initrd とは異なるカーネル バージョンを使用している場合 (レスキュー モードでも)、アーキテクチャを含む完全なカーネル バージョンを指定する必要があります。
# dracut -f /boot/initramfs-2.6.39-400.17.1.el6.x86_64.img 2.6.39-400.17.1.el6uek.x86_64
-f オプションは、指定したパスにある既存の初期 RAM ディスク イメージを強制的に上書きします
バックアップの操作
前述のように、新しい initrd で問題が発生した場合に備えて、以前の initrd のバックアップを取ることをお勧めします。必要に応じて、バックアップの初期 RAM ディスク イメージ用に /boot/grub/grub.conf に別のエントリを作成して、バックアップを復元する必要なく、起動時に古いバージョンを便利に選択することができます。この構成例では、grub メニューから新しいまたは古い初期 RAM ディスク イメージを選択できます:
title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=/ initrd /initramfs-2.6.32-358.el6.x86_64.img title Red Hat Enterprise Linux w/ old initrd (2.6.32-358.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=/ initrd /initramfs-2.6.32-358.el6.x86_64.img.bak
または、古い initrd を選択する必要があり、再起動する前に grub.conf に別のエントリを作成しなかった場合は、grub で編集モードに入ることができます。そうするには:
– grub がパスワードで保護されている場合は、p を押してパスワードを入力します。
– 矢印キーを使用して、起動するカーネルのエントリを強調表示します。
– e を押して編集します。
– initrd 行を強調表示して、もう一度 e を押します。
– initrd のパスを作成したバックアップ コピーに変更します (/initramfs-2.6.32-358.el6.x86_64.img.bak など)
– Enter を押して、行った変更を一時的に保存します
– b を押して起動します