カーネルパニックとは何ですか?


52

OSコースを修了しました。カーネルパニックというフレーズをよく聞きました。説明できる

  1. カーネルパニックとは何ですか?
  2. なぜ発生するのですか?
  3. カーネルパニックが発生したことを確認するにはどうすればよいですか?
  4. システムにどのような影響がありますか?
  5. Linuxでのみ発生しますか?
  6. どうすれば防ぐことができますか?

カーネルパニックは、Macのエラーメッセージの一部です。それが「ここでぶらぶらしているパニック」と言うなら(推測はそれがunixの一部であるかもしれないということです。)
Alvar

21
OSコースを受講している場合、講師に使用している用語を説明してもらわなかったのはなぜですか?あなたの研究からもっと多くを得ているでしょう。
-TRiG

回答:


56

よくある質問ごとに1つの質問

  1. カーネルパニックとは何ですか?
    カーネルが適切にロードできないか、「フリークアウト」し、適切に起動できないか、クラッシュした場合(下部の編集クレジットを参照)。

  2. なぜそれが起こるのですか?
    更新の失敗、ハードウェアの障害、サポートされていないハードウェア、ドライブまたはパーティションの障害または欠落(下部の編集クレジットを参照)

  3. カーネルパニックが発生したことをどのように理解できますか?
    ブートプロンプトを見る(Quietカーネルパラメーターをオフにする)またはマシンがブートに失敗する

  4. システムにどのような影響がありますか?
    起動の失敗またはシステムのクラッシュ

  5. Linuxでのみ発生しますか?
    いいえ、すべてのUnixライクなオペレーティングシステムでは、カーネルパニックが発生する可能性があります。これは、Windows Blue Screen of Deathに相当します

  6. どうすれば防ぐことができますか?
    通常は発生しません。更新をテストし、問題をトラブルシューティングします。開発ブランチの代わりに安定版を使用してください。

追記事項:カーネルパニックとシステム障害/シャットダウンは、物理的な損傷からコンピューターを保護する直接の原因となります。例には、極端な過熱またはディスク破損の前の停止が含まれます。直接見積もりについては、下部の編集クレジットをご覧ください。

編集

Per B. Roland不足または破損したディスクまたはボリュームもこれを引き起こす可能性があります。
(良い点、私はそれを見落としていました)

実行中にPer Keesカーネルパニックが発生することもあります。
注:カーネル内で関数が正常に失敗した場合に発生する可能性がありますが、ほとんどの場合、モジュールまたはカーネルのロード中(通常はブート中)に発生します。「ブート中またはシステムクラッシュ中」に触れたと思いましたが、(1)に対する答えがブート中にのみ発生すると述べた方法がわかります。

パーrafalcieslak直接引用- 「追加しなければならない1つの非常に重要なことがあります:全体のカーネルパニックの主なポイントは、あなたのコンピュータを保護することです。カーネルは、何かを実行できなかっただけでなく、コンピューターの過熱、ハードドライブの破損、その他のハードウェアの問題を防ぐために、フリーズします。たとえば、ファンの制御を担当するモジュール)の読み込みなどに失敗しました。これが、問題を克服するよりもカーネルがフリーズすることを好む理由です。


3
q#2に追加:ブートファイルの欠落(例:LVMボリュームが欠落している場合)
...-antivirtel

@B。ローランドが追加およびクレジット
RobotHumans

素敵な、ありがとう-私はそれを一度書いたので、それを書いた...(LVMで誤ってボリュームをフォーマットした...)
antivirtel

8
この答えは正しくありません。カーネルパニックは、ブート障害だけに限定されません。JanCの答えはより正確です(「カーネルは回復できないエラーを検出します」)。起動できないことは、多くの条件の1つにすぎません。
キーズクック

2
追加する必要がある非常に重要なことが1つあります。カーネルパニック全体の主なポイントは、コンピューターを保護することです。カーネルは、何かを実行できなかっただけでなく、コンピューターの過熱、ハードドライブの破損、その他のハードウェアの問題を防ぐために、フリーズします。たとえば、ファンの制御を担当するモジュールなど)のロードに失敗したなどです。これが、カーネルが問題を克服するよりもフリーズすることを好む理由です。
ラファウチェーラク

31

カーネルパニックはカーネルは、それが回復不可能なエラーを検出したときに起こります。panic()この状況を処理するために命名された関数(多くの場合、デバッグ情報をダンプしたり、システムをリブートしたりする)は、非常に初期のUNIXバージョンの1つで最初に導入されたため、名前の由来となっていますMac OS Xなどのオペレーティングシステムなど)。

MicrosoftのNTカーネルにある有名な死のブルースクリーン(正式にはVMS / OpenVMSのように致命的なシステムエラーと呼ばれる)も、「カーネルパニック」の一種です。

カーネル(部分的または一時的に)回復できる Linuxカーネルエラーは、カーネルOOPSと呼ばれますdmesg出力に表示される場合があります)。

カーネルパニックの理由は、カーネルのバグ(カーネルの一部であるドライバーなど)、またはカーネルの予期しない/予測不可能な状態を引き起こすハードウェアまたはソフトウェアの問題(たとえば、起動できない場合)です。initプロセス、またはそれが殺されます)。

何が原因であるかを調べるには、画面またはシリアルコンソール(設定されている場合)に何かが印刷されているかどうかを確認します。そうするように構成されている場合、パニックの場合にカーネルメモリをディスクに保存するLinuxカーネルクラッシュダンプをシステムに作成させることもできます。これにより、カーネル開発者はそれを分析できます(もちろん、ディスクに書き込むことができます)。場合によって/var/log/messagesは有用な情報もあります(たとえば、場合によっては、oopsから回復すると、回復不能なエラーが発生することがあります)。ここにいくつかのより詳細な情報があります


1

現在、Ubuntu 16.04のシステムでカーネルパニックが発生しています。私のコンピューターはブートディスクがいっぱいであると不平を言っていたので、「apt autoremove」を実行しました。不要なファイルだと思っていたものが削除され、その結果カーネルパニックが発生しました。

そのため、ブートディスクを編集すると、カーネルパニックが発生する可能性があります。あなたがやっていることに注意を払っていないのであれば、だましてはいけません。


これは、OPの質問に対処する助けにはなりません。:(
マイクウィリアムソン

1

@RobotHumansの回答は、質問のすべての部分に対応しています。ただし、カーネルパニックの原因について詳しく説明します。

まず、カーネルパニックには、ソフトカーネルパニック(Oopsとも呼ばれます)と(ハードカーネルパニック、Aieeeとも呼ばれます!)の2種類があります。

処理できない例外が発生すると、システムはハードカーネルパニックモードになります。ソフトカーネルパニックの処理は比較的簡単です。

カーネルパニックの原因

いくつかの原因がありますが、最も一般的なものは以下のとおりです。

  • 欠陥または互換性のないRAMは、カーネルパニックの最も一般的で頻繁な原因です。
  • 廃止された、互換性のない、または破損したカーネル拡張
  • 廃止された、互換性のない、または破損したカーネルドライバー。
  • ハードディスクの破損、または不良セクタやディレクトリの破損などの問題も、カーネルパニックを引き起こす可能性があります。
  • 不十分なRAMまたはハードディスク領域
  • 欠陥のあるハードウェア、不適切に記述されたプログラム、またはハードウェア障害もカーネルパニックにつながる可能性があります。

これは、カーネルスペース内にあるモジュールのみがカーネルパニックを引き起こす可能性があることに注意することも重要です。lsmodコマンドを実行して、動的にロードされたモジュールのリストを取得できます。

カーネルパニックのトラブルシューティングを行うには、/ var / log / messagesを確認してください。すべての情報がログに記録される場合もあれば、カーネルパニックに関連するものがログに記録されない場合もあります。カーネルパニックに遭遇することは避けられませんが、心配することはあまりありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.