Miałem qemu
maszynę wirtualną, która kilkakrotnie uległa awarii, ponieważ na dysku twardym w hiperwizorze nie było już miejsca. Zastanawiam się, czy istnieje możliwość skonfigurowania rejestrowania / debugowania dla quemu
maszyn wirtualnych. Próbowałem uruchomić maszynę wirtualną za pomocą -D /tmp/qemu-debug-log
polecenia:
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
.. ale to nawet nie utworzyło /tmp/qemu-debug-log
pliku.
Ponadto qemu
wydaje się , że nie zapisuje do messages
bufora pierścieniowego jądra ( dmesg
). Jakie są najlepsze praktyki umożliwiające rejestrowanie qemu
maszyn wirtualnych?
qemu
bezpośrednio, a nie za pomocą narzędzi,libvirt
które z kolei powinny korzystać zelibvirt
qemu
sterownika.Odpowiedzi:
qemu
polecenie akceptuje prosty-d
przełącznik, który tworzy plik dziennika o nazwie/tmp/qemu.log
.Możesz uzyskać dostęp do większej liczby opcji rejestrowania / debugowania za pomocą Monitora QEMU (np
qemu -monitor stdio
.).źródło
Każda opcja rejestrowania zapewniana przez QEMU będzie o wiele za niska dla tego, czego potrzebujesz: Twoim problemem nie jest to, że sprzęt wirtualny działa nieprawidłowo, a jedynie to, że oprogramowanie wewnątrz maszyny wirtualnej wymaga uwagi.
Pod tym względem maszyna wirtualna nie różni się od prawdziwej maszyny, a rozwiązanie jest takie samo. Twoje pytanie sugeruje, że na maszynie wirtualnej działa FreeBSD, więc powinieneś sprawdzić za pomocą
rsyslog
wypchnięcia dzienników do zewnętrznego serwera syslog (który może być twoim komputerem hosta) przez połączenie sieciowe.(Nie znam się zbyt dobrze na BSD, więc nie jestem w 100% pewien, że
rsyslog
jest to właściwe lub jedyne rozwiązanie tutaj, ale to słowo kluczowe powinno zacząć.)źródło
Jeśli użyjesz tego
-d <component>
parametru podczas uruchamiania QEMU, umożliwi to debugowanie tego komponentu. Jest to przydatne, jeśli masz kod źródłowy QEMU i chcesz zobaczyć szczegółowe debugowania dla danego komponentu.Na przykład przekazywanie
-d cpu_reset
umożliwi debugowanie CPU_LOG_RESET, które „pokaże stan CPU przed zresetowaniem CPU”. Zobacz qemu / util / log.c, aby uzyskać pełną listę opcji rejestrowania.Domyślnie dzienniki są zapisywane w /tmp/qemu.log, ale za pomocą
-D <logfile>
parametru można określić inny plik dziennika .źródło