【Linux】VirtualBoxの「Kernel driver not installed」エラーの原因と解決方法
VirtualBoxのカーネルドライバーエラーとは?
最終更新日:2026年1月14日
Linuxでは、順調に動いていたはずのものが、突然動かなくなることがあります。せっかく重要な作業を始めようとした矢先に、恐ろしいエラーが表示されるほどストレスなことはありません。その典型例として、以前のSlimbook Executive レポート12でも紹介しましたが、VirtualBoxが突然ゲスト仮想マシンを一切起動しなくなりました。表示されたのは次のようなエラーです。
「Kernel driver not installed (rc=-1908). The VirtualBox Linux kernel driver is either not loaded or not setup correctly.」(カーネルドライバーがインストールされていません。VirtualBoxのLinuxカーネルドライバーがロードされていないか、正しくセットアップされていません)
このポップアップは、仮想マシンを起動しようとした瞬間に突然現れました。長い間VirtualBox自体にはほとんど手を加えていなかったこともあり、非常に厄介でイライラさせられる出来事でした。
指示どおり /sbin/vboxconfig コマンドを実行したところ、実行中のカーネル用にドライバーをコンパイルするために必要なカーネルヘッダーがシステムに存在しないと告げられました。そこで思い当たったのが、最近このマシンのカーネルを6.8から6.14へアップグレードしていたことです。しかし、なぜかVirtualBoxはこの変更に合わせて自動的に再設定されていなかったのです。それでは、問題の詳細と解決手順を見ていきましょう。

問題の詳細
ポップアップに表示されるエラーメッセージは冗長で、やや誤解を招きやすいものです。よりシンプルで確実なのは、ターミナルで /sbin/vboxconfig コマンドを実行し、実際の出力を確認することです。環境によってメッセージの内容は異なりますが、筆者のケースでは次のようなログが出力されました。
sudo /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel 「header」 files matching the current kernel
The distribution packages containing the headers are probably:
linux-headers-generic linux-headers-6.14.0-35-generic
さらに、EFI Secure Bootを使用している場合は、カーネルモジュール(vboxdrv、vboxnetflt、vboxnetadp、vboxpci)をロードする前に署名が必要になる可能性がある旨の警告も表示されます。
つまり何が起きていたのかというと、「新しいカーネルはインストールされているのに、対応するカーネルヘッダーがない」という状態です。これにより、システムが新しいカーネル向けにドライバーを再コンパイルできず、結果としてVirtualBoxが動作しなくなります。もちろん疑問なのは、カーネルアップグレード時にVirtualBoxが自動的に再構成されなかった理由ですが、それは別の話題です。本質的には、デスクトップ用途におけるLinuxの使い勝手の課題と言えるでしょう。今回はKubuntu 24.04(実質Ubuntu)の環境でした。
解決策:不足しているカーネルヘッダーをインストールする
修正方法は非常にシンプルです。不足しているパッケージをインストールするだけです。必要なパッケージ名はディストリビューションやそのバージョンによって異なり、パッケージ管理コマンドも変わります。筆者のようにaptを使用するUbuntu系(Kubuntu 24.04)の場合は、次の1行で完了します。
sudo apt install linux-headers-generic linux-headers-6.14.0-35-generic
パッケージ名の数字部分は、ご自身の環境で稼働しているカーネルのバージョン(uname -r で確認可能)に合わせてください。
インストール後、再度 /sbin/vboxconfig を実行します。今度はドライバーが正常に再コンパイル・ロードされ、VirtualBoxを通常どおり使用できるようになるはずです。これでようやく、本来やりたかった重要な作業に取り掛かれます。
EFI Secure Boot環境での注意点
Secure Bootが有効なシステムでは、署名なしのカーネルモジュールはロードできません。vboxdrvなどのモジュールを手動で署名する必要がある場合があります。具体的な手順はお使いのLinuxディストリビューションの公式ドキュメントを参照してください。
まとめ
筆者がLinuxデスクトップに常に足りないと感じているのは、哲学的でプロダクト志向のアプローチです。各ツールはそれぞれ自分の役割だけを果たし、他との連携をまったく考慮していません。開発者は開発こそ行いますが、実際のユーザー体験までは考えていません。カーネルを新しくインストールしたなら、関連モジュールの再コンパイルやヘッダーの導入を「提案」してはどうでしょうか? 少なくとも、前のカーネルでヘッダーが使われていたかどうかをチェックするくらいの配慮はできるはずです。重要な作業をしたいだけの一般ユーザーが、突然システム管理者としてのスキルを求められるのは不自然でしょう。
幸い、今回のドライバーロード問題の解決はごく簡単なものでした。ただし、冒頭のレポートで述べたとおり、これは筆者が対処すべきだった2つの問題のうちの1つにすぎません。続編のガイドでは、もう1つの完全に回避可能な問題——純粋なリグレッション(機能退行)であり、本来発生するはずのないもの——を紹介する予定です。それまで、皆さんの仮想マシンが安定して動作しますように。
-
VMware ConverterでP2V/V2V変換時の変更を同期させる方法|ダウンタイムを最小限に抑える手順
VMware vCenter Converter Standaloneは、物理マシンを仮想マシンへ変換する(P2V)、あるいは仮想マシンを別の仮想マシンへ変換する(V2V)ための無料ユーティリティです。VMware Converter 5.0以降では、元のシステムとESXiホスト上の仮想マシンのコピーとの間で変更内容を同期する機能がサポートされています。この機能により、物理ディスク上に大量のデータを持つ物理サーバーでも、複数のステップに分けて、最小限のダウンタイムで仮想化することが可能になります。さらに、VMware Converterと無料のVMware vSphere Hypervisor
-
ゲストOSでメモリのオーバーコミットを検出する方法
VMware ESXiやHyper-Vなどの仮想化ホスト上で稼働する仮想マシン(VM)を管理し、パフォーマンス問題を調査していると、ゲストOSが認識している(または割り当てられた)メモリ量よりも、実際に利用可能なメモリが大幅に少ないという状況によく遭遇します。例えば、仮想マシンに8GBのメモリを割り当てているのに、タスクマネージャーでは1GBの空きがあると表示される一方で、実行中の全プロセスのメモリ消費量を合計しても3GBに満たない——残りの4GBはどこへ行ったのでしょうか?メモリオーバーコミットとはこのような現象は、通常、ハイパーバイザーの「メモリオーバーコミット」機能が原因です。メモリオー