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


12

qemuハイパーバイザーのHDDに空き容量がないため、仮想マシンが数回クラッシュしました。これは、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


代わりにlibvirtの関数を使用しようとしましたか?
ウィリアンパイシャオ

私は、ドライバーqemuを使用するツールを使用するのlibvirtではなく、直接作業したいlibvirt qemuです。
マーティン

回答:


10

qemuコマンドは、-dというログファイルを作成する簡単なスイッチを受け入れます/tmp/qemu.log

QEMU Monitorを介して、より多くのロギング/デバッグオプションにアクセスできます (例:)qemu -monitor stdio


3

QEMUが提供するロギングオプションは、必要なものに対して非常に低レベルになります。問題は、仮想ハードウェアの誤動作ではなく、VM内のソフトウェアに注意が必要なことだけです。

この点で、VMは実際のマシンと違いはなく、ソリューションは同じです。あなたの質問は、VMがFreeBSDを実行していることを示唆しているのでrsyslog、ネットワーク接続を介してログを外部syslogサーバー(ホストマシンである可能性があります)にプッシュするために使用する必要があります。

(私はBSDにあまり詳しくないのでrsyslog、それがここで正しいまたは唯一の解決策であるという100%の確信はありませんが、そのキーワードはあなたを始めるはずです。)


0

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.