Secure BootなUbuntu 18.04にVirtualBox 6.0をインストール。もうそんなに難しくない。

セキュアブートが有効なマシン上で稼働しているUbuntuにVirtualBoxをインストールしようとすると、ちょっと前までは非常に面倒なことをしなくてはなりませんでした。

セキュアブート環境下ではカーネルモジュールに信頼できる署名が必要で、VirtualBoxの動作に必要な "vboxなんちゃら" モジュールにもそれが求められるのだけれど、これまでは「署名を作成して、それをシステムに読み込ませて…」というのを手作業で行う必要がありました。

VirtualBox + Secure Boot + Ubuntu = fail – Øyvind Stegard

嬉しいことにVirtualBox 6.0.10以降であれば、その手間がかなり軽減されています。

うちの環境:
  • Lenovo M715q tiny : AMD Ryzen 5 PRO 2400GE
  • Secure Boot 有効
  • Ubuntu 18.04.3 カーネル:5.0.0-29-generic

まずは、最新版のVirtualBoxをインストールできるように、リポジトリを追加。

$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
$ sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian bionic contrib"
bionicにはディストリビューション名が入ります。 18.04 なら bionic。

そしてインストール。

$ sudo apt update
$ sudo apt install virtualbox-6.0

インストールの途中で、こんな設定画面が。

vbox_on_secure_boot_ubuntu01.png

あなたのシステムでは UEFI Secure Boot が有効なので、サードパーティ製のドライバを利用するために、いくつかの設定が必要です。

新しいMOK(Machine-Owner Key)を作成して、システムのファームウェアに登録せねばなりません。

この操作をするために、今、パスワードを決めてください。システムのリブート時に操作をするときに必要になります。

…みたいなことが書いてあるので仰せのとおりに。

まずは <了解> する。次にパスワードを設定。このパスワードは使い捨てのものなので、例えば "12345678" みたいなもので大丈夫。

パスワードを入力し終えると VirtualBox のインストールは続くのですが、「vboxdrvモジュールがナンタラカンタラで駄目でした。あとで 'sudo /sbin/vboxconfig' を走らせ直してね」みたいなメッセージが表示されてインストール作業が終了します。

ここで Ubuntu を再起動。

PCが再起動すると、見慣れない一面真っ青の画面が表示されるので超ビビるのですが、ここからが MOK の登録作業。画面の指示通りに進んでいって、先ほど設定したパスワードを入力し、キーを Enroll(登録)したら reboot。

普段どおりのシステム起動シーケンスから、いつもどおりに Ubuntu が立ち上がる筈。

で、端末を立ち上げて、さっきインストール作業のときに言われていたので、

$ sudo /sbin/vboxconfig

を走らせてみます。ターミナル出力は…

vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.

…と、エラーも警告もなく終了。

VirtualBoxを立ち上げてみると…

vbox_on_secure_boot_ubuntu02.png

ようこそVirtualBoxへ!

あとはいつものとおり。よろしくどうぞ。

カテゴリ: