このドキュメントでは、カーネル パニックエラーが原因で VM が応答しなくなった問題のトラブルシューティング情報について説明します。
始める前に
- Cloud Logging でシリアルポート出力をロギングする場合は、Cloud Logging に習熟します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
grub.cfg
ファイルに、カーネルに対応するinitramfs
ファイルに関連するエントリがない。- カーネルのインストール中に
initramfs
ファイルが/boot
ディレクトリに生成されなかった。 initramfs
ファイルが一部のみ生成されたか、破損している。シリアル コンソールに接続し、Google Cloud コンソールから VM にログインします。
Google Cloud コンソールで、VM の [リセット] をクリックします。
GRUB スプラッシュ画面が表示されたら、以前動作していたカーネルまたはレスキュー カーネルを選択して、システムを起動します。これにより、VM は選択したカーネルで起動します。
VM にアクセスできるようになったら、VM への SSH 接続を開始できます。
問題の原因を特定し、必要に応じて以下の対応を取ります。
たとえば、
initramfs
ファイルが存在しないか破損している場合は、次の手順を行います。dracut
コマンドを使用して、元のカーネルに対応するinitramfs
ファイルを生成します。次に例を示します。dracut -f /boot/initramfs-3.10.0-1160.95.1.el7.x86_64.img 3.10.0-1160.95.1.el7.x86_64
grub2-mkconfig
コマンドを使用してgrub2.cfg
ファイルを更新します。次に例を示します。grub2-mkconfig -o /boot/grub2/grub.cfg
initramfs
ファイルが生成されたら、エラーなしで VM を再起動できます。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
カーネル パニック
ゲスト OS の起動に必要な
initramfs
モジュールを正しく読み込めないと、カーネル パニックが発生します。カーネル パニックが発生するもう一つの形態は、特定のリクエストを処理する方法がわからず、カーネルが自分自身を保護するために停止する状況です。カーネル パニックは、RedHat、SUSE、CentOS、Ubuntu を実行している Compute Engine VM で発生する可能性があります。
一般的なエラー メッセージ
参考までに、最も一般的なカーネル パニック イベントを以下に示します。
Kernel panic - not syncing: hung_task: blocked tasks
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Kernel panic - not syncing: NMI: Not continuing
Kernel panic - not syncing: out of memory. panic_on_oom is selected
Kernel panic - not syncing: Fatal Machine check
一般的な原因
カーネル パニック エラーが発生する理由は、複数あります。一般的な理由は次のとおりです。
現象
VM インスタンスでカーネル パニックが発生すると、一般的な症状として、シリアル コンソールを使用している場合でも、カーネルを使用して VM に接続できなくなります。
シリアル コンソールのログを確認して、ゲスト OS によって読み込まれたカーネルを特定する必要があります。次に例を示します。
カーネル パニックエラーも確認します。このエラーは通常、VM 起動時のカーネル行か、複数のスタック呼び出しトレースを含むシリアル コンソール ログの末尾に表示されます。[ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0-1160.95.1.el7.x86_64 (mockbuild@x86-vm-42.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Aug 10 10:46:21 EDT 2023
次の例は、
initramfs
の問題によるカーネル パニック イベントを示しています。[ 1.520840] No filesystem could mount root, tried: [ 1.520840] [ 1.521964] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 1.523495] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.10.0-1160.95.1.el7.x86_64 #1 [ 1.524932] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 1.526901] Call Trace: [ 1.527421] dump_stack+0x41/0x60 [ 1.527978] panic+0xe7/0x2ac [ 1.528578] mount_block_root+0x2be/0x2e6 [ 1.529693] ? do_early_param+0x95/0x95 [ 1.530441] prepare_namespace+0x135/0x16b [ 1.531237] kernel_init_freeable+0x203/0x22d [ 1.532081] ? rest_init+0xaa/0xaa [ 1.532808] kernel_init+0xa/0x103 [ 1.533395] ret_from_fork+0x35/0x40 [ 1.535229] Kernel Offset: 0x23a00000 from 0xffffffff81000000
カーネル パニック エラーを解決する
カーネル パニック エラーを解決するには、次の手順を行います。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-01-31 UTC。
-