LinuCレベル2 システムの起動とLinuxカーネル 問29
システムの起動とLinuxカーネル/カーネル実行時における管理とトラブルシューティングkdumpの仕組みの説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの起動とLinuxカーネル」に対応。実際の試験問題ではありません)
- Aカーネルのメッセージを常時監視し、エラーを検知したらその時点のdmesgの出力をファイルへ書き出す
- B起動時に予約したメモリへ捕捉用のカーネルを読み込んでおき、パニック時にkexecでそれを起動してメモリの内容を保存する
- Cパニックが起きたら直ちにディスク上のスワップ領域へメモリを退避し、次の通常起動時にファイルへ書き出す
- Dパニックが起きたら直前の起動で使っていたカーネルに自動で切り替え、ロールバックした状態で再起動する
正解:B
解説
kdumpは、カーネルパニック時のメモリの内容(クラッシュダンプ)を保存して、後から原因を解析できるようにする仕組みです。起動パラメータcrashkernel=で捕捉用カーネルのためのメモリを予約し、そこへkexecで捕捉用カーネルを読み込んでおきます。パニックが起きるとファームウェアを経由せずにその捕捉用カーネルが起動し、元のカーネルのメモリを/proc/vmcoreとして読み出して/var/crash等へ保存します。保存したダンプはcrashコマンド等で解析します。
選択肢ごとの解説
- A誤り。kdumpはdmesgの出力ではなく、メモリの内容全体(または必要な部分)をダンプとして保存する仕組みです。
- B正しい。crashkernel=で予約した領域に捕捉用カーネルを読み込んでおき、パニック時にkexecで起動してダンプを保存します。
- C誤り。パニックしたカーネルでディスクへ書き込むのは危険なため、kdumpは別の捕捉用カーネルを起動してから保存します。
- D誤り。kdumpはダンプを取得するための仕組みで、カーネルを以前のバージョンへ切り替えたりロールバックしたりはしません。