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में लिखना प्रतीत नहीं होता है । आभासी मशीनों के लिए लॉगिंग को सक्षम करने के लिए सबसे अच्छे अभ्यास क्या हैं ?messagesdmesgqemu


क्या आपने इसके बजाय libvirt के कार्यों का उपयोग करने की कोशिश की है?
विलियन पैक्साओ

मैं qemuसीधे उपकरणों के माध्यम से काम करना पसंद करूंगा न कि उन साधनों के माध्यम से जो कि चालक का libvirtउपयोग करना चाहिए libvirt qemu
मार्टिन

जवाबों:


10

qemuकमांड एक सरल -dस्विच को स्वीकार करता है जो लॉग फ़ाइल नामक बनाता है /tmp/qemu.log

आप QEMU मॉनिटर (जैसे qemu -monitor stdio) के माध्यम से अधिक लॉगिंग / डिबगिंग विकल्पों तक पहुँच सकते हैं ।


3

QEMU द्वारा प्रदान किया गया कोई भी लॉगिंग विकल्प आपकी आवश्यकता के लिए बहुत कम स्तर का होगा: आपकी समस्या यह नहीं है कि वर्चुअल हार्डवेयर दुर्व्यवहार कर रहा है, केवल यह कि वीएम के अंदर के सॉफ्टवेयर पर ध्यान देने की आवश्यकता है।

इस संबंध में एक वीएम एक वास्तविक मशीन से अलग नहीं है, और समाधान समान है। आपका प्रश्न बताता है कि VM FreeBSD चला रहा है, इसलिए आपको rsyslogनेटवर्क कनेक्शन के माध्यम से लॉग्स को बाहरी सिसलॉग सर्वर (जो आपका होस्ट मशीन हो सकता है) को पुश करने के लिए उपयोग करना चाहिए ।

(मैं बीएसडी से बहुत परिचित नहीं हूं, इसलिए मैं 100% निश्चित नहीं हूं कि rsyslogयहां सही या एकमात्र समाधान है, लेकिन यह कीवर्ड आपको शुरू करना चाहिए।)


0

यदि आप -d <component>QEMU शुरू करते समय पैरामीटर का उपयोग करते हैं , तो यह उस घटक के लिए डीबगिंग को सक्षम करेगा। यह उपयोगी है यदि आपके पास QEMU स्रोत कोड है और किसी दिए गए घटक के लिए विस्तृत डीबग देखना चाहते हैं।

उदाहरण के लिए, पास -d cpu_resetकरने से CPU_LOG_RESET डिबगिंग सक्षम हो जाएगी जो "CPU रीसेट से पहले CPU स्थिति दिखाएगा"। लॉगिंग विकल्पों की पूरी सूची के लिए qemu / उपयोग / log.c देखें ।

डिफ़ॉल्ट रूप से, लॉग /tmp/qemu.log पर लिखे जाते हैं, लेकिन आप -D <logfile>पैरामीटर के साथ एक अलग लॉग फ़ाइल निर्दिष्ट कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.