カーネル ブートから dmesg (別名カーネル ログ) を単一の .txt ファイルにダンプする方法を教えてください。

カーネル ブートから dmesg (別名カーネル ログ) を単一の .txt ファイルにダンプする方法を教えてください。

私は SATA ホスト デバイス通信を理解しようとしており、そのためにカーネル ドライバー コードに多くのデバッグ メッセージを入れました。現在、メッセージの量が非常に多いため、dmesg ログでデバイス列挙の初期メッセージを確認できません。同じ目的で、CONFIG_LOG_BUF_SHIFT(=21) 構成変数を変更して、dmesg がメッセージを取得するリング バッファー サイズを増やしましたが、それでも同じ問題に直面しています。

では、カーネルのブートからのすべての dmesg を特定のファイルに記録できる方法はありますか?

ご協力ありがとうございます。

答え1

以下を使用できます:

cat /var/log/dmesg > file.txt

そして次のように使用します:

head /var/log/dmesg

dmesg の最初の行を確認したい場合。

詳細は「man head」を参照してください。「>」記号は「cat」の出力を「file.txt」にリダイレクトします。

答え2

ログを stdout に出力する というコマンドがありますdmesg。 stdout をテキスト ファイルにリダイレクトするだけです。

dmesg > /path/to/dmesg.txt

~/.profileこれを拡張することもできます。本当に便利なオプションは、ログイン時に dmesg の出力を追加する行をファイル (ホーム ディレクトリ内)に追加することです。次の行を追加するだけです。

dmesg >> /path/to/dmesg.txt

最初の数行 (0.000000 メッセージ) だけが必要な場合は、head次のようにパイプすることができます。

stdout の場合:

dmesg | head

または、headすでに保存されている .txt ファイルを使用します。

head /path/to/dmesg.txt

以上です。お役に立てれば幸いです。

編集:ちなみに、これには0.000000のメッセージが含まれています

関連情報