仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

【解決方法】VirtualBoxのカーネルドライバーエラー(rc=-1908) – Debian/Ubuntuでgcc-12が見つからない場合の対処法

Debian系のLinuxディストリビューション(UbuntuやKubuntuなど)を使用していると、システム全体のアップデート後にVirtualBoxの仮想マシンが突然起動できなくなることがあります。特に、アップストリーム(公式)リポジトリからVirtualBoxを導入している環境では、新しいバージョンのVirtualBoxへ更新した際にこの問題が発生しやすい傾向があります。

アップデート適用後、仮想マシンを起動しようとすると、次のようなエラーメッセージが表示されます。

Kernel driver not installed (rc=-1908)
「VirtualBox Linuxカーネルドライバーがロードされていないか、正しく設定されていません。root権限で'/sbin/vboxconfig'を実行して、再度セットアップしてください。」

本記事では、このエラー(rc=-1908)の原因を詳しく掘り下げ、具体的な解決方法をステップごとに解説します。

エラーの詳細内容

実際に表示される完全なエラーメッセージは以下の通りです。

Kernel driver not installed (rc=-1908).
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing '/sbin/vboxconfig' as root.
If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them.

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.

正直なところ、このエラーメッセージは少し誤解を招きます。Secure Bootに関する記述が含まれていますが、多くの場合これは無関係です。また、メッセージの末尾部分は冒頭部分と文法・表記が異なっており、混乱のもとになっています。そのため、ここでは体系的に、一歩ずつ原因を切り分けていきましょう。

vboxconfig実行時のログ確認

ターミナルで以下のコマンドを実行すると、詳細な情報を得られます。

sudo /sbin/vboxconfig

実行結果は次のようになります。

[sudo] password for igor:
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

セットアップに失敗した場合は、/var/log/vbox-setup.logを確認します。ログには大量のコンパイル出力が含まれており、読み解くのがやや難しいのですが、重要なのはログの末尾付近です。「Error」または「not found」というキーワードを探してみてください。

今回のケースでは、ログ内に以下の行が見つかりました。

/bin/sh: 1: gcc-12: not found

さらに、ログには次の警告も記録されています。

warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0

つまり、VirtualBoxのカーネルモジュールをビルドするために必要なgcc-12コンパイラが、システムにインストールされていないのが原因です。ちなみに、同じUbuntu 22.04でもgcc-12が入っているマシンと入っていないマシンがありました。パッケージが存在しない理由は環境によってさまざまですが、重要なのは原因を特定して修正することです。

解決方法:gcc-12をインストールする

解決策は驚くほどシンプルです。gcc-12パッケージをインストールするだけです。

sudo apt install gcc-12

インストールが完了したら、再度以下のコマンドを実行します。

sudo /sbin/vboxconfig

今度はコマンドが正常に完了し、VirtualBoxのカーネルモジュールが正しくビルドされます。これで仮想マシンを再び利用できるようになるはずです。

まとめ

この問題は、複数の要因が組み合わさって発生します。新しいUbuntuカーネル、新バージョンのVirtualBox、カーネルとコンパイラの不整合など、技術的な要素が絡み合っています。-1908エラーに遭遇した場合は、焦らず体系的に対処しましょう。まずターミナルで設定コマンドを手動で再実行し、詳細なエラーログを追跡して、真の原因を突き止めることが大切です。

近年、この種のエラーの最も一般的な原因は、gcc-12コンパイラパッケージの欠落であることがわかっています。gcc-12をインストールすれば、VirtualBoxドライバーは正常にコンパイルされ、仮想化ソフトウェアを問題なく利用できるようになります。

同じエラーでお困りの方は、ぜひ本記事の手順をお試しください。

  1. VMware ESXiで仮想マシンが「無効(Invalid)」状態になる原因と対処法

    VMware管理者であれば、vSphereの仮想マシン一覧に「無効(Invalid)」や「不明(Unknown)」というステータスのVMが表示され、困った経験があるのではないでしょうか。この問題は、主に以下のようなケースで発生します。仮想マシンを削除したのに、何らかの理由でvSphere/ESXiの構成情報にデータが残ってしまった場合vMotionの実行後に、VMFSストレージ上のVMファイルを手動で削除した場合その他、ストレージ障害などでインベントリ情報と実体が一致しなくなった場合こうしたVMは、vSphere Web Clientの標準機能では削除できません。「アクション」メニューの「登録

  2. VirtualBoxで3Dアクセラレーション有効化後に黒い画面が表示される問題の解決策

    仮想化は、OSの上に別のOSを実行できる非常に便利な技術です。コンピュータの中にコンピュータを作ることで、柔軟性、レガシー環境のサポート、複数プラットフォームでのソフトウェアテスト、分離性といったメリットが得られます。ただし、グラフィックス性能に関してはどうしても制限があるのも事実です。VirtualBoxには以前から、仮想マシンで3Dアクセラレーションを有効にするオプションが用意されています。グラフィックス処理の一部をより効率的に実行できるため、操作感が滑らかになります。完璧なソリューションではありませんが、何もないよりははるかにましです。ただし、問題が発生するケースもあります。たとえば、V