Vagrant upしたら「VirtualBox is complaining that the kernel module is not loaded.」が出る時の対処方法
はじめに
Ubuntu18.04上でVagrantの仮想マシンを起動しようとしたところ、VirtualBox is complaining that the kernel module is not loaded.
というエラーが出ました。この記事ではこの解決策をまとめます。
前提と環境
私の環境は以下でした。
- ホストOS : Ubuntu18.04 (Kernel : 5.3.0-26-generic)
- Vagrant : ver 2.2.4
- VirtualBox : ver 6.0.4
症状
いつも通りvagrant up
をしたところ以下のようなエラーが赤文字出ました。
$ vagrant up
==> vagrant: A new version of Vagrant is available: 2.2.6 (installed version: 2.2.4)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn't usable on this system. The
reason is shown below:
VirtualBox is complaining that the kernel module is not loaded. Please
run `VBoxManage --version` or open the VirtualBox GUI to see the error
message which should contain instructions on how to fix this error.
指示通り以下を実行すると、「WARNING」と警告が表示されています。
$ VBoxManage --version
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (5.3.0-26-generic) or it failed to
load. Please recompile the kernel module and install it by
sudo /sbin/vboxconfig
You will not be able to start VMs until this problem is fixed.
6.0.4r128413
警告の後にVirtualBoxのバージョンとして6.0.4r128413
が表示されていますが、このバージョンがLinuxのカーネルのバージョン5.3.0-26-generic
に対応していないという警告です。
さらに指示通りに以下を実行してみます。
$ sudo /sbin/vboxconfig
以下が実行結果です。
$ sudo /sbin/vboxconfig
[sudo] user のパスワード:
vboxdrv.sh: Stopping VirtualBox services.
depmod: WARNING: could not open /lib/modules/5.0.0-36-generic/modules.order: No such file or directory
depmod: WARNING: could not open /lib/modules/5.0.0-36-generic/modules.builtin: No such file or directory
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.
There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root.
再度/sbin/vboxconfig
を実行しろと書かれていますが、結果は同じでした。
原因と解決方法
このエラーの原因は、インストールされているVirtualBoxのバージョンが更新されておらずLinuxのカーネルバージョンに対応できなくなっていることです。 従って解決方法は、最新のVirtualBoxをOracleの公式ダウンロードページからダウンロードしてインストールします。
ダウンロードしたをダブルクリックすると以下のようにインストールが開くのでこれでインストールします。
VirtualBoxをインストール後に改めてバージョンを確認すると、以下のようにバージョン情報のみ表示され、警告文は消えました。
$ VBoxManage --version
6.1.2r135662
上記で無事に解決する場合もあると思いますが、私の環境ではさらに作業が必要でした。
具体的には、執筆時点で最新のVirtualBoxの6.1とVagrantの最新版である2.2.6はうまく動作しません。Vagrant 2.2.6 がVirtualBox 6.1を認識せず、vagrant up
を実行すると以下の様なエラーが表示されます。
$ vagrant up
The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn’t usable on this system. The
reason is shown below:
Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of
the supported versions listed below to use Vagrant:
4.0, 4.1, 4.2, 4.3, 5.0, 5.1, 5.2, 6.0
A Vagrant update may also be available that adds support for the version
you specified. Please check www.vagrantup.com/downloads.html to download
the latest version.
この解決方法は、一時的な解決方法になりますが、次に説明します。
Vagrant 2.2.6 で VirtualBox 6.1を認識させる手順
この手順は以下にまとめられておりました。
## Vagrant 2.2.6 と Virtualbox 6.1でうまくvagrant up ができなかった
なお、上記の記事の元の内容は以下のようにOracleの中の人のブログ記事のようです。
On December 11th 2019, we've announced Oracle VM VirtualBox 6.1 Generally Available release.
私の環境では、上記手順を行った後で無事にvagrant up
が正常に動作しました。
なお、逆にVagrantが古すぎてVirutalBoxに対応していない場合もあります。この場合はVagrantも更新してください。
Vagrantを更新する方法
Vagrantを更新するには、Vagrantの公式ダウンロードページから最新のVagrantをダウンロードします。ここではUbuntu用のパッケージをダウンロードします。
ダウンロードしたをダブルクリックすると以下のようにインストールが開くのでこれでインストールします。
インストール後、端末でVagrantのバージョンを確認すると以下のように執筆時点で最新の2.2.6と表示されました。
$ vagrant --version
Vagrant 2.2.6
前述したように、執筆時点ではVagrant 2.2.6はVirtualBox 6.1を認識できないという状況であるためもし同じバージョンを使用している場合は前述の作業を行ってみてください。
もしvagrant up
してもプラグインのエラーがでる場合は次に解決手順を載せます。
Vagrantのプラグインについてエラーが出る場合
vagrant up
を実行すると今度は以下のエラーが表示されることがあります。
$ vagrant up
Vagrant failed to initialize at a very early stage:
The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:
vagrant plugin repair
If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:
vagrant plugin expunge --reinstall
Or you may want to try updating the installed plugins to their latest
versions:
vagrant plugin update
Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-hostsupdater (= 1.1.1.160)'
上記のエラー内容は、「Vagrantのプラグインの初期化に失敗しました。もし最近Vagrantをアップデートした場合は、依存パッケージのバージョンの非互換によることが原因の可能性があります。この問題を修復するには、Vagrantの全てのプラグインを削除、再インストールしてください。」と書かれています。 そして全てのプラグインを削除してインストールし直すには以下のコマンドを実行するよう書かれています。
$ vagrant plugin expunge --reinstall
ただ、その前に全てのプラグインをアップデートしてみることもできると書かれているので、今回はまず以下でアップデートしてみました。
$ vagrant plugin update
以下が実行結果です。無事にプラグインのアップデートが完了しました。
$ vagrant plugin update
Updating installed plugins...
Fetching: micromachine-3.0.0.gem (100%)
Fetching: vagrant-vbguest-0.23.0.gem (100%)
Fetching: vagrant-hostsupdater-1.1.1.160.gem (100%)
Updated 'vagrant-vbguest' to version '0.23.0'!
上記を実行しても何かしらエラーが出る場合は、以下でプラグインの再インストールを試してみてください。
$ vagrant plugin expunge --reinstall
This command permanently deletes all currently installed user plugins. It
should only be used when a repair command is unable to properly fix the
system.
Continue? [N]:
Enterで進めると以下が表示されます。少し時間がかかるので待機します。
vagrant plugin expunge --reinstall
This command permanently deletes all currently installed user plugins. It
should only be used when a repair command is unable to properly fix the
system.
Continue? [N]:
Vagrant expunge has been declined. Skipping removal of plugins.
Vagrant will now attempt to reinstall user plugins that were removed.
Installing the 'vagrant-hostsupdater' plugin. This can take a few minutes...
最終的に以下のように表示されました。
$ vagrant plugin expunge --reinstall
This command permanently deletes all currently installed user plugins. It
should only be used when a repair command is unable to properly fix the
system.
Continue? [N]:
Vagrant expunge has been declined. Skipping removal of plugins.
Vagrant will now attempt to reinstall user plugins that were removed.
Installing the 'vagrant-hostsupdater' plugin. This can take a few minutes...
Installed the plugin 'vagrant-hostsupdater (1.1.1.160)'!
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbguest (0.23.0)'!
これでvagrant up
してみて無事に起動するか確認してみてください。
まとめ
各自の状況によって原因や解決策が異なることもあるともいますが、同様の症状が出ている方の参考となれば幸いです。
関連記事
- 公開日:2019/04/26 更新日:2019/04/26
Ubuntu上のVagrantの仮想マシンがVBOX_E_INVALID_VM_STATEで起動できない場合の対処方法
Ubuntu18.04上でVagrantの仮想マシンを起動しようとしたところ、VBOX_E_INVALID_VM_STATE (0x80bb0002)というエラーが出て起動できなくなってしまいました。調べてみるとコマンド1つで簡単に解決できました。この記事でその時の症状と解決策についてメモします。
- 公開日:2018/05/24 更新日:2018/05/24
ローカルでのWordPress環境構築にはVagrantのVCCWがお手軽で早くてとても便利
これまでは、例えばMacの場合は使用してローカル環境にWordPressを構築しいじっていました。しかし、WordPressのインストールは毎回ほとんど同じ作業で面倒に感じていました。 調べたところ、vagrantのboxとしてWordPressをインストール済でそのほか諸々の環境も綺麗に構築済のboxを見つけました。それがvccwです。これを使うとvagrant upするだけでWordPressが動く仮想マシンができあがります。
- 公開日:2016/10/15 更新日:2016/10/15
Windows10にVirtualBoxをインストールする手順
VirtualBoxは仮想環境構築のためのソフトウェアです。自分のパソコン上で仮想的なパソコンを動作させることができ、色々とプログラムを試したり実験したりする環境として便利です。ここではWindows10へのVirtualBoxインストール手順をメモします。
- 公開日:2015/03/25 更新日:2015/03/25
よく使うVagrantfileの設定のまとめ
Vagrantfileで良く使う、共有フォルダの設定やネットワークの設定についてまとめておきます。