PHPでの開発には普段、VirtualBoxとVagrantを使用しています。Boxは2つ作成してあり、1つは普段の開発用、もう1つはとあるプロジェクト用です。
VirtualBoxを最新のものに更新したら、普段開発用のBox起動時に、次のようなメッセージが表示されるようになりました。
mount: unknown filesystem type 'vboxsf'
一応Boxは使用可能なのですが、共有フォルダが共有されなくなり、ゲストOSの該当フォルダが空になってしまいました。
原因はVirtualBoxのバージョンと、Virtualbox Guest Additionsのバージョンが合わなくなってしまったことでした。
解決方法
バージョンが一致するVirtualbox Guest Additionsをインストールする
当然ですね。手順は以下のようになります。
なお、環境は
- ホストOS:Windows10
- ゲストOS:CentOS 6.x
となります。
VirtualBoxのバージョンを確認
vboxmanage --version
vboxmanageは、VirtualBoxをインストールしたフォルダにあります。私の環境では 'C:\Program Files\Oracle\VirtualBox'
でした。コマンドプロンプトなどから、以下のように実行します。
cd C:\Program Files\Oracle\VirtualBox
vboxmanage --version
以下のようにバージョンが表示されます。
5.2.26r128414
対応するVirtualbox Guest Additionsを取得する
ゲストOSにログインしてwgetで取得してもいいですが、私の場合、wgetがエラーとなったので、WindowsのローカルにダウンロードしてきたものをゲストOSにアップロードしました。
以下のサイトから対応するファイルを探します。
http://download.virtualbox.org/virtualbox/
5.2.26r128414であれば、
5.2.26の中の、VBoxGuestAdditions_5.2.26.isoが該当します。
ダウンロードしたファイルを、ゲストOSの/tmp
にアップロードします。
wgetを使用するのであれば、PuttyなどでゲストOSにログインして、以下のコマンドを実行します。
wget http://download.virtualbox.org/virtualbox/5.2.26/VBoxGuestAdditions_5.2.26.iso
Virtualbox Guest Additionsをインストールする
ゲストOS(CentOS)でインストールします。PuttyなどでゲストOSにログインして、以下のコマンドを順に実行します。
cd /tmp
sudo mkdir /media/VBoxGuestAdditions
sudo mount -o loop,ro VBoxGuestAdditions_5.2.26.iso /media/VBoxGuestAdditions
sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
rm VBoxGuestAdditions_5.2.26.iso
sudo umount /media/VBoxGuestAdditions
rmdir /media/VBoxGuestAdditions
exit
Vagrantを実行する
ホスト(Windows)でvagrantをリロードします。
vagrant reload
もう一つの対策
vagrant-vbguest
というプラグインをインストールしておけば、ホストのGuestAdditionsを、ゲストに自動でインストールしてくれるそうです。
ホスト側でバージョンが変わったとき、ゲスト側にも同じバージョンをインストールするようなので、エラーであたふたすることもないと思われます。
vagrant-vbguestは、ホスト(Windows)側でインストールします。コマンドプロンプト等から以下のコマンドを実行します。
vagrant plugin install vagrant-vbguest
インストールが完了したら、以下のコマンドでインストールされるGuestAdditionsのバージョンを確認してみましょう。
vagrant vbguest --status
以下のように表示されます。
[default] GuestAdditions 5.2.26 running --- OK.
以降、vagrant upしたとき、GuestAddionsが自動でインストールされるようになります。
参考にしたサイト
いつかエンジニアになりたい – vagrant up時に「mount: unknown filesystem type ‘vboxsf’」が発生する