qemu 仮想マシンのロギングとデバッグ

qemu 仮想マシンのロギングとデバッグ

qemuハイパーバイザーのHDDに余分なスペースがないため、VMが複数回クラッシュしました。これにより、quemu仮想マシンのロギング/デバッグを設定できるかどうか疑問に思います。-D /tmp/qemu-debug-log次のコマンドを使用して仮想マシンを起動しようとします。

qemu-system-i386 -D /tmp/qemu-debug-log -monitor pty -device e1000,netdev=tap0 -netdev tap,id=tap0 -m 512M -display vnc=:1 -drive file=FreeBSD10.2

/tmp/qemu-debug-log..しかし、ファイルは生成されません。

また、カーネルリングバッファ()にqemu書き込まれた内容がないようです。仮想マシンのロギングを有効にするベストプラクティスは何ですか?messagesdmesgqemu

答え1

qemuこのコマンドは、-Dログファイルを生成するための簡単なスイッチを可能にします。たとえば、include は-D ./log.txt作業ディレクトリに「log.txt」を生成します。

次の機能により、より多くのロギング/デバッグオプションにアクセスできます。 QEMUモニター(例えばqemu -monitor stdio)。

答え2

QEMUを起動するときにこのパラメーターを使用すると、-d <component>このコンポーネントのデバッグが有効になります。これは、QEMUソースコードがあり、特定のコンポーネントの詳細なデバッグを表示したい場合に便利です。

たとえば、渡すと、-d cpu_reset「CPU リセット前の CPU ステータスを表示」する CPU_LOG_RESET デバッグが有効になります。バラよりqemu/util/log.cロギングオプションの完全なリストを確認してください。

デフォルトでは、ログは/tmp/qemu.logに書き込まれますが、パラメータを使用して別のログファイルを指定できます-D <logfile>

答え3

QEMU が提供するすべてのロギング・オプションは、要件に比べて低すぎます。問題は、仮想ハードウェアが誤動作するのではなく、仮想マシン内のソフトウェアに注意が必要であることです。

この点で、仮想マシンは実際のマシンと変わらず、ソリューションも同じです。あなたの質問によると、仮想マシンはFreeBSDを実行しているので、rsyslogネットワーク接続を介して外部syslogサーバー(おそらくホスト)のログプッシュを使用して確認する必要があります。

(私はBSDについてよく知らないので、これがrsyslog正しいか唯一の解決策であるかどうかは100%確信できませんが、このキーワードを使用すると始めるのに役立ちます。)

関連情報