การบันทึกและการดีบักสำหรับ 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หรือเคอร์เนลบัฟเฟอร์แหวน ( dmesg) แนวทางปฏิบัติที่ดีที่สุดในการเปิดใช้งานการบันทึกสำหรับqemuเครื่องเสมือนคืออะไร


คุณเคยลองใช้ฟังก์ชั่นของ libvirt แทนไหม?
Willian Paixao

ฉันต้องการทำงานกับqemuโดยตรงไม่ใช่ผ่านเครื่องมือที่ใช้libvirtซึ่งควรใช้libvirt qemuไดรเวอร์
Martin

คำตอบ:


10

qemuคำสั่งยอมรับง่ายสวิทช์ซึ่งจะสร้างแฟ้มบันทึกที่เรียกว่า-d/tmp/qemu.log

คุณสามารถเข้าถึงตัวเลือกการบันทึก / การดีบักเพิ่มเติมผ่านทาง จอภาพ QEMU (เช่นqemu -monitor stdio)


3

ตัวเลือกการบันทึกใด ๆ ที่จัดทำโดย QEMU จะอยู่ในระดับต่ำเกินไปสำหรับสิ่งที่คุณต้องการ: ปัญหาของคุณไม่ใช่ว่าฮาร์ดแวร์เสมือนทำงานผิดปกติเพียง แต่ซอฟต์แวร์ภายใน VM ต้องการความสนใจ

ในแง่นี้ VM ไม่แตกต่างจากเครื่องจริงและการแก้ปัญหาเหมือนกัน คำถามของคุณชี้ให้เห็นว่า VM กำลังใช้งาน FreeBSD ดังนั้นคุณควรตรวจสอบโดยใช้rsyslogเพื่อดันล็อกไปยังเซิร์ฟเวอร์ syslog ภายนอก (ซึ่งอาจเป็นเครื่องโฮสต์ของคุณ) ผ่านการเชื่อมต่อเครือข่าย

(ฉันไม่ค่อยคุ้นเคยกับ BSD ดังนั้นฉันจึงไม่แน่ใจ 100% ว่าrsyslogเป็นวิธีการแก้ปัญหาที่ถูกต้องหรือเฉพาะที่นี่ แต่คำหลักนั้นควรให้คุณเริ่มต้น)


0

หากคุณใช้-d <component>พารามิเตอร์เมื่อเริ่มต้น QEMU มันจะเปิดใช้งานการดีบักสำหรับองค์ประกอบนั้น สิ่งนี้มีประโยชน์หากคุณมีซอร์สโค้ด QEMU และต้องการดู debugs โดยละเอียดสำหรับองค์ประกอบที่กำหนด

ตัวอย่างเช่นการผ่าน-d cpu_resetจะเปิดใช้งานการดีบัก CPU_LOG_RESET ซึ่งจะ "แสดงสถานะของ CPU ก่อนที่จะรีเซ็ต CPU" ดูqemu / util / log.cสำหรับรายการตัวเลือกการบันทึกทั้งหมด

โดยค่าเริ่มต้นบันทึกจะถูกเขียนไปยัง /tmp/qemu.log แต่คุณสามารถระบุไฟล์บันทึกอื่นด้วย-D <logfile>พารามิเตอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.