qemu 가상 머신의 로깅 및 디버깅

qemu 가상 머신의 로깅 및 디버깅

qemu하이퍼바이저의 HDD에 남은 공간이 없어서 VM이 여러 번 충돌했습니다 . 이로 인해 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기록된 내용이 없는 것 같습니다 . 가상 머신 에 대한 로깅을 활성화하는 모범 사례는 무엇입니까 ?messagesdmesgqemu

답변1

qemu이 명령은 -D로그 파일을 생성할 수 있는 간단한 스위치를 허용합니다. 예를 들어, include는 -D ./log.txt작업 디렉토리에 "log.txt"를 생성합니다.

다음을 통해 더 많은 로깅/디버깅 옵션에 액세스할 수 있습니다. QEMU 모니터(예를 들어 qemu -monitor stdio).

답변2

QEMU를 시작할 때 이 매개변수를 사용하면 -d <component>이 구성요소의 디버깅이 활성화됩니다. 이는 QEMU 소스 코드가 있고 특정 구성 요소의 자세한 디버깅을 보려는 경우 유용합니다.

예를 들어 전달하면 -d cpu_reset"CPU 재설정 전 CPU 상태를 표시"하는 CPU_LOG_RESET 디버깅이 활성화됩니다. 바라보다qemu/util/log.c로깅 옵션의 전체 목록을 확인하세요.

기본적으로 로그는 /tmp/qemu.log에 기록되지만 매개변수를 사용하여 다른 로그 파일을 지정할 수 있습니다 -D <logfile>.

답변3

QEMU에서 제공하는 모든 로깅 옵션은 요구 사항에 비해 너무 낮은 수준입니다. 문제는 가상 하드웨어가 오작동하는 것이 아니라 가상 머신 내의 소프트웨어에 주의가 필요하다는 것입니다.

이런 점에서 가상 머신은 실제 머신과 다르지 않으며 솔루션도 동일합니다. 귀하의 질문에 따르면 가상 머신이 FreeBSD를 실행하고 있으므로 rsyslog네트워크 연결을 통해 외부 syslog 서버(아마도 호스트)에 대한 로그 푸시를 사용하여 확인해야 합니다.

(저는 BSD에 대해 잘 알지 못하기 때문에 이것이 rsyslog정확하거나 유일한 해결책인지 100% 확신할 수는 없지만 이 키워드를 사용하면 시작하는 데 도움이 될 것입니다.)

관련 정보