Tôi đã gặp một vấn đề thú vị khi cố gắng cài đặt Linux CentOS trên một máy ảo chạy trên máy chủ Hyper-V (loại máy ảo là “ Thế hệ 2 ”Với sự hỗ trợ của UEFI). Tôi đã tải xuống tệp cài đặt CentOS 7 (ISO), tạo máy ảo kiểu gen2 mới trong Hyper-V, gắn tệp ISO và cố gắng khởi động máy ảo từ ISO cài đặt. Tuy nhiên, khi khởi động máy ảo, thông báo lỗi sau xuất hiện trong bảng điều khiển 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…
Vấn đề là Hyper-V theo mặc định đang sử dụng UEFI với chế độ Khởi động an toàn được bật cho Máy ảo thế hệ 2. Khởi động an toàn ngăn khởi động từ bộ nạp khởi động Linux không đáng tin cậy trong tệp ISO (bộ nạp khởi động Linux không được Microsoft ký hay chứng nhận).
Để bắt đầu cài đặt Linux, tôi phải tắt Khởi động an toàn trong cài đặt máy ảo (Cài đặt -> Bảo mật -> bỏ chọn tùy chọn Bật Khởi động an toàn ).
Hoặc bạn có thể bật Khởi động an toàn nhưng sử dụng Tổ chức phát hành chứng chỉ Microsoft UEFI mẫu 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 ở chế độ tương thích Khởi động An toàn.
Khởi động lại máy ảo của bạn và thử khởi động lại nó từ ảnh ISO cài đặt CentOS hoặc bản phân phối Linux khác (Tôi đã quản lý để chạy cài đặt CentOS 8 và Ubuntu 19.04 bằng phương pháp này).
Theo cách tương tự, bạn có thể quản lý Khởi động an toàn và cài đặt mẫu của VM bằng PowerShell. Đây là cách bạn có thể tải các cài đặt chương trình cơ sở VM hiện tại:
Get-VMFirmware -VMName "centos7"
Để tắt chế độ Khởi động An toàn cho máy ảo của bạn:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off
Để thay đổi mẫu xác thực chứng chỉ bộ nạp khởi động thành 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"