Linux カーネルの障害をデバッグする方法を本当に知っていますか? この記事を読めば、きっと理解できるでしょう。
#Linux カーネルはオペレーティング システムの中核であり、システム リソース (CPU、I/O デバイス、物理メモリ、ファイル システムなど) へのアクセスを制御します。 。ブート プロセス中およびシステムの実行中、カーネルはさまざまなメッセージをカーネル リング バッファに書き込みます。これらのメッセージには、システム動作に関するさまざまな情報が含まれています。
カーネル リング バッファは、カーネルのログ メッセージを保存するために使用される物理メモリの一部です。サイズは固定されており、バッファがいっぱいになると、古いログ レコードが上書きされます。
dmesg コマンド ライン ユーティリティは、Linux およびその他の Unix 系オペレーティング システムでカーネル リング バッファを出力および制御するために使用されます。カーネルのブート メッセージを検査し、ハードウェア関連の問題をデバッグするのに役立ちます。
このチュートリアルでは、dmesg コマンドの基本について説明します。
dmesg コマンドの使用
dmesg コマンドの構文は次のとおりです:
dmesg [OPTIONS] 在不带任何选项的情况下调用时,dmesg将所有消息从内核环形缓冲区写入标准输出:
$ dmesg
デフォルトでは、すべてのユーザーが dmesg コマンドを実行できます。ただし、一部のシステムでは、dmesg へのアクセスが非 root ユーザーに制限されている場合があります。この場合、dmesg を呼び出すと次のエラー メッセージが表示されます:
dmesg: カーネル バッファの読み取りに失敗しました: 操作は許可されていません
カーネル パラメータkernel.dmesg_restrict特権のないユーザーが dmesg を使用してカーネルからのメッセージを表示できるかどうかを指定しますログバッファ情報。制限を削除するには、制限をゼロに設定します。
$ sudo sysctl -w kernel.dmesg_restrict=0
通常、出力には多くの情報行が含まれるため、次の情報のみを参照してください。出力の最後の部分。一度に 1 ページを表示するには、出力を「less」または「more」などのページング ユーティリティにパイプします:
$ dmesg --color=always |less
where --color=always パラメータは、色付きの出力を保持するために使用されます。
バッファメッセージをフィルタリングしたい場合は、grep を使用できます。たとえば、USB 関連のメッセージのみを表示するには、次のように入力します:
$ dmesg | grep -i usb
dmesg 从/proc/kmsg虚拟文件中读取内核生成的消息。该文件提供了到内核环形缓冲区的接口,并且只能由一个进程打开。如果系统上正在运行syslog进程,并且你尝试使用cat或less命令读取文件,则命令将挂起。
syslog守护程序将内核消息转储到/var/log/dmesg,因此你也可以使用该日志文件:
$ cat /var/log/dmesg
格式化 dmesg 输出。
dmesg命令提供了许多选项,可帮助你格式化和过滤输出。
dmesg中最常用的选项之一是-H(--human),它将输出更容易读的结果。
$ dmesg -H
要打印人类可读的时间戳,请使用-T(--ctime选项):
$ dmesg -T [Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
时间戳格式也可以使用--time-format
$ dmesg --time-format=delta
2 つ以上のオプションを組み合わせることもできます:
$ dmesg -H -T
dmesg コマンドの出力をリアルタイムで確認するには、-w (--follow) オプションを使用します:
$ dmesg --follow
dmesg 出力をフィルタリングします。
dmesg 出力を特定の機能とレベルに制限できます。 dmesg は次のタイプをサポートします:
カーンカーンメッセージ ユーザーユーザーレベルのメッセージ -
メールメールシステム daemon - システム デーモン auth - セキュリティ/認可メッセージ - ##syslog - 内部 syslogd メッセージ
- lpr-line プリンタ サブシステム
- news-network ニュース サブシステム
- -f( --facility
) オプションを使用すると、出力を特定のデバイスに制限できます。このオプションは、1 つ以上のカンマ区切りの機能を受け入れます。
$ dmesg -f kern,daemon
emerg-システムが利用できません alert-直ちにアクションを実行する必要があります crit-Emergency err-エラー状態 warn-警告状態 notice-通常だが重要な状態 info - 情報 debug - デバッグ レベルのメッセージ
-l( - -level <list>)
オプションを使用すると、出力を定義されたレベルに制限できます。このオプションは、1 つ以上のカンマ区切りレベルを受け入れます。次のコマンドは、エラー メッセージと重大なメッセージのみを表示します:
$ dmesg -l err,crit
clearringbuffer
-C (--clear) ) オプションを使用すると、リング バッファをクリアできます:
$ sudo dmesg -C
root または sudo 権限を持つユーザーのみがバッファをクリアできます。
クリアする前にバッファーの内容を出力するには、-c (--read-clear) オプションを使用します。
$ sudo dmesg -c
現在の dmesg ログをクリアする前にファイルに保存すると、出力をファイルにリダイレクトできます:
$ dmesg > dmesg_messages
結論
dmesg コマンドを使用すると、カーネル リング バッファを表示および制御できます。これは、カーネルまたはハードウェアの問題のトラブルシューティングを行うときに役立ちます。
ターミナルに man dmesg と入力すると、利用可能なすべての dmesg オプションに関する情報を取得できます。
以上が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)

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

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

Centosは、上流の分布であるRhel 8が閉鎖されたため、2024年に閉鎖されます。このシャットダウンはCentos 8システムに影響を与え、更新を継続し続けることができません。ユーザーは移行を計画する必要があり、提案されたオプションには、Centos Stream、Almalinux、およびRocky Linuxが含まれ、システムを安全で安定させます。

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

Centosシステムの下でのGitlabのバックアップと回復ポリシーデータセキュリティと回復可能性を確保するために、Gitlab on Centosはさまざまなバックアップ方法を提供します。この記事では、いくつかの一般的なバックアップ方法、構成パラメーター、リカバリプロセスを詳細に紹介し、完全なGitLabバックアップと回復戦略を確立するのに役立ちます。 1.手動バックアップGitlab-RakeGitlabを使用:バックアップ:コマンドを作成して、マニュアルバックアップを実行します。このコマンドは、gitlabリポジトリ、データベース、ユーザー、ユーザーグループ、キー、アクセスなどのキー情報をバックアップします。デフォルトのバックアップファイルは、/var/opt/gitlab/backupsディレクトリに保存されます。 /etc /gitlabを変更できます

CentOSハードディスクマウントは、次の手順に分割されます。ハードディスクデバイス名(/dev/sdx)を決定します。マウントポイントを作成します( /mnt /newdiskを使用することをお勧めします);マウントコマンド(Mount /dev /sdx1 /mnt /newdisk)を実行します。 /etc /fstabファイルを編集して、永続的なマウント構成を追加します。 Umountコマンドを使用して、デバイスをアンインストールして、プロセスがデバイスを使用しないことを確認します。

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。
