Linux KernelとVirtualBoxのカーネルモジュール
ここでの話は仮想PC上で動作しているOSのことではなく、ホストOS側の話です。VirtualBoxやVMwareはUbuntuのLinux Kernelにモジュール(ドライバー)を追加します。
これらのモジュールは現在動作しているLinux Kernelのバージョンに依存し、各バージョンごとに追加されます。
UbuntuのLinux Kernelのバージョンがアップデートされると、これらのモジュール群はアップデート後のLinux Kernelに追加されます。
VMWareはVMWare起動時にモジュールを追加しますが、VirtualBoxはDKMSによりモジュールを追加します。
VirtualBoxはDKMS(Dynamic Kernel Module Support)により、新しいLinux Kernelで起動すると自動的にモジュールのビルドを行いモジュールを追加します。
しかしこの仕組みがうまく動作しない環境だと、VirtualBoxの仮想マシン起動時に以下のようにエラーが発生することがあります。
原因として考えられることは、VirtualBox側が新しいLinux Kernelに対応していないか、必要なビルドパッケージがインストールされていない、あるいは環境が壊れている可能性があります。
ちなみにDKMSパッケージは標準でインストールされています。
エラーの内容
VirtualBoxのカーネルモジュールが動作していないと、以下のエラー画面が表示されます。その後以下のエラー画面が表示されます。
要約すると、「カーネルモジュールがインストールされていないので、端末を起動し sudo /etc/init.d/vboxdrv setupを実行する」だそうです。
対処方法 その1
エラー画面に表示されている方法です。端末を起動しコマンドを実行する
事前にVirtualBoxは終了しておきます。端末を起動し以下のコマンドを実行します。
sudo /etc/init.d/vboxdrv setup
上記のようDKMSでエラーが出る場合は、すでにDKMSに登録されています。
DKMSに登録されていない場合は、以下のように表示されます。
いずれにせよErrorが表示される場合は、「対処方法 その2」でVirtualBoxを再インストールしたほうが良いでしょう。
問題なく処理が行われた場合は、以下のような表示になります。
対処方法 その2
「対処方法 その1」でも正しく動作しない場合は、VirtualBoxを再インストールします。1.VirtualBoxの削除
UbuntuソフトウェアセンターからVirtualBoxを削除します。「削除」ボタンをクリックします。
VirtualBoxを削除しても作成した仮想マシンは削除されません。
2.PCの再起動
念の為再起動しておきます。3.VirtualBoxのインストール
再度VirtualBoxをインストールします。カーネルモジュールの確認
以下のいずれかのコマンドを実行すると、カーネルモジュールが読み込まれているか確認できます。sudo service vboxdrv status
sudo /etc/init.d/vboxdrv status
以下のように表示されればOKです。
DKMSの確認
以下のいずれかのコマンドを実行するとDKMSに登録されているか確認できます。dkms status
以下のように「vboxhost ・・・ installed」表示されればOKです。
以下のようにvboxhostの項目にWARNINGが表示されている場合は、VirtualBoxを再インストールしたほうが良いでしょう。