OSコースを修了しました。「カーネルパニック」というフレーズをよく聞きました。説明できる
- カーネルパニックとは何ですか?
- なぜ発生するのですか?
- カーネルパニックが発生したことを確認するにはどうすればよいですか?
- システムにどのような影響がありますか?
- Linuxでのみ発生しますか?
- どうすれば防ぐことができますか?
OSコースを修了しました。「カーネルパニック」というフレーズをよく聞きました。説明できる
回答:
カーネルパニックとは何ですか?
カーネルが適切にロードできないか、「フリークアウト」し、適切に起動できないか、クラッシュした場合(下部の編集クレジットを参照)。
なぜそれが起こるのですか?
更新の失敗、ハードウェアの障害、サポートされていないハードウェア、ドライブまたはパーティションの障害または欠落(下部の編集クレジットを参照)
カーネルパニックが発生したことをどのように理解できますか?
ブートプロンプトを見る(Quietカーネルパラメーターをオフにする)またはマシンがブートに失敗する
システムにどのような影響がありますか?
起動の失敗またはシステムのクラッシュ
Linuxでのみ発生しますか?
いいえ、すべてのUnixライクなオペレーティングシステムでは、カーネルパニックが発生する可能性があります。これは、Windows Blue Screen of Deathに相当します
どうすれば防ぐことができますか?
通常は発生しません。更新をテストし、問題をトラブルシューティングします。開発ブランチの代わりに安定版を使用してください。
追記事項:カーネルパニックとシステム障害/シャットダウンは、物理的な損傷からコンピューターを保護する直接の原因となります。例には、極端な過熱またはディスク破損の前の停止が含まれます。直接見積もりについては、下部の編集クレジットをご覧ください。
編集
Per B. Roland不足または破損したディスクまたはボリュームもこれを引き起こす可能性があります。
(良い点、私はそれを見落としていました)
実行中にPer Keesカーネルパニックが発生することもあります。
注:カーネル内で関数が正常に失敗した場合に発生する可能性がありますが、ほとんどの場合、モジュールまたはカーネルのロード中(通常はブート中)に発生します。「ブート中またはシステムクラッシュ中」に触れたと思いましたが、(1)に対する答えがブート中にのみ発生すると述べた方法がわかります。
パーrafalcieslak直接引用- 「追加しなければならない1つの非常に重要なことがあります:全体のカーネルパニックの主なポイントは、あなたのコンピュータを保護することです。カーネルは、何かを実行できなかっただけでなく、コンピューターの過熱、ハードドライブの破損、その他のハードウェアの問題を防ぐために、フリーズします。たとえば、ファンの制御を担当するモジュール)の読み込みなどに失敗しました。これが、問題を克服するよりもカーネルがフリーズすることを好む理由です。
カーネルパニックはカーネルは、それが回復不可能なエラーを検出したときに起こります。panic()
この状況を処理するために命名された関数(多くの場合、デバッグ情報をダンプしたり、システムをリブートしたりする)は、非常に初期のUNIXバージョンの1つで最初に導入されたため、名前の由来となっていますMac OS Xなどのオペレーティングシステムなど)。
MicrosoftのNTカーネルにある有名な死のブルースクリーン(正式にはVMS / OpenVMSのように致命的なシステムエラーと呼ばれる)も、「カーネルパニック」の一種です。
カーネルが(部分的または一時的に)回復できる Linuxカーネルエラーは、カーネルOOPSと呼ばれます(dmesg
出力に表示される場合があります)。
カーネルパニックの理由は、カーネルのバグ(カーネルの一部であるドライバーなど)、またはカーネルの予期しない/予測不可能な状態を引き起こすハードウェアまたはソフトウェアの問題(たとえば、起動できない場合)です。init
プロセス、またはそれが殺されます)。
何が原因であるかを調べるには、画面またはシリアルコンソール(設定されている場合)に何かが印刷されているかどうかを確認します。そうするように構成されている場合、パニックの場合にカーネルメモリをディスクに保存するLinuxカーネルクラッシュダンプをシステムに作成させることもできます。これにより、カーネル開発者はそれを分析できます(もちろん、ディスクに書き込むことができます)。場合によって/var/log/messages
は有用な情報もあります(たとえば、場合によっては、oopsから回復すると、回復不能なエラーが発生することがあります)。ここにいくつかのより詳細な情報があります。
現在、Ubuntu 16.04のシステムでカーネルパニックが発生しています。私のコンピューターはブートディスクがいっぱいであると不平を言っていたので、「apt autoremove」を実行しました。不要なファイルだと思っていたものが削除され、その結果カーネルパニックが発生しました。
そのため、ブートディスクを編集すると、カーネルパニックが発生する可能性があります。あなたがやっていることに注意を払っていないのであれば、だましてはいけません。
@RobotHumansの回答は、質問のすべての部分に対応しています。ただし、カーネルパニックの原因について詳しく説明します。
まず、カーネルパニックには、ソフトカーネルパニック(Oopsとも呼ばれます)と(ハードカーネルパニック、Aieeeとも呼ばれます!)の2種類があります。
処理できない例外が発生すると、システムはハードカーネルパニックモードになります。ソフトカーネルパニックの処理は比較的簡単です。
カーネルパニックの原因
いくつかの原因がありますが、最も一般的なものは以下のとおりです。
これは、カーネルスペース内にあるモジュールのみがカーネルパニックを引き起こす可能性があることに注意することも重要です。lsmod
コマンドを実行して、動的にロードされたモジュールのリストを取得できます。
カーネルパニックのトラブルシューティングを行うには、/ var / log / messagesを確認してください。すべての情報がログに記録される場合もあれば、カーネルパニックに関連するものがログに記録されない場合もあります。カーネルパニックに遭遇することは避けられませんが、心配することはあまりありません。