🎁

VirtualBox7.1系にアップデートしたらエラーが出た

2024/11/03に公開

環境

Windows 11
VirtualBox 7.1.4
Vagrant 2.4.1

発生したエラー

% 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, 6.1, 7.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.

原因

①VirtualBox7.1 系と Vagrant の最新版に互換性が無い

② 中途半端に最新版がインストールされていて一部機能が足りていなかった

解決方法

①VirtualBox の構成ファイルを書き換える

手順は以下の通りです。
https://oracle-base.com/blog/2024/09/12/oracle-virtualbox-7-1/


「meta.rb」ファイルを編集して、バージョン 7.1 のエントリを追加します。

Windows パス – C:\Program Files\Vagrant\embedded\gems\gems\vagrant-2.4.1\plugins\providers\virtualbox\driver\meta.rb

meta.rb
driver_map   = {
  "4.0" => Version_4_0,
  "4.1" => Version_4_1,
  "4.2" => Version_4_2,
  "4.3" => Version_4_3,
  "5.0" => Version_5_0,
  "5.1" => Version_5_1,
  "5.2" => Version_5_2,
  "6.0" => Version_6_0,
  "6.1" => Version_6_1,
  "7.0" => Version_7_0,
  "7.1" => Version_7_1,
}

既存の「version_7_0.rb」ファイルのコピーとして「version_7_1.rb」ファイルを作成します。

Windows パス – C:\Program Files\Vagrant\embedded\gems\gems\vagrant-2.4.1\plugins\providers\virtualbox\driver\version_7_1.rb

ファイルを編集し、以下のすべてを置き換えます。

7.0 は 7.1 になります
7_0 は 7_1 になる


「plugin.rb」を編集して、7.1 エントリを追加します。

Windows パス – C:\Program Files\Vagrant\embedded\gems\gems\vagrant-2.4.1\plugins\providers\virtualbox\plugin.rb

plugin.rb
module Driver
  autoload :Meta, File.expand_path("../driver/meta", __FILE__)
  autoload :Version_4_0, File.expand_path("../driver/version_4_0", __FILE__)
  autoload :Version_4_1, File.expand_path("../driver/version_4_1", __FILE__)
  autoload :Version_4_2, File.expand_path("../driver/version_4_2", __FILE__)
  autoload :Version_4_3, File.expand_path("../driver/version_4_3", __FILE__)
  autoload :Version_5_0, File.expand_path("../driver/version_5_0", __FILE__)
  autoload :Version_5_1, File.expand_path("../driver/version_5_1", __FILE__)
  autoload :Version_5_2, File.expand_path("../driver/version_5_2", __FILE__)
  autoload :Version_6_0, File.expand_path("../driver/version_6_0", __FILE__)
  autoload :Version_6_1, File.expand_path("../driver/version_6_1", __FILE__)
  autoload :Version_7_0, File.expand_path("../driver/version_7_0", __FILE__)
  autoload :Version_7_1, File.expand_path("../driver/version_7_1", __FILE__)
end

② 手動で足りていないファイルをインストールする

C:\Program Files\Oracle\VirtualBox\drivers にあるフォルダ内すべての.inf ファイルで
右クリック>インストールを実行

Discussion