मुझे एक दिलचस्प समस्या का सामना करना पड़ा जब हाइपर-V सर्वर पर चल रही वर्चुअल मशीन पर लिनक्स सेंटओएस इंस्टॉल करने का प्रयास किया (वर्चुअल मशीन का प्रकार "जेनरेशन 2" UEFI सपोर्ट के साथ)। मैंने सेंटओएस 7 इंस्टॉलेशन फाइल (ISO) डाउनलोड की, हाइपर-V में जेन2 टाइप की नई VM बनाई, ISO फाइल माउंट की और इंस्टॉलेशन ISO से VM को बूट करने का प्रयास किया। हालांकि, 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 डिफ़ॉल्ट रूप से अपनी जेनरेशन 2 वर्चुअल मशीनों के लिए UEFI के साथ सिक्योर बूट मोड सक्षम करके उपयोग करता है। सिक्योर बूट ISO फाइल में अनट्रस्टेड लिनक्स बूटलोडर से बूट होने से रोकता है (लिनक्स बूटलोडर न तो Microsoft द्वारा हस्ताक्षरित है और न ही प्रमाणित)।
लिनक्स इंस्टॉलेशन शुरू करने के लिए, मुझे वर्चुअल मशीन सेटिंग्स में सिक्योर बूट अक्षम करना पड़ा (Settings → Security → Enable Secure Boot विकल्प अनचेक करें)।
या आप सिक्योर बूट सक्षम छोड़ सकते हैं, लेकिन Microsoft Windows के बजाय Microsoft UEFI Certificate Authority टेम्पलेट का उपयोग कर सकते हैं। Microsoft की जानकारी के अनुसार, यह टेम्पलेट आपको सिक्योर बूट संगतता मोड में लिनक्स डिस्ट्रोज़ चलाने की अनुमति देता है।

अपनी VM को रीस्टार्ट करें और फिर से सेंटओएस इंस्टॉलेशन ISO इमेज या किसी अन्य लिनक्स वितरण से बूट करने का प्रयास करें (मैं इस विधि का उपयोग करके सेंटओएस 8 और उबंटू 19.04 इंस्टॉलेशन चलाने में कामयाब रहा)।
इसी तरह, आप पावरशेल का उपयोग करके VM के सिक्योर बूट और टेम्पलेट सेटिंग्स प्रबंधित कर सकते हैं। वर्तमान VM फर्मवेयर सेटिंग्स प्राप्त करने का तरीका यहां दिया गया है:
Get-VMFirmware -VMName "centos7"

अपनी VM के लिए सिक्योर बूट मोड अक्षम करने के लिए:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off
अधिकांश लिनक्स डिस्ट्रोज़ के साथ संगत बूटलोडर सर्टिफिकेट वैलिडेशन टेम्पलेट में बदलने के लिए:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"