Fedora Secure Boot 환경에서 기존 NVIDIA (akmods) 키를 이용해 VirtualBox 설정하기

개요

이 문서는 Secure Boot가 활성화된 Fedora 환경에서, 이미 NVIDIA 드라이버(akmods 기반) 가 설치되어 있는 시스템에 Oracle VirtualBox를 추가할 때 새로운 키를 만들지 않고 기존 서명 키를 재사용하는 방법을 설명합니다.

기존 akmods 키를 활용하면 Secure Boot에 불필요한 키를 추가하지 않고, 시스템 신뢰 체인을 깔끔하게 유지할 수 있습니다.


왜 akmods 키를 재사용해야 할까?

Fedora는 Secure Boot가 활성화되어 있을 때, 서명된 커널 모듈만 로드할 수 있습니다. NVIDIA 드라이버를 akmods로 설치하면 자동으로 MOK 키가 생성 및 등록되어 있으며, 다음 경로에 저장됩니다:

  • 개인 키: /etc/pki/akmods/private/private_key.priv
  • 공개 키(인증서): /etc/pki/akmods/certs/public_key.der

이 키는 이미 Secure Boot의 신뢰 체인에 포함되어 있습니다. 따라서 VirtualBox 모듈을 이 키로 서명하면 새 키를 만들거나 등록할 필요가 없습니다.


준비 사항

  • Secure Boot가 활성화되어 있을 것
  • NVIDIA 드라이버(akmods 버전) 가 정상 동작 중일 것
  • sudo mokutil --list-enrolled 에서 akmods 키가 등록되어 있을 것
  • VirtualBox(Oracle 버전) 및 kernel-devel-$(uname -r) 패키지가 설치되어 있을 것

단계별 설정 방법

[1] shim-signed 디렉터리 생성

DKMS와 VirtualBox는 기본적으로 /var/lib/shim-signed/mok/ 경로에서 서명 키를 찾습니다. 해당 경로가 없으면 만들어줍니다.

sudo mkdir -p /var/lib/shim-signed/mok

[2] 기존 akmods 키 연결

기존 akmods 키를 VirtualBox가 자동으로 찾을 수 있도록 심볼릭 링크(symlink) 를 생성합니다.

sudo ln -sf /etc/pki/akmods/private/private_key.priv /var/lib/shim-signed/mok/MOK.priv
sudo ln -sf /etc/pki/akmods/certs/public_key.der /var/lib/shim-signed/mok/MOK.der

이제 DKMS와 VirtualBox는 새 키를 만들지 않고, 기존 akmods 키를 자동으로 사용하게 됩니다.

[3] VirtualBox 모듈 재빌드 및 서명

이제 VirtualBox 모듈을 빌드하고 서명합니다.

sudo /sbin/vboxconfig

정상적으로 동작하면 다음과 같은 메시지가 출력됩니다.

vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: Signing VirtualBox kernel modules.

[4] 모듈 서명 상태 확인

빌드가 완료되면 서명이 제대로 되었는지 확인합니다.

modinfo vboxdrv | egrep 'filename|signer|sig_key|vermagic'

signer: 항목에 fedora_1761206966_... 와 같은 akmods 키 이름이 표시되면 정상입니다.


문제 해결

[1] Key was rejected by service 오류가 발생할 때

해당 키가 실제로 MOK에 등록되어 있는지 확인합니다.

sudo mokutil --list-enrolled | grep -A3 fedora_

등록되어 있지 않다면 다음 명령으로 등록합니다.

sudo mokutil --import /etc/pki/akmods/certs/public_key.der
sudo reboot

부팅 시 “Enroll MOK” 메뉴에서 등록 절차를 완료하면 됩니다.

[2] 모듈이 여전히 미서명 상태일 때

심볼릭 링크가 잘 연결되어 있는지 확인 후, 다시 vboxconfig를 실행합니다.

ls -l /var/lib/shim-signed/mok/

[3] 커널 헤더 누락 시

현재 실행 중인 커널 버전과 일치하는 kernel-devel 패키지가 설치되어 있어야 합니다.

sudo dnf install -y kernel-devel-$(uname -r)

요약

기존 akmods 키를 /var/lib/shim-signed/mok/ 에 연결하면, Oracle VirtualBox는 해당 키를 자동으로 사용해 커널 모듈을 서명합니다. 이렇게 하면 추가적인 MOK 생성이나 재부팅 없이 Secure Boot 환경에서도 VirtualBox가 완벽히 동작하게 됩니다.