हाइपर-वी सर्वर पर चलने वाली वर्चुअल मशीन पर लिनक्स सेंटोस स्थापित करने का प्रयास करते समय मुझे एक दिलचस्प समस्या का सामना करना पड़ा (वर्चुअल मशीन का प्रकार "जेनरेशन 2 था) "यूईएफआई समर्थन के साथ)। मैंने CentOS 7 इंस्टॉलेशन फ़ाइल (ISO) डाउनलोड की थी, हाइपर-V में एक नया gen2 टाइप VM बनाया, ISO फ़ाइल को माउंट किया और VM को इंस्टॉलेशन ISO से बूट करने का प्रयास किया। हालाँकि, VM को बूट करते समय, हाइपर-V कंसोल में निम्न त्रुटि संदेश दिखाई दिया:
SCSI DVD (0,0). The image's hash and certificate are not allowed (DB). No UEFI-compatible file system was found. No operating system was loaded. Press a key to retry the boot sequence…
समस्या यह है कि हाइपर-V डिफ़ॉल्ट रूप से UEFI का उपयोग कर रहा है, जिसके लिए सुरक्षित बूट मोड सक्षम है। जनरेशन 2 वर्चुअल मशीन। सिक्योर बूट आईएसओ फाइल में एक अविश्वसनीय लिनक्स बूटलोडर से बूट को रोकता है (लिनक्स बूटलोडर न तो हस्ताक्षरित है और न ही माइक्रोसॉफ्ट द्वारा प्रमाणित है)।
लिनक्स इंस्टॉलेशन शुरू करने के लिए, मुझे वर्चुअल मशीन सेटिंग्स में सिक्योर बूट को डिसेबल करना पड़ा (सेटिंग्स -> सिक्योरिटी -> विकल्प को अनचेक करें सिक्योर बूट सक्षम करें )।
या आप सुरक्षित बूट को सक्षम छोड़ सकते हैं, लेकिन Microsoft UEFI प्रमाणपत्र प्राधिकरण का उपयोग करें माइक्रोसॉफ्ट विंडोज के बजाय टेम्पलेट। Microsoft की जानकारी के अनुसार, यह टेम्पलेट आपको Linux डिस्ट्रोज़ को सुरक्षित बूट संगतता मोड में चलाने की अनुमति देता है।
अपने VM को पुनरारंभ करें और इसे CentOS इंस्टॉलेशन ISO इमेज या किसी अन्य Linux वितरण से फिर से बूट करने का प्रयास करें (मैं इस विधि का उपयोग करके CentOS 8 और Ubuntu 19.04 इंस्टॉलेशन चलाने में कामयाब रहा)।
उसी तरह, आप PowerShell का उपयोग करके सुरक्षित बूट और VM की टेम्प्लेट सेटिंग प्रबंधित कर सकते हैं। यहां बताया गया है कि आप वर्तमान VM फर्मवेयर सेटिंग्स कैसे प्राप्त कर सकते हैं:
Get-VMFirmware -VMName "centos7"
अपने VM के लिए सुरक्षित बूट मोड को अक्षम करने के लिए:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off
बूटलोडर प्रमाणपत्र सत्यापन टेम्प्लेट को अधिकांश लिनक्स डिस्ट्रो के साथ संगत में बदलने के लिए:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"