Linux カーネルパニックに効果的に対処するためのヒント
このウェブサイトのネチズン 墢一雨音の貢献に感謝します
この記事を書いたのには理由があります。完全なサイレント ブートを構成するために、mkinitcpio.conf ファイル内の論理エラーを無視したため、職場のコンピューターで実行されている Linux 上で不適切な mkinitcpio 操作を実行してしまいました。これにより、mkinitcpio は新しいカーネル ファイルを生成しますが、このカーネル ファイルは正しく動作しません。再起動すると、カーネルの起動がパニック状態で中止されます。
通常、新しいカーネルが正しく動作しない場合は、initramfs カーネル ファイルのフォールバック バージョンを使用してシステムを一時的に起動することも、フォールバック バージョンを直接上書きして変更をロールバックすることもできますが、今回は mkinitcpio同時に実行中 vmlinuz カーネル ファイルが変更されており、vmlinuz にはフォールバック バージョンがありません。一般ユーザーの場合、システムを直接再インストールできますが、作成者のワークステーション環境の構成は非常に複雑であるため、作業ファイルが失われる可能性があることに加えて、開発環境の再構成にも多くの余分な時間を費やす必要があります。環境。
注:このチュートリアルの「修復」は「人間による壊滅的な変更のロールバックの試み」を指すため、未知のカーネルクラッシュからの回復には使用できません。
1. LiveCD から起動してディスクを表示します
私は、Linux サーバーの運用保守のアルバイト時代に蓄積した経験に基づいて、カーネルを修復するための一時的な Linux 環境を取得するために、LiveCD を使用してブートできることをすぐに思いつきました。
筆者はArch Linuxの64ビット版を使用しているので、Arch LinuxのLiveCDから起動しました。 LiveCD の組み込み root ユーザーを正しく入力した後、メイン ハードディスクのデバイス名を確認する必要があります。 fdisk -l を実行します。私の場合、メインのハードディスクとルート ディレクトリにマウントされたパーティションに対応するデバイス ファイルは /dev/sdb2 です。
2. ハードディスク上のシステム ルート ディレクトリに chroot します。
ハードディスク上のシステム ルート ディレクトリに chroot し、ハードディスク上のシステム コンポーネントを通常どおり呼び出してハードディスク上のシステムに変更を加えられるようにするには、まずハードディスク上のルート パーティションを手動でマウントする必要があります。 。実行します (デバイス ファイルは /dev/sdb2 です):
マウント /dev/sdb2 /mnt
まだ急がないでください。この時点では、/mnt に chroot することでハードディスク上のメイン システムの bash に入ることができますが、マウントされていない重要なディレクトリがまだいくつかあるため、複雑なタスクを正しく完了することはほとんどできません。 proc ディレクトリ、/sys ディレクトリ、/dev ディレクトリ、および /run ディレクトリをそれぞれマウントする指示を実行します。 /mnt と入力してそれぞれ実行します:
mount -t proc proc proc/
マウント --rbind /sys sys/
マウント --rbind /dev dev/
mount --rbind /run run/
これらのディレクトリの機能は次のとおりです:
proc ディレクトリ : 仮想の Procfs 形式のファイル システム。プロセス ステータス ファイルの保存に使用されます (Linux では、これらのファイルは表面上はテキスト ファイルのように見えますが、実際にはプロセス ステータスのファイル マッピングです)。 );
/sys ディレクトリ : Arch Linux の場合、これは proc ディレクトリに似た Sysfs 形式の仮想ファイル システムで、システムに接続されているデバイス ファイルを保存するために使用されます。従来の Unix および Unix 系の場合は、これはカーネル コード ツリーを指すソフト リンクです;
/dev ディレクトリ : デバイス ファイルを保存します (たとえば、ハード ディスクは /dev/sdXY です)。
/run directory: 前回の起動後のシステム情報の一部を保存します;
これらをマウントした後、メイン ハードディスクのルート ディレクトリに chroot できます:
chroot /mnt
後悔の薬。私の場合、mkinitcpio.conf ファイルを変更し、mkinitcpio 操作を再実行して正しいカーネル ファイルを再生成するだけで済みました。一般に、構成の誤った変更によってカーネル パニックが発生した場合、この環境でほとんどの問題を解決できます。
3. いくつかのスキル
1. 多くの設定ファイルには、LiveCD 内のシステムの正しいバージョンまたはテンプレートが含まれています。通常の構成ファイルがどのようなものであるかを覚えていない場合は、それらを参照できます。2. Arch Linux の場合、pacstrap コマンドを直接使用して、/mnt に chroot せずに /mnt マウント ポイント上のソフトウェア パッケージを管理できます。
3. 2 つの tty で操作できるため、/mnt に chroot した後でも、ファイルを LiveCD ファイル システムから /mnt に転送できます。このチュートリアルはほとんどの Linux ディストリビューションで利用できるはずです。一部の Linux ユーザーにとって役立つことを願っています。
関連提案:
Linux システムでデュアル グラフィックス カードを構成するにはどうすればよいですか?
以上がLinux カーネルパニックに効果的に対処するためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。
