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
書き込まれた内容がないようです。仮想マシンのロギングを有効にするベストプラクティスは何ですか?messages
dmesg
qemu
答え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%確信できませんが、このキーワードを使用すると始めるのに役立ちます。)