SecureBoot (UEFI) 를 사용하는 Ubuntu 에 VirtualBox 설치하는 방법

Xubuntu 를 사용중인데, 은행거래용 WinXP 를 쓸 일이 생겨서 VirtualBox 를 설치했다. 근데 안된다.

Vboxdrv 어쩌구 하면서 안 된다. 왜 안되나 싶어서 구글신께 여쭤봤더니 답해주셨다.

 

Legacy Bios 대신 UEFI 를 사용하면, 메인보드의 저장소에 인증서가 등록된 드라이버만 로드된다고 한다.

그래서 그냥 VirtualBox 를 설치하면 커널에 모듈 올리는 작업에서 못하겠다고 에러를 떡을 내뿜게 된다.

 

작업 순서는 대충 이렇다.

1. X.509 KeyPair 를 만들고

2. 새로 만든 키를 서명하고

3. 이걸 UEFI 에 등록하고

4. 재부팅한 다음, UEFI 에서 승인한다.

이다.

 

그리고 등록해야 할 VirtualBox 의 드라이버는

vboxdrv
vboxnetadp
vboxnetflt
vboxpci

 

이렇게 4개다.

 

나는 이걸 한꺼번에 등록하는 방법을 몰라서 4번 재부팅 했다. T^T

 

터미널을 열고..

1. openssl req -new -x509 -newkey rsa:2048 -keyout vboxdrv.priv
-outform DER -out vboxdrv.der -nodes -days 36500 -subj "/CN=MySelf/"

뒤에 CN=MySelf 는 적당히 자기에 맞게 채워주면 된다. 그냥 그대로 써도 됨.

2. sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./vboxdrv.priv ./vboxdrv.der $(modinfo -n vboxdrv)

3. sudo mokutil --import vboxdrv.der

여기서 암호 입력하라고 나오는데, 영문자랑 숫자 적당히 섞어서 안 까먹을 만한 거 넣어준다. 너무 짧으면 안됨.

그리고 재부팅.

4. 재부팅 하면 자동으로 UEFI 로 들어가게 되는데, 거기서 “Enroll Key” 를 선택해서 아까 입력해준 암호를 넣고 등록을 승인한다. 이 작업은 바이오스 제조사 별로 다르므로, 대충 비슷한 의미의 항목이 있다면 그걸로 하면 된다. 재수 없으면 등록이 안되는 경우도 있는데, 이건 제조사 측에서 막아놨거나 저장공간을 충분하게 마련해 놓지 않은 거라고 한다. 이러면 별 수 없이 SecureBoot 를 끄거나 Legacy 로 부팅되도록 재설정- 혹은 재설치…- 할 수 밖에 없다. Legacy 라면 이 삽질 할 필요 없음. 혹시 “continue boot” 를 선택하면 아마 3번 작업부터 다시 해야 할 지도.. – 난 안해봐서 모르겠음-

 

저기 빨간 부분만 드라이버 이름을 바꿔서 총 4번 해야 한다.

 

외국 블로그 중 에서는 vboxdrv 만 등록하라고 하는데도 있는데, 그러면 안되거나 가상머쉰 부팅 도중에 뻗거나 하더라. 꼭 4개 다 등록해야 된다.

 

내 경험으로는 VirtualBox 를 설치하고 난 다음에 했을 때 이상하게 안 된 적이 있었다.

설치 전에 수행하는 것을 추천하며, 혹시 VirtualBox 설치 한 다음에 해당 작업을 하게 된다면 이후에

sudo /sbin/vboxconfig

실행을 시켜줘야 하는 것 같았다. 아마도…

 

테스트한 우분투 – 정확하게는 주분투 – 버젼은 16.04와 17.10 이다.

 

<참고사이트>

https://askubuntu.com/questions/914997/install-virtualbox-while-keeping-secure-boot

How to install Virtualbox on Ubuntu having UEFI secure boot enabled

VirtualBox + Secure Boot + Ubuntu = fail

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.