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가 완벽히 동작하게 됩니다.

