Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Lỗi boot Hyper-V: Hash và chứng chỉ của image không được phép

Tôi gặp một vấn đề thú vị khi cố gắng cài đặt Linux CentOS trên máy ảo chạy trên máy chủ Hyper-V (loại máy ảo là "Generation 2" với hỗ trợ UEFI). Tôi đã tải xuống file cài đặt CentOS 7 (ISO), tạo VM gen2 mới trong Hyper-V, gắn file ISO và thử boot VM từ ISO cài đặt. Tuy nhiên, khi boot VM, thông báo lỗi sau xuất hiện trong console 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… 

Lỗi boot Hyper-V: Hash và chứng chỉ của image không được phép
Vấn đề là Hyper-V mặc định sử dụng UEFI với chế độ Secure Boot được bật cho máy ảo Generation 2. Secure Boot ngăn chặn boot từ bootloader Linux không tin cậy trong file ISO (bootloader Linux không được ký hoặc chứng thực bởi Microsoft).

Để bắt đầu cài đặt Linux, tôi phải tắt Secure Boot trong cài đặt máy ảo (Settings → Security → bỏ chọn tùy chọn Enable Secure Boot).

Hoặc bạn có thể giữ Secure Boot bật, nhưng sử dụng mẫu Microsoft UEFI Certificate Authority thay vì Microsoft Windows. Theo thông tin của Microsoft, mẫu này cho phép bạn chạy các bản phân phối Linux trong chế độ tương thích Secure Boot.

Lỗi boot Hyper-V: Hash và chứng chỉ của image không được phép

Khởi động lại VM và thử boot lại từ image ISO cài đặt CentOS hoặc bản phân phối Linux khác (tôi đã chạy thành công cài đặt CentOS 8 và Ubuntu 19.04 bằng phương pháp này).

Lỗi boot Hyper-V: Hash và chứng chỉ của image không được phép

Cùng cách đó, bạn có thể quản lý cài đặt Secure Boot và mẫu của VM bằng PowerShell. Dưới đây là cách lấy cài đặt firmware hiện tại của VM:

Get-VMFirmware -VMName "centos7"

Lỗi boot Hyper-V: Hash và chứng chỉ của image không được phép

Để tắt chế độ Secure Boot cho VM của bạn:

Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off

Để thay đổi mẫu xác thực chứng chỉ bootloader sang mẫu tương thích với hầu hết các bản phân phối Linux:

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