AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

Vagrant で /usr/sbin/rcvboxadd setup

まーたいつもの VirtualBoxVagrant のアップデートで vagrant ディレクトリがマウントできないやつですよ。

これ毎回何かしらコケるし、天下の Vagrant 様の力でなんとかならんのか。

以前までのエラーと違う

Vagrantfile にアップデートするなって書いてやればいいんでしょはいはい、と過去の記事を読みながら対応するも改善しない。 違う原因……ってコト?! とつぶやきながら結局エラーを追うことに。

クソ長エラー

Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:
VBoxService inside the vm claims: 6.1.22
Going on, assuming VBoxService is correct...
[default] GuestAdditions seems to be installed (6.1.22) correctly, but not running.
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:
VBoxService inside the vm claims: 6.1.22
Going on, assuming VBoxService is correct...
Redirecting to /bin/systemctl start vboxadd.service
Job for vboxadd.service failed because the control process exited with error code.
See "systemctl status vboxadd.service" and "journalctl -xe" for details.
Redirecting to /bin/systemctl start vboxadd-service.service
Job for vboxadd-service.service failed because the control process exited with error code.
See "systemctl status vboxadd-service.service" and "journalctl -xe" for details.
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:
VBoxService inside the vm claims: 6.1.22
Going on, assuming VBoxService is correct...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
4.18.0-305.7.1.el8_4.x86_64.

VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what
went wrong
ValueError: File context for /opt/VBoxGuestAdditions-6.1.22/other/mount.vboxsf already defined
modprobe vboxguest failed
The log file /var/log/vboxadd-setup.log may contain further information.
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/usr/sbin/rcvboxadd setup

Stdout from the command:

VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
4.18.0-305.7.1.el8_4.x86_64.

VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what
went wrong


Stderr from the command:

ValueError: File context for /opt/VBoxGuestAdditions-6.1.22/other/mount.vboxsf already defined
modprobe vboxguest failed
The log file /var/log/vboxadd-setup.log may contain further information.

vagrant-vbguest の更新

とりあえず更新する。 新しいバージョンがあればこれで降ってくるはず。

user$ vagrant plugin install vagrant-vbguest

ゲスト側で作業する1

どうもパッケージが足りないのと、ゲスト側で SSH 越しに setup 実行しているようなので、ゲスト側に移動して作業してしまう。

[vagrant@localhost ~]$ sudo dnf install kernel-* gcc make perl
[vagrant@localhost ~]$ sudo /usr/sbin/rcvboxadd setup

オアアッ、エラーが変わらない!

# snip #

VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what
went wrong
ValueError: File context for /opt/VBoxGuestAdditions-6.1.22/other/mount.vboxsf already defined
modprobe vboxguest failed
The log file /var/log/vboxadd-setup.log may contain further information.
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/usr/sbin/rcvboxadd setup

Stdout from the command:

VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
4.18.0-305.7.1.el8_4.x86_64.

VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what
went wrong


Stderr from the command:

ValueError: File context for /opt/VBoxGuestAdditions-6.1.22/other/mount.vboxsf already defined
modprobe vboxguest failed
The log file /var/log/vboxadd-setup.log may contain further information.

ゲスト側で作業する2

最後のログを見ると新しい情報が。最初から見ろって感じでしたね。

Makefile:984: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel".  Stop.

パッケージがまだ足りねえのぉ? という訳で入れてみる。 RHEL 系なので必要なのは elfutils-libelf-devel のようです。

[vagrant@localhost ~]$ sudo dnf install elfutils-libelf-devel
[vagrant@localhost ~]$ sudo /usr/sbin/rcvboxadd setup

これで、何事もなく処理が終わったように見えるので一旦 SSH セッションを抜けて vagrant halt -> vagrant up するも、エラーが変わらない。 ということで、再度ゲストへ SSH ログインし残されたコマンド quicksetup を試してみる。

[vagrant@localhost ~]$  /sbin/rcvboxadd quicksetup all

特にエラーなく終わったように見える。 /sbin/rcvboxadd quicksetup <version> の version が何を指定すればいいのかすぐに分からなかったのでとりあえず all でお茶を濁しています。 で、これでまた SSH セッションを抜けて vagrant halt -> vagrant up する。

これでおわりです

これで起動時に、ホスト側の Vagrantfile があるディレクトリをゲスト側の /vagrant/ へマウントできるようになりました。 サッと書いてるのでわりと簡単に解決した感ありますが、半日使ってしまった。