# Vagrant + VirtualBOx で 最新のCentOS7 vbox(centos/7 2004.01)でマウントできない問題

久しぶりに最新版にアップデートして `vagrant up` したらマウントできなかったので、調べたことをメモしておく。


## 環境

| name | version |
|---|---|
| Windows 10 | 2004(19041.685) |
| VirtualBox | 6.1.16 |
| Vagrant | 2.2.14 |
| vagrant-vbguest | 0.28.0 |

この現象は、MacOS上でも同様に発生する。


## 現象

`vagrant up` すると、次のようにマウントできない

```
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'centos/7' version '2004.01' is up to date...
==> default: Setting the name of the VM: centos7_default_1608725302718_27652
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
[default] No Virtualbox Guest Additions installation found.
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Resolving Dependencies
--> Running transaction check
---> Package centos-release.x86_64 0:7-8.2003.0.el7.centos will be updated
---> Package centos-release.x86_64 0:7-9.2009.1.el7.centos will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch        Version                     Repository    Size
================================================================================
Updating:
 centos-release      x86_64      7-9.2009.1.el7.centos       updates       27 k

Transaction Summary
================================================================================
Upgrade  1 Package

Total download size: 27 k
Downloading packages:
No Presto metadata available for updates

・・・中略・・・

No package kernel-devel-3.10.0-1127.el7.x86_64 available.
Error: Nothing to do
Unmounting Virtualbox Guest Additions ISO from: /mnt
umount: /mnt: not mounted
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
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

```

## 原因
vboxの内容が `CentOS 7.8`で構成されているが、`CentOS 7.9`がリリースされてしまったため、インストールされているカーネルのバージョンと、一致する `kernel-devel` パッケージがリポジトリから取得できなくなってしまった。

`vbguest` を使用しているため VirtualBox Guest Additions の更新で 該当するバージョンの `kernel-devel` を取得できずに失敗している。


## 対処方法

`vagrant up` で失敗しても、SSH接続できるところまで起動できているので、次の手順で一度 `kernel` をアップデートし、完了させる。

1. `vagrant up` で失敗
2. `vagrant ssh`
3. `sudo yum -y update kernel`
4. `exit`
5. `vagrant reload --provision`


あくまでも応急処置なので、自分でアップデート済みのvboxを作成するか、公式のvboxがアップデートするのを待つしかない。


## 参考
- [VBox guest editions fails on CentOS 7 - kernel-devel-3.10.0-862.14.4.el7.x86_64 not found](https://github.com/dotless-de/vagrant-vbguest/issues/311) - github.com
- [Vagrant box fails to install Virtual Box additions after publishing of new CentOS Release](https://bugs.centos.org/view.php?id=17884) - bugs.centos.org
- [VagrantでCentOSを利用した場合に、ある日突然、VirtualBox Guest Additionsが更新できなくなる原因と対応](https://stupiddog.jp/note/archives/738) - stupiddog.jp