Product SiteDocumentation Site

3.3. MRG Realtime カーネルで kdumpkexec を使用

kdump をシステムで有効にした場合、 標準的なブートカーネルはシステム RAM の小さなセクションを予約し、 kdump カーネルをその予約された領域にロードします。 カーネルパニックや他の重大なエラーが発生した場合は、 kexec を使用して kdump カーネルにブートされます。 Kexec は、 BIOS を経由せずに kdump カーネルをブートできる高速ブートメカニズムです。 kdump カーネルは予約された RAM のみを使用してブートし、 コンソールにエラーメッセージを送信します。 次に、 kdump カーネルは後のデバッグのためにブートカーネルのアドレススペースのダンプをファイルに書き込みします。 kexec は BIOS を経由しないため、 元のブートのメモリは保持され、 クラッシュダンプの情報はさらに詳細になります。 これが行われると、 カーネルがリブートして、 マシンがリセットされ、 ブートカーネルが再び起動します。

重要

Red Hat Enterprise Linux 5.2 では、 専用の kdump カーネルは存在せず、 代わりに主要カーネルが使用されます。 MRG Realtime カーネルを kdump カーネルとして使用することはできませんが、 別の kdump カーネルの使用はサポートされます。 MRG Realtime カーネルをブートカーネル、 Red Hat Enterprise Linux 5.2 カーネルを kdump カーネルとして使用することが推奨されます。
Red Hat Enterprise Linux 5.2 で kdump を有効にする方法は 3 つあります。 最初の方法では rt-setup-kdump というツールを使用します。 2 つ目の方法では、 ブートカーネルにコマンド行を追加し、 3 つ目の方法では、 Red Hat Enterprise Linux 5.2 に含まれるグラフィカルシステム設定ツールを使用します。
rt-setup-kdump を使用して基本的な kdump カーネルを作成
  1. rt-setup-kdump ツールは rt-setup パッケージの一部であり、 yum を使用してインストールできます。
    # yum install rt-setup
    
  2. root ユーザーとしてツールをシェルプロンプトで起動し実行します。 これにより、 Red Hat Enterprise Linux 5.2 カーネルは kdump カーネルに設定されます。
    # rt-setup-kdump
    
kdumpgrub.conf で有効化
  1. kexec-tools パッケージがインストールされていることを確認します。
    # rpm -q kexec-tools
    kexec-tools-1.101-194.4.el5
    
  2. システムは /etc/sysconfig/kdump 設定ファイルの KDUMP_KERNELVER 値を確認してどのカーネルが kdump カーネルであるかを認識します。
    kdump カーネルのカーネルバージョン文字列を KDUMP_KERNELVER 変数に追加します。
    KDUMP_KERNELVER="2.6.24.7-81.el5"
    
  3. お好きなテキストエディタで /etc/grub.conf ファイルを開き、 ブートカーネルに crashkernel 行を追加します。 この行の書式は以下のとおりです。
    crashkernel=[MB of RAM to reserve]M@[memory location]M
    
    典型的な crashkernel 行では、 アドレス 0x1000000 に相当する 16 メガバイト (16M) で 128 メガバイト (128M) が予約されます。
    crashkernel=128M@16M
    
    典型的な MRG Realtime /etc/grub.conf ファイルでは、 MRG Realtime カーネルがブートカーネルとして指定され、 crashkernel 行が追加されます。
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title Red Hat Enterprise Linux (realtime) (2.6.24.7-81.el5rt) 
    	root (hd0,0)
    	kernel /vmlinuz-2.6.24.7-81.el5rt ro root=/dev/RHEL5/Root rhgb quiet crashkernel=128M@16M
    	initrd /initrd-2.6.24.7-81.el5rt.img
    title Red Hat Enterprise Linux Client (2.6.24.7-81.el5) 
    	root (hd0,0)
    	kernel /vmlinuz-2.6.24.7-81.el5 ro root=/dev/RHEL5/Root rhgb quiet
    	initrd /initrd-2.6.24.7-81.el5.img
    
  4. 変更を保存したら、 システムを再起動して予約されたメモリ領域を設定します。 次に、 kdump 初期化スクリプトを有効にして、 kdump サービスを起動します。
    # chkconfig kdump on
    
    # service kdump status
    Kdump is not operational
    
    # service kdump start
    Starting kdump:                   [  OK  ]
    
  5. kdump が正常に稼働していることを確認する場合は、 sysrq を使用してパニックをシミュレートできます。
    # echo "c" > /proc/sysrq-trigger
    
    これにより、 カーネルはパニックを起こし、 システムが kdump カーネルにブートされます。 システムがブートカーネルで起動されたら、 指定した場所のログファイルを確認できるはずです。

    注意

    kdump に関する追加情報については、 kexec-tools パッケージをインストールし、 /usr/share/doc/kexec-tools-2.0.0/kexec-kdump-howto.txt の内容を参照してください。
kdumpsystem-config-kdump で有効化
  1. System|Administration メニューから Kdump システムツールを選択するか、 シェルプロンプトで以下のコマンドを使用します。
    # system-config-kdump
    
    Kdump System Tool
  2. Enable kdump というラベルのチェックボックスを選択し、 メモリ予約とダンプファイル場所に関する必要な設定を調整します。 [OK] をクリックして変更を保存します。

    重要

    ツールで正しいカーネルが調整されるよう /etc/grub.conf ファイル常にチェックします。 MRG Realtime カーネルはデフォルトのブートカーネルであり、 Red Hat Enterprise Linux カーネルはクラッシュカーネルとして使用する必要があります。
  3. システムは /etc/sysconfig/kdump 設定ファイルの KDUMP_KERNELVER 値を確認してどのカーネルが kdump カーネルであるかを認識します。
    お好きなテキストエディタで /etc/sysconfig/kdump ファイルを開き、 KDUMP_KERNELVER 編集を見つけます。 kdump カーネルのカーネルバージョン文字列を KDUMP_KERNELVER 編集に追加します。
    KDUMP_KERNELVER="2.6.24.7-81.el5"
    
    ファイルを閉じる前に設定を保存することを忘れないでください。
  4. kdump が正常に稼働していることを確認する場合は、 sysrq を使用してパニックをシミュレートできます。
    # echo "c" > /proc/sysrq-trigger
    
    これにより、 カーネルはパニックを起こし、 システムが kdump カーネルにブートされます。 システムがブートカーネルで起動されたら、 指定した場所のログファイルを確認できるはずです。

注記

kdump カーネルの設定中に一部のハードウェアをリセットする必要があります。 kdump カーネルの稼働に問題がある場合は、 /etc/sysconfig/kdump ファイルを編集し、 reset_devices=1KDUMP_COMMANDLINE_APPEND 変数に追加します。

重要

IBM LS21 マシンでは、 kdump カーネルのブート時に以下の警告メッセージが表示されることがあります。
 irq 9: nobody cared (try booting with the "irqpoll" option) handlers: [<ffffffff811660a0>] (acpi_irq+0x0/0x1b) turning off IO-APIC fast mode.
このエラーから回復しブートを続行するシステムもあれば、 このメッセージを表示した後にフリーズするシステムもあります。 これは既知の問題です。 このエラーが表示された場合は、 ブートパラメータとして行 acpi=noirq を kdump カーネルに追加します。 この行は、 このエラーが発生した場合のみ追加します (さもないと、この問題に影響されないマシンではブート障害が発生することがあります)。
詳細や関連資料については、 以下の man ページがこのセクションに記載された情報に関連します。