ฉันพบปัญหาที่น่าสนใจเมื่อพยายามติดตั้ง Linux CentOS บนเครื่องเสมือนที่ทำงานบนเซิร์ฟเวอร์ Hyper-V (ประเภทของเครื่องเสมือนคือ “Generation 2 ” ด้วยการสนับสนุน UEFI) ฉันได้ดาวน์โหลดไฟล์การติดตั้ง CentOS 7 (ISO) แล้วสร้าง VM ประเภท gen2 ใหม่ใน Hyper-V ติดตั้งไฟล์ ISO และพยายามบูต VM จาก ISO การติดตั้ง อย่างไรก็ตาม เมื่อทำการบูท VM ข้อความแสดงข้อผิดพลาดต่อไปนี้ปรากฏในคอนโซล Hyper-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…
ปัญหาคือว่า Hyper-V เป็นค่าเริ่มต้นใช้ UEFI โดยเปิดใช้โหมด Secure Boot สำหรับ เครื่องเสมือนรุ่นที่ 2 Secure Boot ป้องกันการบู๊ตจาก Linux bootloader ที่ไม่น่าเชื่อถือในไฟล์ ISO (Linux bootloader ไม่ได้ลงนามหรือรับรองโดย Microsoft)
เพื่อเริ่มการติดตั้ง Linux ฉันต้องปิดการใช้งาน Secure Boot ในการตั้งค่าเครื่องเสมือน (การตั้งค่า -> ความปลอดภัย -> ยกเลิกการเลือกตัวเลือก เปิดใช้งาน Secure Boot )
หรือคุณสามารถเปิดใช้งาน Secure Boot ไว้ แต่ใช้ Microsoft UEFI Certificate Authority เทมเพลตแทน Microsoft Windows ตามข้อมูลของ Microsoft เทมเพลตนี้อนุญาตให้คุณเรียกใช้ Linux distros ในโหมดความเข้ากันได้ของ Secure Boot
รีสตาร์ท VM ของคุณและลองบูตอีกครั้งจากอิมเมจ ISO การติดตั้ง CentOS หรือการกระจาย Linux อื่น (ฉันจัดการเพื่อเรียกใช้การติดตั้ง CentOS 8 และ Ubuntu 19.04 โดยใช้วิธีนี้)
ในทำนองเดียวกัน คุณสามารถจัดการการตั้งค่า Secure Boot และเทมเพลตของ VM โดยใช้ PowerShell นี่คือวิธีรับการตั้งค่าเฟิร์มแวร์ VM ปัจจุบัน:
Get-VMFirmware -VMName "centos7"
วิธีปิดใช้งานโหมด Secure Boot สำหรับ VM:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off
เพื่อเปลี่ยนเทมเพลตการตรวจสอบใบรับรอง bootloader เป็นเทมเพลตที่เข้ากันได้กับ Linux distros ส่วนใหญ่:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"