qemu sanal makineleri için günlük kaydı ve hata ayıklama


12

qemuHipervizördeki HDD'de yer kalmadığından birkaç kez çökmüş bir sanal makinem vardı. Bu bana quemusanal makineler için bir günlük kaydı / hata ayıklama kurma imkanı olduğunu merak etti . Sanal makineyi -D /tmp/qemu-debug-logkomutla başlatmayı denedim :

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

..ama bu bir /tmp/qemu-debug-logdosya bile yaratmadı .

Buna ek olarak, çekirdek halkası tamponuna ( ) qemuyazmıyor messagesveya çekiyor gibi görünmüyor dmesg. qemuSanal makineler için günlüğe kaydetmeyi etkinleştirmek için en iyi uygulamalar nelerdir ?


Bunun yerine libvirt işlevlerini kullanmaya çalıştınız mı?
Willian Paixao

Sürücüyü kullanması gereken qemuaraçları kullanarak değil , doğrudan çalışmayı tercih ederim . libvirtlibvirt qemu
Martin

Yanıtlar:


10

qemucommand -dadlı bir günlük dosyası oluşturan basit bir anahtarı kabul eder /tmp/qemu.log.

Daha fazla kayıt / hata ayıklama seçeneğine QEMU Monitor (örn. qemu -monitor stdio) Üzerinden erişebilirsiniz .


3

QEMU tarafından sağlanan herhangi bir günlüğe kaydetme seçeneği, ihtiyacınız olan şey için çok düşük düzeyde olacaktır: Sorununuz, sanal donanımın hatalı davranması değil, yalnızca VM içindeki yazılımın ilgilenmesi gerektiğidir.

Bu açıdan bir VM, gerçek bir makineden farklı değildir ve çözüm aynıdır. Sorunuz VM'nin FreeBSD çalıştırdığını gösteriyor, bu yüzden rsysloggünlükleri ağ bağlantısı üzerinden harici bir syslog sunucusuna (ana makineniz olabilir) itmek için kontrol etmelisiniz .

(BSD'lere pek aşina değilim, bu yüzden rsyslogburada doğru veya tek çözümün % 100 olduğundan emin değilim , ancak bu anahtar kelime sizi çalıştırmalıdır.)


0

Eğer kullanırsanız -d <component>QEMU başlatırken parametresini, bu bileşen için hata ayıklama sağlayacaktır. Bu, QEMU kaynak koduna sahipseniz ve belirli bir bileşen için ayrıntılı hata ayıklamalarını görmek istiyorsanız kullanışlıdır.

Örneğin, -d cpu_resetiletme, "CPU sıfırlanmadan önce CPU durumunu gösterecek" CPU_LOG_RESET hata ayıklamasını etkinleştirir. Günlük seçeneklerinin tam listesi için qemu / util / log.c dosyasına bakın .

Varsayılan olarak, günlükler /tmp/qemu.log dosyasına yazılır, ancak -D <logfile>parametreyle farklı bir günlük dosyası belirtebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.