qemu虚拟机的日志记录和调试


12

我有一台qemu虚拟机崩溃了几次,因为虚拟机管理程序中的HDD没有剩余空间。这让我想知道是否有可能为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或写入内核ring buffer(dmesg)。启用qemu虚拟机日志记录的最佳实践是什么?


您是否尝试过使用libvirt的函数?
Willian Paixao 2015年

我宁愿qemu直接使用而不是通过使用libvirt反过来应该使用libvirt qemu驱动程序的工具来工作。
马丁

Answers:



3

QEMU提供的任何日志记录选项都无法满足您的需求:您的问题不在于虚拟硬件行为不正常,而在于虚拟机内部的软件需要引起注意。

在这方面,VM与真实计算机没有区别,解决方案相同。您的问题表明VM正在运行FreeBSD,因此您应该签出rsyslog用于通过网络连接将日志推送到外部syslog服务器(可能是您的主机)的方法。

(我对BSD不太熟悉,因此我不能100%地确定这rsyslog是正确或唯一的解决方案,但是该关键字应该可以帮助您入门。)


0

如果-d <component>在启动QEMU时使用该参数,它将启用该组件的调试。如果您拥有QEMU源代码并且想查看给定组件的详细调试信息,这将很有用。

例如,通过-d cpu_reset将启用CPU_LOG_RESET调试,该调试将“显示CPU复位之前的CPU状态”。有关日志记录选项的完整列表,请参见qemu / util / log.c。

默认情况下,日志被写入/tmp/qemu.log,但是您可以使用-D <logfile>参数指定其他日志文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.