Hyper-V 서버에서 구동 중인 가상 머신(UEFI를 지원하는 2세대(Generation 2) 유형)에 Linux CentOS를 설치하려던 중 흥미로운 문제를 만났습니다. CentOS 7 설치 ISO 파일을 다운로드하고, Hyper-V에서 2세대 유형의 새 가상 머신을 생성한 뒤 ISO 파일을 마운트하여 설치 미디어로 부팅을 시도했습니다. 그런데 가상 머신을 부팅하는 과정에서 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…

원인: 기본 활성화된 보안 부팅(Secure Boot)
이 문제의 원인은 Hyper-V가 2세대 가상 머신에서 기본적으로 UEFI와 함께 보안 부팅(Secure Boot) 모드를 활성화하기 때문입니다. 보안 부팅은 ISO 파일에 포함된 신뢰할 수 없는 Linux 부트로더의 실행을 차단합니다. Linux 부트로더는 Microsoft에서 서명하거나 인증하지 않기 때문입니다.
해결 방법 1: 보안 부팅 비활성화
Linux 설치를 진행하려면 가상 머신 설정에서 보안 부팅을 비활성화해야 합니다. 설정(Settings) → 보안(Security) 메뉴로 이동한 후 보안 부팅 사용(Enable Secure Boot) 옵션의 체크를 해제하면 됩니다.
해결 방법 2: Microsoft UEFI 인증 기관 템플릿 사용
보안 부팅 기능을 그대로 유지하고 싶다면 템플릿을 Microsoft Windows 대신 Microsoft UEFI 인증 기관(Microsoft UEFI Certificate Authority)으로 변경하는 방법도 있습니다. Microsoft의 공식 설명에 따르면, 이 템플릿을 사용하면 보안 부팅 호환 모드에서 Linux 배포판을 실행할 수 있습니다.

설정을 마친 후 가상 머신을 다시 시작하고 CentOS 설치 ISO 이미지 또는 다른 Linux 배포판으로 다시 부팅해 보세요. 이 방법으로 CentOS 8과 Ubuntu 19.04 설치를 성공적으로 진행할 수 있었습니다.

PowerShell로 보안 부팅 설정 관리하기
GUI뿐만 아니라 PowerShell을 통해서도 가상 머신의 보안 부팅 및 템플릿 설정을 관리할 수 있습니다. 현재 가상 머신의 펌웨어 설정을 확인하려면 다음 명령을 실행합니다.
Get-VMFirmware -VMName "centos7"
가상 머신의 보안 부팅 모드를 비활성화하려면 다음 명령을 사용합니다.
Set-VMFirmware -VMName "centos7" -EnableSecureBoot Off부트로더 인증서 검증 템플릿을 대부분의 Linux 배포판과 호환되는 템플릿으로 변경하려면 다음과 같이 실행합니다.
Set-VMFirmware -VMName "centos7" -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"마무리
정리하면, Hyper-V 2세대 가상 머신에서 Linux ISO 부팅 시 발생하는 "이미지의 해시 및 인증서가 허용되지 않습니다(DB)" 오류는 기본 활성화된 보안 부팅이 원인입니다. 보안 부팅을 비활성화하거나 Microsoft UEFI 인증 기관 템플릿으로 변경하면 간단히 해결할 수 있습니다.