Ubuntu 26.04 LTSへのVirtualBox導入とUEFIセキュアブート対応
発生事象
Ubuntu 26.04 LTSの環境にVirtualBox v7.2を導入し、再起動後以下のメッセージが表示され、VirtualBoxも起動しない状況となった。
An error occurred, please run Package Manager from the right-click menu or apt-get in a terminal to see what is wrong.
The error message was: 'Error: BrokenCount > 0'. This usually means that your installed packages have unmet dependencies
これは、Ubuntu(Linux)のパッケージ管理(apt)で依存関係のエラー(Broken packages)が発生していることを示しています。
背景
Ubuntu環境において、UEFIセキュアブートが有効な状態でVirtualBoxを導入する際、パッケージ依存関係のエラー(BrokenCount > 0)やカーネルモジュール(vboxdrv)のロード失敗が発生することがあります。
これはサードパーティ製モジュールをカーネルにロードするためのMOK(Machine-Owner Key)の署名・承認手順が完了していないために生じるものです。本記事では、VirtualBoxの導入からMOK登録、正常性の確認までの流れをまとめます。
トラブルの仕組み(依存関係エラーとMOK)
セキュアブート環境下でのモジュールロード失敗およびaptの依存関係エラーは、以下の流れで発生します。
VirtualBoxのインストール / 更新
└─ DKMSによる vboxdrv モジュールのビルド
└─ セキュアブート環境のため未署名モジュールの読み込み拒否
└─ MOKキー(一時パスワード)生成画面の保留
└─ aptパッケージ管理で処理未完了(BrokenCount > 0)が発生
- DKMS(Dynamic Kernel Module Support)は、Linuxでカーネルモジュール(ドライバーなど)のビルドと組み込みを自動化するためのフレームワーク
対応手順
1. パッケージ依存関係の修復とMOKパスワードの設定
端末(ターミナル)を開き、依存関係の修復コマンドを実行します。
sudo apt update
sudo apt --fix-broken install
実行途中に「Configuring Secure Boot」という青い画面が表示されます。
Enterキー を押して<Ok>を選択します。- 再起動時に使用する 一時パスワード(8文字以上) を設定します。
- 確認のため、同じパスワードを再入力します。
2. システムの再起動
設定完了後、システムを再起動します。
sudo reboot
3. MOK Manager(再起動時画面)での登録処理
再起動直後、青(またはグレー)の「Perform MOK management」画面が表示されます。
- Enroll MOK を選択して
Enter - Continue を選択して
Enter - Yes を選択して
Enter - 手順1で設定した 一時パスワード を入力
- Reboot を選択してシステムを通常起動させる
設定の検証・確認
システム起動後、モジュールおよび署名が正常に適用されているか確認します。
1. カーネルモジュール(vboxdrv)の稼働確認
sudo systemctl status vboxdrv
- 確認結果
| 項目 | ステータス | 判定 |
|---|---|---|
| Active | active (exited) |
正常(ワンショットサービスのため) |
| Log | vboxdrv.sh: Starting VirtualBox services. |
正常 |
2. MOK登録情報の確認
mokutil を使用して、ホスト固有の署名鍵がMOKリストに登録されているか確認します。
mokutil --list-enrolled
- 確認結果(抜粋)
[key 4]
Owner: 605dab50-e046-4300-abb6-3dd810dd8b23
SHA1 Fingerprint: 4a:e1:f9:f5:df:36:38:e1:24:13:93:48:90:89:ed:2e:9d:c4:e6:14
Certificate:
Data:
Subject: CN=kazukif-dt5-g-b560 Secure Boot Module Signature key
3. モジュール署名の検証
vboxdrv モジュールが上記で登録した鍵で署名されているか確認します。
modinfo vboxdrv | grep -i signer
- 確認結果
signer: kazukif-dt5-g-b560 Secure Boot Module Signature key
まとめ
- セキュアブート環境下では、VirtualBox等のサードパーティモジュール読み込みにMOK登録が必要となります。
apt --fix-broken installと再起動時のMOK承認を行うことで、依存関係エラーの解消とモジュールの正常ロードが完了します。modinfoでsigner:の項目に自身のホスト名が入った鍵が確認できれば、安全にVirtualBoxを利用可能な状態となります。