ツール

Vagrantの共有フォルダが原因で起動エラーになった時の対処法

更新日:

久しぶりにVagrantで仮想マシンを作ったら、vagrant upでエラーとなった。 原因は共有フォルダの部分だ。 前にもハマったポイントなので対処法を記しておく。

環境

各プログラムのバージョンは以下の通りです。

$ sw_vers 
ProductName:	macOS
ProductVersion:	11.1
BuildVersion:	20C69
$ VBoxManage -v
6.1.16r140961
$ vagrant -v
Vagrant 2.2.14
$ vagrant plugin list
vagrant-vbguest (0.29.0, global)

共有フォルダが使えるように「vagrant-vbguest 」もインストール済み。 しかしvagrand upでエラーになる。

Vagrantfileの共有フォルダの設定部分はいったって普通です。

Vagrant.configure("2") do |config|
  config.vm.box = "centos/8"
  config.vm.synced_folder "./data", "/data"
...

問題事象

vagrant upしたときにエラーがおきる。ポイントは以下の出力だと思う。

[default] No Virtualbox Guest Additions installation found.

そのほかにもエラーが出ていますが、2次的なエラーだと思われる。

$ vagrant up
...
[default] No Virtualbox Guest Additions installation found.
...
Last metadata expiration check: 0:00:02 ago on Sat 13 Feb 2021 05:19:31 AM UTC.
No match for argument: kernel-devel-4.18.0-240.1.1.el8_3.x86_64
Error: Unable to find a match: kernel-devel-4.18.0-240.1.1.el8_3.x86_64
Unmounting Virtualbox Guest Additions ISO from: /mnt
umount: /mnt: not mounted.
...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

umount /mnt

Stdout from the command:



Stderr from the command:

umount: /mnt: not mounted.

以下のコマンドで確認しても、同じものが出力される。

$ vagrant vbguest --status
[default] No Virtualbox Guest Additions installation found.

つまり、ゲストOSに「Virtualbox Guest Additions」がインストールされている必要があるが、 それが見つからないということだろう。 通常、Vagrantのプラグインである「vagrant-vbguest」がインストールされていれば、 ここら辺を自動的に設定してくれるはずなのですが、うまく機能していないようです。

対処法

「vagrant-vbguest」で「Virtualbox Guest Additions」がインストールされないので手動でインストールします。 ただ、なかなかうまくいかなくてはまりました。 最終的には以下の手順でうまく行きました。

まずは「vagrant ssh」でゲストOSにログインして Virtualbox Guest Additions のインストールに必要なパッケージをインストールする。

$ vagrant ssh
$ sudo su -
# yum -y install kernel-headers kernel-devel gcc make perl

kernel、kernel-headers、kernel-develのバージョンがあっていないと Virtualbox Guest Additionsのインストールに失敗するので確認する。 確認するとkernelのバージョンが低いので、kernelその他をアップデートする。

# rpm -qa | grep kernel
kernel-core-4.18.0-240.1.1.el8_3.x86_64
kernel-4.18.0-240.1.1.el8_3.x86_64
kernel-modules-4.18.0-240.1.1.el8_3.x86_64
kernel-tools-4.18.0-240.1.1.el8_3.x86_64
kernel-tools-libs-4.18.0-240.1.1.el8_3.x86_64
kernel-headers-4.18.0-240.10.1.el8_3.x86_64
kernel-devel-4.18.0-240.10.1.el8_3.x86_64
# yum -y update

バージョンアップの確認、現在起動中のカーネル、起動時のデフォルトのカーネルを確認してリブートする。

# rpm -qa | grep kernel
kernel-core-4.18.0-240.1.1.el8_3.x86_64
kernel-core-4.18.0-240.10.1.el8_3.x86_64
kernel-4.18.0-240.1.1.el8_3.x86_64
kernel-modules-4.18.0-240.1.1.el8_3.x86_64
kernel-headers-4.18.0-240.10.1.el8_3.x86_64
kernel-devel-4.18.0-240.10.1.el8_3.x86_64
kernel-modules-4.18.0-240.10.1.el8_3.x86_64
kernel-tools-4.18.0-240.10.1.el8_3.x86_64
kernel-4.18.0-240.10.1.el8_3.x86_64
kernel-tools-libs-4.18.0-240.10.1.el8_3.x86_64
# uname -r
4.18.0-240.1.1.el8_3.x86_64
# grub2-editenv list
saved_entry=8b36e887ef0f4f8aba9fe17 ...
kernelopts=root=UUID=a62c5b49-755e- ...
boot_success=1
# reboot

再度ログインしてカーネルのバージョンを確認する。

$ vagrant ssh
$ uname -r
4.18.0-240.10.1.el8_3.x86_64

まだパッケージは足りていない。elfutils-libelf-develパッケージが必要なのだが、 デフォルトのリポジトリにはない。 EPELリポジトリにあるのでEPELリポジトリを設定してインストールする。 なお、EPELのリポジトリは有効化されているので、パッケージがインストールできたら 無効化しておいた方が良いでしょう。

$ sudo su -
# yum install -y epel-release
# yum install -y elfutils-libelf-devel

これでやっと Virtualbox Guest Additions のインストールの準備ができた。 VBoxGuestAdditionsのisoファイルは、VirtualBoxと同じバージョンのものを使うのが良いと思うので、 ダウンロードするファイルは適宜修正してください。

# curl -O https://download.virtualbox.org/virtualbox/6.1.16/VBoxGuestAdditions_6.1.16.iso
# mount -rt iso9660 VBoxGuestAdditions_6.1.16.iso /media/
# /media/VBoxLinuxAdditions.run
# umount /media
# rm VBoxGuestAdditions_6.1.16.iso

ホストOSに戻って仮想マシンを再起動してみます。 以下のメッセージがちょっと気になりますが、共有フォルダは問題ないようです。

$ vagrant reload
...
[default] GuestAdditions seems to be installed (6.1.16) correctly, but not running.
...

参考サイト

以下のサイトを参考にさせていただきました。大変ありがとうございます。

-ツール
-

Copyright© アナグマのモノローグ , 2021 All Rights Reserved Powered by STINGER.