Saya memiliki mesin qemu
virtual yang mengalami crash beberapa kali karena HDD di hypervisor tidak memiliki ruang tersisa. Ini membuat saya bertanya-tanya apakah ada kemungkinan untuk mengatur logging / debugging untuk quemu
mesin virtual. Saya mencoba memulai mesin virtual dengan -D /tmp/qemu-debug-log
perintah:
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
..tapi ini bahkan tidak membuat /tmp/qemu-debug-log
file.
Selain itu, qemu
sepertinya tidak menulis ke dalam messages
atau buffer cincin kernel ( dmesg
). Apa praktik terbaik untuk mengaktifkan pencatatan untuk qemu
mesin virtual?
qemu
secara langsung dan tidak melalui alat yang digunakanlibvirt
yang pada gilirannya harus menggunakanlibvirt
qemu
driver.Jawaban:
qemu
perintah menerima-d
saklar sederhana yang membuat file log disebut/tmp/qemu.log
.Anda dapat mengakses lebih banyak opsi logging / debugging melalui QEMU Monitor (mis
qemu -monitor stdio
.).sumber
Opsi logging apa pun yang disediakan oleh QEMU akan terlalu rendah untuk apa yang Anda butuhkan: masalah Anda bukanlah perangkat keras virtual mengalami kesalahan, hanya saja perangkat lunak di dalam VM perlu diperhatikan.
Dalam hal ini VM tidak berbeda dengan mesin nyata, dan solusinya sama. Pertanyaan Anda menunjukkan bahwa VM menjalankan FreeBSD, jadi Anda harus memeriksa menggunakan
rsyslog
untuk mendorong log ke server syslog eksternal (yang bisa menjadi mesin host Anda) melalui koneksi jaringan.(Saya tidak terlalu terbiasa dengan BSD, jadi saya tidak 100% yakin bahwa itu
rsyslog
adalah solusi yang tepat atau satu-satunya di sini, tetapi kata kunci tersebut harus Anda mulai.)sumber
Jika Anda menggunakan
-d <component>
parameter saat memulai QEMU, itu akan memungkinkan debugging untuk komponen itu. Ini berguna jika Anda memiliki kode sumber QEMU dan ingin melihat detail debug untuk komponen tertentu.Sebagai contoh, passing
-d cpu_reset
akan mengaktifkan debugging CPU_LOG_RESET yang akan "menampilkan status CPU sebelum reset CPU". Lihat qemu / util / log.c untuk daftar lengkap opsi logging.Secara default, log ditulis ke /tmp/qemu.log, tetapi Anda dapat menentukan file log yang berbeda dengan
-D <logfile>
parameternya.sumber