हाल ही में, मेरे सिस्टम में से एक पर, वर्चुअलबॉक्स ने काम करना बंद कर दिया। चाहे मैंने जिस भी वर्चुअल मशीन को लॉन्च करने की कोशिश की, यह वही त्रुटि फेंकती रही। पॉपअप विंडो पढ़ेगी: वर्चुअल मशीन [जो भी नाम है] के लिए सत्र खोलने में विफल। विवरण बॉक्स में, यह कहेगा: NS_ERROR_FAILURE (0x80004005)।
अजीब। संदेश गूढ़ और सामान्य है, और वास्तव में आपको तुरंत सुराग नहीं देता कि क्या गलत हो सकता है। खैर, मैंने समस्या निवारण शुरू किया, और कुछ परीक्षण और त्रुटि के बाद, यह छोटा गाइड पैदा हुआ। अब, सभी संभावनाओं में, यह आपकी सभी समस्याओं को हल नहीं करेगा (उसी त्रुटि कोड के साथ), लेकिन आपको अपने विशिष्ट सिस्टम में क्या काम नहीं कर रहा है, यह पता लगाने के लिए बस पर्याप्त मार्गदर्शन मिल सकता है। मेरा अनुसरण करें।
समस्या का विस्तार
चूंकि पॉपअप संदेश मुझे ज्यादा नहीं बताता, मुझे सिस्टम लॉग में देखना पड़ा। यहां, मुझे कहीं अधिक उपयोगी जानकारी मिली। अर्थात्, ऐसा लगता है कि वर्चुअलबॉक्स VMSVGA ग्राफिक्स ड्राइवर क्रैश हो रहा था, और त्रुटि libX11 साझा लाइब्रेरी की ओर इशारा कर रही थी।
Feb 3 12:21:09 kernel: [] VMSVGA FIFO[11413]: segfault at f8 ip 00007fcf4df5ada4 sp 00007fced9329c40 error 4 in libX11.so.6.3.0[7fcf4df40000+133000]
इस बिंदु पर, मुझे लगा कि मेरे वर्चुअलबॉक्स इंस्टेंस के साथ कुछ गड़बड़ हो गई होगी। इसलिए मैंने चरण दर चरण, व्यवस्थित रूप से इसके माध्यम से जाने का फैसला किया। सबसे पहले, vboxconfig के साथ वर्चुअलबॉक्स मॉड्यूल को पुनर्निर्माण करें। यह सेवा को भी पुनरारंभ करता है।
sudo vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules.
हालांकि, इसने तुरंत समस्या को कम नहीं किया। फिर, मैंने थोड़ा और सोचने की कोशिश की। वर्चुअलबॉक्स का कौन सा अन्य घटक दोषी हो सकता है, लेकिन जो जरूरी नहीं कि vboxconfig सेटअप प्रक्रिया द्वारा कवर किया गया हो। और मैंने सोचा, वर्चुअलबॉक्स एक्सटेंशन पैक?
मैंने देखा कि मेरे प्रभावित सिस्टम पर क्या इंस्टॉल था, और मैंने देखा कि मेरे वर्चुअलबॉक्स और एक्सटेंशन पैक के अलग-अलग संस्करण थे। यह अच्छी बात नहीं है, और अप्रत्याशित व्यवहार का कारण बन सकता है, जो जाहिरा तौर पर, मेरे सिस्टम पर हुआ था। लिनक्स में, समस्या यह है कि लॉन्च पर, वर्चुअलबॉक्स एक्सटेंशन पैक के अपडेट की जांच करेगा और आपको इसे इंस्टॉल करने की अनुमति देगा, जबकि कोर प्रोग्राम स्वयं सिस्टम अपडेट पर निर्भर करता है। यदि ये दोनों क्रम में नहीं होते हैं, सिस्टम पहले एक्सटेंशन दूसरा, तो आप ऐसी स्थिति में समाप्त हो सकते हैं जहां आपके वर्चुअल मशीन नहीं चल सकते, जैसा कि ऊपर दिखाया गया है।
समाधान
यहां फिक्स यह है कि आपत्तिजनक पैक को हटा दें, और फिर एक ऐसा इंस्टॉल करें जो वर्चुअलबॉक्स प्रोग्राम से मेल खाता हो, या इसके विपरीत। किसी भी तरह, उन्हें मेल खाना चाहिए। मैं File > Preferences > Extensions पर गया, और Remove बटन पर क्लिक किया। लेकिन फिर, मुझे पहले जैसी ही त्रुटि मिली, पैक को हटाने की कोशिश करते समय!
कमांड-लाइन क्लीनअप
दूसरे मुद्दे का समाधान एक टर्मिनल विंडो में क्लीनअप ऑपरेशन करना है - आप एक्सटेंशन पैक को इंस्टॉल या हटाने के लिए कमांड का उपयोग भी कर सकते हैं (और यहां तक कि जबरन हटाने भी)।
VBoxManage extpack cleanup Successfully performed extension pack cleanup
अब, मैं GUI पर वापस गया, और मैं पैक को हटाने में सक्षम था। अच्छा। फिर, मैंने एक नया डाउनलोड और इंस्टॉल किया, एक संस्करण जो मुख्य प्रोग्राम संस्करण से मेल खाता है:
और अब, वर्चुअल मशीनें पहले की तरह चलती हैं!
निष्कर्ष
एक तरह से, ऊपर की समस्या पूरी तरह से मेरी तरफ से स्वयं-निर्मित है। लेकिन फिर, पूरी चीज़ को अधिक मजबूत बनाने के तरीके होने चाहिए। उदाहरण के लिए, असंगत एक्सटेंशन पैक को इंस्टॉल करने की अनुमति न दें। एक से अधिक संस्करण उपलब्ध रखें (एक प्रकार के पुनर्स्थापना के रूप में), और यदि डिफ़ॉल्ट विफल होता है तो उसका उपयोग करें। अधिक विस्तृत संदेश प्रदान करें। वर्चुअलबॉक्स लिनक्स रिपॉजिटरी के माध्यम से एक्सटेंशन प्रदान करें, ठीक मुख्य प्रोग्राम की तरह।
यदि आप कुछ इसी तरह का सामना करते हैं, तो कृपया ध्यान दें कि त्रुटि कोड में सबसे अधिक संभावना है कि मुद्दों की एक विस्तृत श्रृंखला शामिल होगी, और आप केवल इसे देखकर अपने वर्चुअलबॉक्स समस्या का मूल कारण पता लगाने में सक्षम नहीं होंगे। इसके बजाय, आप आधा दर्जन बग रिपोर्ट या फोरम पोस्ट पढ़ सकते हैं जिनका एक ही प्रारंभिक बिंदु है और प्रत्येक मामले में पूरी तरह से अलग समाधान/परिणाम है। मेरा लेख इस संबंध में कोई अपवाद नहीं है, लेकिन मैंने सिस्टम लॉग जानकारी के माध्यम से सावधानीपूर्वक पालन किया, जिसने मुझे अपना ध्यान केंद्रित करने और असली अपराधी का पता लगाने की अनुमति दी। वैसे भी, आज के लिए बस इतना ही। ख्याल रखना।
Cheers.