BIOS ब्लॉक वर्चुअलाइजेशन कैसे कर सकता है?


26

मैं डॉकर के साथ काम करना शुरू कर रहा हूं और इसे काम करने की कोशिश करने के कुछ घंटों के बाद, मुझे पता चला कि मेरा BIOS इसे अवरुद्ध कर रहा था और मुझे BIOS सेटिंग्स को समायोजित करने की आवश्यकता थी। मुझे बताया गया था कि BIOS किसी तरह मदरबोर्ड से संबंधित है।

ऑपरेटिंग सिस्टम को ओवरराइड करते हुए BIOS इस तरह की प्रक्रिया को कैसे रोक सकता है?


14
आपके पास यह पिछड़ा हुआ है। वर्चुअलाइजेशन के लिए BIOS सेटिंग्स एक विशेष प्रकार के प्रसंस्करण की अनुमति देने के लिए सीपीयू को बताती हैं। यदि बायोस में वर्चुअलाइजेशन एक्सटेंशन सक्षम नहीं हैं, तो सीपीयू प्रोग्राम को निष्पादित नहीं कर पाएगा। स्थिति बहुत कुछ ऐसी है जैसे कि एक x64 सिस्टम पर एक डीईसी अल्फा प्रोसेसर आर्किटेक्चर के लिए संकलित प्रोग्राम को चलाने की कोशिश करना। एक्सटेंशन के बिना, प्रोग्राम उन निर्देशों को चलाने का प्रयास करेगा जो सीपीयू को समझ में नहीं आता है। आपका डॉकर निष्पादन से खुद को रोक रहा है क्योंकि उसने पाया है कि आपका सीपीयू जैसा कि वर्तमान में कॉन्फ़िगर किया गया है वह इसे चला नहीं सकता है।
फ्रैंक थॉमस

जवाबों:


37

ऐसा नहीं है कि सीपीयू किसी प्रोग्राम को ब्लॉक कर रहा है; यह एक स्तर के कम पर क्षुधा की अवधारणा नहीं है। समस्या यह है कि गैर-लिनक्स ऑपरेटिंग सिस्टम पर डॉकर को हार्डवेयर वर्चुअलाइजेशन की आवश्यकता हो सकती है। आपने अपना OS निर्दिष्ट नहीं किया है, लेकिन मैंने एक छोटा सा स्नूपिंग किया और पता चला कि आप शायद विंडोज का उपयोग करते हैं।

हार्डवेयर वर्चुअलाइजेशन एक सीपीयू विशेषता है, जैसा कि आप नाम से अनुमान लगा सकते हैं, सीपीयू को वर्चुअलाइजेशन के साथ मदद करता है। कई मशीनों पर, आपको इसे BIOS में सक्षम करना होगा। यह, सुरक्षा मुद्दों को रोकने के लिए, भाग में है । असल में, आप एक कार्यक्रम शुरू नहीं कर सकते क्योंकि यह एक ऐसी सुविधा का उपयोग करने का प्रयास करता है जो सक्रिय रूप से अवरुद्ध होने के विपरीत प्रभावी रूप से अनुपस्थित था।


14
a tiny bit of snoopingहा..हा
bs677

हाँ, मैं एक विंडोज़ 7 का उपयोग कर रहा हूँ! स्पष्टीकरण के लिए धन्यवाद!!! मुझे ये अब मिला!
अल्वारो जोआओ

मैं इस सेटिंग से परिचित हूं लेकिन फिर भी स्पष्ट नहीं है कि वास्तव में हार्डवेयर वर्चुअलाइजेशन (BIOS सेटिंग के संदर्भ में) क्या है?
सेलेरिटास

2
@Celeritas हार्डवेयर वर्चुअलाइजेशन सीपीयू और BIOS द्वारा प्रदान की जाने वाली सुविधाओं का एक समूह है जो वर्चुअल मशीनों को चलाने में अधिक कुशल बनाता है, जैसे कि VM द्वारा किए गए मेमोरी एक्सेस को अधिक कुशल तरीके से प्रबंधित करके शुद्ध सॉफ्टवेयर स्तर पर किया जा सकता है, और वर्चुअलाइजेशन सॉफ्टवेयर के लिए I / O संचालन जैसे "विशेषाधिकार प्राप्त" निर्देशों को संभालना / फंसाना अधिक कुशलता से संभालना।
ζ--

2
@ RACING121 N का मतलब NSA :) है
बेन एन

41

बेन एन उत्तर स्पष्ट रूप से सबसे उपयोगी और स्पष्ट है।

उन लोगों के लिए जो अभी भी आश्चर्य करते हैं, हालांकि यहां पूरी कहानी है।


वर्चुअलाइजेशन सीपीयू से हार्डवेयर की सहायता से प्राप्त किया जाता है। चूंकि एक वर्चुअलाइज्ड ओएस मेजबान के साथ हस्तक्षेप करेगा, क्योंकि वे समान संसाधनों के लिए प्रतिस्पर्धा करते हैं, इसलिए अतिथि को हार्डवेयर तक अनियंत्रित होने से रोकने के लिए एक तंत्र की आवश्यकता होती है। यह सॉफ्टवेयर, धीमा, तकनीक या सीपीयू की सहायता से नीचे हो सकता है।

हार्डवेयर असिस्टेड वर्चुअलाइजेशन को विशिष्ट, वैकल्पिक निर्देशों के साथ कार्यान्वित किया जाता है , आप इसके बारे में चैप्टर 23, 24, 25, 26, 27 और इंटेल मैनुअल 3 बी पार्ट 3 के 28 में पढ़ सकते हैं । सॉफ्टवेयर का उपयोग करने के लिए प्रयास करने से पहले, इस निर्देश का समर्थन करने के लिए जाँच करनी चाहिए।

सुरक्षा कारणों से, CPU का एक विशेष रजिस्टर है, यह एक MSR है , जिसे IA32_FEATURE_CONTROL कहा जाता है जो बिट्स को सक्षम या अक्षम करने की सुविधा के साथ बताता है।
का हवाला देते हुए

बिट 0 लॉक बिट है। यदि यह बिट स्पष्ट है, तो VMXON एक सामान्य-सुरक्षा अपवाद का कारण बनता है। यदि लॉक बिट सेट है, तो इस MSR के लिए WRMSR एक सामान्य-सुरक्षा अपवाद का कारण बनता है; MSR को पावर-अप रीसेट स्थिति तक संशोधित नहीं किया जा सकता है । VMX के लिए समर्थन को अक्षम करने के लिए सिस्टम BIOS BIOS के लिए सेटअप विकल्प प्रदान करने के लिए इस बिट का उपयोग कर सकता है। एक मंच में वीएमएक्स समर्थन को सक्षम करने के लिए, BIOS को बिट 1, बिट 2 या दोनों (नीचे देखें), साथ ही लॉक बिट सेट करना होगा।

मूल बिंदु यह है कि एक बार रजिस्टर लॉक हो जाने के बाद, इसे पावर-अप तक अनलॉक नहीं किया जा सकता है

चूंकि BIOS / UEFI पहले आता है, इसमें उपयुक्त बिट्स को साफ़ करके और किसी भी OS को रोकने से पहले रजिस्टर को लॉक करके वर्चुअलाइजेशन को निष्क्रिय करने की शक्ति है। जब वर्चुअलाइज़ेशन फ़ीचर को इस तरह से डिसेबल किया जाता है, तो सीपीयू रिपोर्ट करता है कि यह वैकल्पिक इंस्ट्रक्शन एक्सटेंशन गायब है (और वास्तव में यदि वे उपयोग किए जाते हैं तो दोष) और इसलिए सॉफ़्टवेयर हार्डवेयर वर्चुअलाइजेशन का उपयोग नहीं कर सकता है।


2
यह सवाल का एक बहुत अच्छा ऐड है। अधिकांश लोगों को पता नहीं है कि सेटिंग को बदलने के लिए रीसेट की आवश्यकता होती है, इसलिए ओएस चालू होने के दौरान इसे "फ्लाई पर" सक्षम नहीं किया जा सकता है।
टॉनी

ओह, तो यह है कि यह कैसे काम करता है! मैंने इसे नजरअंदाज किया और आपका जवाब पाया (जो कि मेरी व्यक्तिगत अवधारणाओं के लिए मेरी दिलचस्पी है)
पॉल स्टेलियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.