Hyper-V 서버에서 실행되는 가상 머신에 Linux CentOS를 설치하려고 할 때 흥미로운 문제를 발견했습니다(가상 머신 유형은 "2세대 "(UEFI 지원 포함). CentOS 7 설치 파일(ISO)을 다운로드하고 Hyper-V에서 새로운 gen2 유형 VM을 만들고 ISO 파일을 마운트하고 설치 ISO에서 VM 부팅을 시도했습니다. 그러나 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를 사용한다는 것입니다. 2세대 가상 머신. 보안 부팅은 ISO 파일의 신뢰할 수 없는 Linux 부트로더(Microsoft에서 서명하거나 인증하지 않은 Linux 부트로더)에서 부팅하는 것을 방지합니다.
Linux 설치를 시작하려면 가상 머신 설정에서 보안 부팅을 비활성화해야 했습니다(설정 -> 보안 -> 보안 부팅 활성화 옵션 선택을 취소했습니다. ).
또는 보안 부팅을 활성화한 상태로 두고 Microsoft UEFI 인증 기관을 사용할 수 있습니다. Microsoft Windows 대신 템플릿. Microsoft 정보에 따르면 이 템플릿을 사용하면 보안 부팅 호환 모드에서 Linux 배포판을 실행할 수 있습니다.
VM을 다시 시작하고 CentOS 설치 ISO 이미지 또는 다른 Linux 배포판에서 다시 부팅을 시도합니다(이 방법을 사용하여 CentOS 8 및 Ubuntu 19.04 설치를 실행할 수 있었습니다).
같은 방법으로 PowerShell을 사용하여 VM의 Secure Boot 및 템플릿 설정을 관리할 수 있습니다. 현재 VM 펌웨어 설정을 가져오는 방법은 다음과 같습니다.
Get-VMFirmware -VMName "centos7"
VM의 보안 부팅 모드를 비활성화하려면:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off
부트로더 인증서 유효성 검사 템플릿을 대부분의 Linux 배포판과 호환되는 템플릿으로 변경하려면:
Set-VMFirmware -VMName "centos7" -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"