このドキュメントでは、カーネル パニックエラーが原因で 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- 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-KERNEL_VERSION.img KERNEL_VERSION
KERNEL_VERSION
は、VM の現在のカーネル バージョンに置き換えます。例: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 に指定した認証情報を使用します。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
詳細については、 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-07-21 UTC。
-