Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

ข้อผิดพลาดในการบูต Hyper-V:ไม่อนุญาตให้ใช้แฮชและใบรับรองของรูปภาพ

ฉันพบปัญหาที่น่าสนใจเมื่อพยายามติดตั้ง 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:ไม่อนุญาตให้ใช้แฮชและใบรับรองของรูปภาพ
ปัญหาคือว่า 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

ข้อผิดพลาดในการบูต Hyper-V:ไม่อนุญาตให้ใช้แฮชและใบรับรองของรูปภาพ

รีสตาร์ท VM ของคุณและลองบูตอีกครั้งจากอิมเมจ ISO การติดตั้ง CentOS หรือการกระจาย Linux อื่น (ฉันจัดการเพื่อเรียกใช้การติดตั้ง CentOS 8 และ Ubuntu 19.04 โดยใช้วิธีนี้)

ข้อผิดพลาดในการบูต Hyper-V:ไม่อนุญาตให้ใช้แฮชและใบรับรองของรูปภาพ

ในทำนองเดียวกัน คุณสามารถจัดการการตั้งค่า Secure Boot และเทมเพลตของ VM โดยใช้ PowerShell นี่คือวิธีรับการตั้งค่าเฟิร์มแวร์ VM ปัจจุบัน:

Get-VMFirmware -VMName "centos7"

ข้อผิดพลาดในการบูต Hyper-V:ไม่อนุญาตให้ใช้แฮชและใบรับรองของรูปภาพ

วิธีปิดใช้งานโหมด Secure Boot สำหรับ VM:

Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off

เพื่อเปลี่ยนเทมเพลตการตรวจสอบใบรับรอง bootloader เป็นเทมเพลตที่เข้ากันได้กับ Linux distros ส่วนใหญ่:

Set-VMFirmware -VMName "centos7" -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"