KVM और VirtualBox कथित रूप से सह-अस्तित्व में नहीं रह सकते हैं, या यों कहें कि KVM मॉड्यूल मेमोरी में लोड होने पर VirtualBox नहीं चलेगा। केवीएम वर्चुअलबॉक्स के साथ ठीक काम कर सकता है, इसलिए यह वास्तव में एकतरफा समस्या है। इसे सुलझाना भी आसान है। दुर्भाग्य से, मुझे कई भयानक ट्यूटोरियल मिले हैं जो इस या उस उत्पाद को अनइंस्टॉल करने की सलाह देते हैं। और कम कड़े समाधान के लिए जाने वाले समझदार मार्गदर्शकों में से अधिकांश आपको बस यह या वह rmmod बताते हैं, लेकिन वे आपको यह नहीं बताते हैं कि चीजों को फिर से कैसे चालू किया जाए। पी>
मैं आपको दिखाऊंगा कि KVM और VirtualBox को साथ-साथ कैसे उपयोग करें, बिना किसी एक को अनइंस्टॉल किए या उपयोग के बीच में रीबूट किए बिना। आप सीखेंगे कि उत्पादों को कैसे अक्षम और सक्षम किया जाए ताकि परस्पर विरोधी समकक्ष चल सकें। विवो में, कोई रीबूट नहीं। आओ इसे करें। पी>
लक्षण - वर्चुअलबॉक्स नहीं चलेगा
जब आप वर्चुअलबॉक्स लॉन्च करते हैं तो आप इस प्रकार की त्रुटि देख सकते हैं:
पी>
यह कहता है, वर्चुअलबॉक्स वीएमएक्स रूट मोड में काम नहीं कर सकता है। कृपया KVM कर्नेल एक्सटेंशन को अक्षम करें, अपने कर्नेल को पुनः संकलित करें और रीबूट करें। वाह, वाह, धीरे करो। यह बहुत ही गीकी और डराने वाला संदेश है। कुछ भी पुन:संकलित करने की आवश्यकता नहीं है। फिक्स में पांच सेकंड लगते हैं और यह पूरी तरह से विनाशकारी नहीं है। पी>
समस्या के बारे में बताया गया
VirtualBox और KVM एक साथ काम नहीं कर सकते। इसका मतलब है कि अगर हम वर्चुअलबॉक्स चलाना चाहते हैं तो केवीएम को निष्क्रिय करने की जरूरत है। सवाल यह है कि हम यह कैसे करते हैं। उत्तर है:कर्नेल मॉड्यूल को सम्मिलित करना और हटाना। पी>
लिनक्स ऑपरेटिंग सिस्टम बिना रीबूट किए कर्नेल मॉड्यूल को डालने और हटाने का समर्थन करता है। इसका मतलब है कि आप विवो में मेमोरी से कर्नेल मॉड्यूल को लोड और अनलोड कर सकते हैं। मेरे लिनक्स कमांड आलेख और क्रैश बुक में अधिक विवरण। पी>
हमें जो चाहिए उसे प्राप्त करने के लिए, हम insmod और rmmod कमांड का प्रयोग करेंगे। पी>
मॉड्यूल हटाएं
आइए कर्नेल स्पेस की जांच करें। मेमोरी में कौन से मॉड्यूल लोड किए गए हैं, यह देखने के लिए हम पहले lsmod कमांड जारी करेंगे:
पी>
पी>
जैसा कि आप देख सकते हैं, वर्चुअलबॉक्स vboxdrv और vboxnetflt ड्राइवरों का उपयोग करता है, जबकि KVM kvm और kvm_intel ड्राइवरों का उपयोग करता है। नोट:kvm_intel इंटेल आर्किटेक्चर के लिए विशिष्ट है। एएमडी प्लेटफॉर्म के लिए kvm_amd है। हमें केवीएम मॉड्यूल को उतारने की जरूरत है। पी>
/sbin/rmmod kvm_intel
/sbin/rmmod kvm
पी>
पी>
बड़ा सवाल:लेकिन अब, केवीएम चला गया है। मैं इसे वापस कैसे प्राप्त कर सकता हूं, कृपया? पी>
आह, बहुत अच्छा! आइए देखें कि हम कैसे ठीक हो सकते हैं। पी>
मॉड्यूल डालें
जैसे हमने मॉड्यूल हटा दिए, वैसे ही हम उन्हें सम्मिलित कर सकते हैं। आपको अपनी डिस्क पर मॉड्यूल का पता लगाने और फिर उन्हें डालने की आवश्यकता होगी। आप modprobe कमांड का भी उपयोग कर सकते हैं, जो निर्भरता होने पर हमेशा उपयोगी होता है। पी>
आइए मॉड्यूल खोजें (कमांड में sudo मान लें, लेकिन इसे रूट के रूप में भी चलाया जा सकता है):
अपडेटेडबी
केवीएम का पता लगाएं
कई परिणाम होंगे, इसलिए आप खोज को kvm.ko और kvm-intel.ko तक सीमित कर सकते हैं। पी>
पी>
अब, वह डालें जो आपके चल रहे कर्नेल से मेल खाता हो। आप uname -r का उपयोग करके जांच कर सकते हैं। पी>
/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm.ko
/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm-intel.ko
यहाँ एक स्क्रीनशॉट है। सबसे पहले, हम केवीएम मॉड्यूल की जांच करते हैं। lsmod कमांड दिखाता है कि यह लोड नहीं हुआ है। फिर, हम kvm मॉड्यूल लोड करते हैं और lsmod कमांड एक बार फिर जारी करते हैं। पी>
कृपया ध्यान दें कि स्क्रीनशॉट कमांड ऊपर दिए गए कोड बॉक्स में लिखे कमांड से थोड़े अलग हैं। मैंने मान लिया था कि /sbin PATH में था, इसलिए मैंने संक्षिप्तता के लिए एक संक्षिप्त insmod कमांड का उपयोग किया। उसी समय, मैंने आपको यह दिखाने के लिए कि यह कैसा दिखता है, पूर्ण मॉड्यूल पथ का भी उपयोग किया। यदि आप प्रक्रिया को स्क्रिप्ट करने का इरादा रखते हैं, जो आपको करना चाहिए, तो पूर्ण पथ जरूरी हैं और अधिक मॉड्यूलरिटी के लिए बैकटिक्स का उपयोग करके कमांड प्रतिस्थापन की सिफारिश की जाती है। पी>
पी>
स्क्रिप्ट्स
अब, इसे स्वचालित करने का समय। आपको दो स्क्रिप्ट चाहिए। एक केवीएम मॉड्यूल को उतारने के लिए और दूसरा उन्हें लोड करने के लिए। यदि आप वास्तव में सख्त होना चाहते हैं, तो आप KVM का उपयोग करते समय VirtualBox सेवा को रोक भी सकते हैं और KVM का उपयोग करने के बाद इसे प्रारंभ कर सकते हैं। उदाहरण, वर्चुअलबॉक्स ड्राइवरों के बारे में बात करना:
पी>
पी>
इसलिए, वर्चुअलबॉक्स को सक्षम करने और KVM को अक्षम करने के लिए एक नमूना स्क्रिप्ट होगी:
#!/बिन/बैश
/sbin/rmmod kvm_intel
/sbin/rmmod kvm
/etc/init.d/vboxdrv प्रारंभ
और KVM को लोड करने और VirtualBox को रोकने के लिए एक होगा:
#!/बिन/बैश
/etc/init.d/vboxdrv बंद करो
/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm.ko
/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm-intel.ko
एएमडी मशीनों के लिए, kvm-intel.ko को kvm-amd.ko से बदलें। कृपया ध्यान दें कि यह सुनिश्चित करने के लिए कि आप एक आरंभ की गई सेवा शुरू करने का प्रयास नहीं कर रहे हैं, विवेक जांच आवश्यक है। मैंने इन्हें नहीं जोड़ा है; उन्हें होमवर्क समझें। पी>
इसी तरह, कृपया प्रोसेसर आर्किटेक्चर पर ध्यान दें। अधिकांश लोगों के लिए, x86 (और x86_64) काम करेगा, लेकिन आपके पास अन्य आर्किटेक्चर हो सकते हैं, जैसे SPARC, ARM, इटेनियम, या अन्य, इसलिए तदनुसार बदलें। पी>
अब, डेस्कटॉप शॉर्टकट्स रखें जो इन स्क्रिप्ट्स और बॉब के आपके अंकल से लिंक हों। विशिष्ट कर्नेल संस्करणों के बजाय uname का उपयोग करना सुनिश्चित करता है कि कर्नेल अपग्रेड के बाद भी आपकी स्क्रिप्ट काम करेगी। पी>
निष्कर्ष
जैसा कि आप देख सकते हैं, वास्तविकता उतनी कठोर नहीं है जितनी आपने उम्मीद की होगी। यह ट्यूटोरियल वर्चुअलबॉक्स और केवीएम को एक या दूसरे को अनइंस्टॉल किए बिना या लगातार रीबूट किए बिना सहयोग करने के सरल तरीकों को प्रकट करता है। लिनक्स आर्किटेक्चर मॉड्यूल के लाइव सम्मिलन की अनुमति देता है, इसलिए केवल एक चीज जिसे आपको वास्तव में रीबूट करना होगा वह कर्नेल अपग्रेड है। पी>
यह ट्यूटोरियल आपको कई चीजें सिखाता है, जिसमें उपयोगिता के साथ आराम के संयोजन का एक चतुर तरीका, कर्नेल मॉड्यूल को कैसे सम्मिलित करना और निकालना है, अपने काम को कैसे स्क्रिप्ट करना है और KVM और VirtualBox को साथ-साथ रखने के वांछित लक्ष्य को कैसे प्राप्त करना है। पी>
मुझे आशा है कि आपको यह पसंद आया होगा। पी>
प्रोत्साहित करना। पी>