У меня была qemu
виртуальная машина, которая несколько раз выходила из строя, потому что на жестком диске в гипервизоре не осталось места. Это заставило меня задуматься, есть ли возможность настроить логирование / отладку для 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
виртуальных машин?
qemu
напрямую, а не с помощью инструментов, которыеlibvirt
используютlibvirt
qemu
драйверы.Ответы:
qemu
Команда принимает простой-d
переключатель, который создает файл журнала с именем/tmp/qemu.log
.Вы можете получить доступ к дополнительным параметрам ведения журнала / отладки через QEMU Monitor (например
qemu -monitor stdio
).источник
Любая опция ведения журнала, предоставляемая QEMU, будет слишком низкоуровневой для того, что вам нужно: ваша проблема не в том, что виртуальное оборудование работает неправильно, а в том, что программное обеспечение внутри виртуальной машины требует внимания.
В этом отношении виртуальная машина ничем не отличается от реальной машины, и решение остается тем же. Ваш вопрос говорит о том, что виртуальная машина работает под управлением FreeBSD, поэтому вы должны проверить использование
rsyslog
проталкивания журналов на внешний сервер системного журнала (который может быть вашим хостом) через сетевое соединение.(Я не очень знаком с BSD, поэтому я не уверен на 100%, что
rsyslog
это правильное или единственное решение, но это ключевое слово должно помочь вам начать.)источник
Если вы используете
-d <component>
параметр при запуске QEMU, он включит отладку для этого компонента. Это полезно, если у вас есть исходный код QEMU и вы хотите увидеть подробные отладки для данного компонента.Например, передача
-d cpu_reset
включит отладку CPU_LOG_RESET, которая "покажет состояние процессора до перезагрузки процессора". Смотрите qemu / util / log.c для полного списка параметров ведения журнала.По умолчанию журналы записываются в /tmp/qemu.log, но вы можете указать другой файл журнала с
-D <logfile>
параметром.источник