ワイヤード・パンチ

Vagrantを使うなら、VirtualBoxを5.0.12にしてはいけない。

image

仕事上、wordpressを使用したサイトを作ることが多いです。wordpressといえばphpの動く環境が必要になるのですが、いちいちサーバにデータをアップロードして動作テストしていたら、非常に面倒です。そこで、仮想OSを起動するために必要なVirtualBoxと、環境を一発で作成できるVagrantを利用して、ローカル上でwordpressテスト用環境を構築しています。しかし、これらのアプリのバージョンを上げると、起動しなくなってしまいました。

広告

問題が起こったバージョン。

アップデートする前だと、VirtualBoxのバージョンは5.0.10、Vagrantのバージョンは1.7.4を使用していました。普段使っているだけではなかなか最新版の配布に気がつかないもので、自動通知すらありません。でもたまたまこれらの公式サイトを覗いてみると、どちらとも最新版が配布されておりました。VirtualBoxの最新版は5.0.12、Vagrantの最新版は1.8.1です。

常日頃から古いバージョンから新しいバージョンへどんどん乗り換える必要性を訴えているぼく。IEはもちろん捨てましたし、Windowsはすぐに10にしました。それはさておき、新しいバージョンになってどう変わったかは知りませんが、古いまま使うのもいやだったので、さっそくバージョンアップを行うことにしました。アップデート中は特にエラーはありませんでした。

そして仮想環境を立ち上げるために、cmdをまず起動。仮想環境が置かれていフォルダへ移動し、「vagrant up」で仮想環境をいつもどおり起動。…したのですが、何かおかしい。途中からエラーメッセージが出てしまい。起動に失敗してしまいました。また、何度やっても結果は同じでした。明らかにアップデートしたことで発生しています。

Bringing machine ’default’ up with ’virtualbox’ provider...
==> default: Clearning any previously set forwarded ports...
==> default: Clearning 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 minites...
The guest machine entered an invalid state while waiting for it
to boot. Valid states are ’stating, running’. The machine is in the
’poweroff’ state. Please verify everything is configured
properly and try again.
If the provider you’re using has a GUI that comes with it,
it is often helpful to open that and watch the machine, since the
GUI often has more helpful error messages than Vagrant can retrieve.
For example, if you’re using VirtualBox, run `vagrant up` while the
VirtualBox GUI is open.
The primary issue for this error is that the provider you’re using
is not properly configured. Ths is very rarely a Vagrant issue.

プログラマーとしてあるまじき発言をしますが、英文だらけなのでじっくり読みたくありません。そもそも環境構築自体も、解説サイトにとりあえず従って作った程度なので、なんで動いているのかも詳しくわかっていない状態です。でもいちおう「poweroff」と書かれているので、電源なし状態であることはわかります。VirtualBoxのGUIアプリを起動して仮想環境の様子を確認してみると、そのとおり電源なし状態となっていました。起動できていません。

ネットワークの仕様が変わった?

image

普通ならcmd上でvagrant起動操作を行わないといけないのですが、VirtualBox上から仮想環境をダブルクリックして起動操作を行ってみました。すると、すぐに上の写真のエラーメッセージが表示されて、異常終了してしまいました。

image

そのエラーメッセージの中に「VirtualBox NDIS 6.0 Miniport Driver」という名前があったので、コントローラパネルのネットワーク接続の画面を開いてみると、VirtualBoxによって作られたネットワーク設定の名前に、先ほどの名前と同じものが使われていました。これらがおかしくなってしまったのでしょうか。(ところでなんでこんなにネットワーク設定が増えているのだろうか。)

image

しかし、VirtualBoxのバージョンが5.0.10だった頃は、「VirtualBox Host-Only Ethernet Adapter」という名前でした。5.0.12から何か別ものに変わってしまい、Vagrantと合わなくなったとか?

同様の問題が報告済み?

Vagrantのgithubを見てみると、同様と思われる問題が報告されています。この報告者の環境も同バージョンです。なお、OSも共通しており、ぼくもwindows10です。これも影響しているのでしょうか。

前半部分のメッセージはだいぶ異なるものの、後半部分はほとんど一致しています。この人もバージョンを上げたらいきなりVagrantが起動できなくなったということでしょうか。そして解決方法として提示されているのが以下のメッセージ。

Rolled back Virtual Box to 5.0.10, restarted, all is well again.

VirtualBoxを前のバージョンに巻き戻せってことでしょう。根本的解決ではありませんが。とりあえず、さらなら修正バージョンが出るまでの間は、古いバージョンに戻して運用するしかなさそうですね。いちいちアンインストールとインストールを繰り返すのが、これまためんどくさい。ところでVagrantの方は、1.8.1に上げたままで良いんでしょうか。

バージョンアップは慎重に?

ここ最近、何でもかんでもバージョンアップしたことで別の問題が発生することが、後を絶たない気がします。Windowsだって10になったらいろいろと使い勝手が変わりましたし、node.jsもバージョンを4から5にしたらnode_modulesを入れなおさないと動かなくなったものも出てきました。

かといって古いまま使うのも気持ち悪いし、古いものは古いもので永遠に直らないバグと戦わされます。現在使用しているバージョンに特に問題がないなら、無理にアップデートしなくてもいいのではと考えさせられます。あぁ、でもやっぱ新しいバージョンにしとかないと、すっきりしない。時代に取り残された気になる。

追記。(2016/1/6)

ぼくの環境の場合は、VirtualBoxのバージョンをただ5.0.10に戻すだけでは解決せず、同様のエラーが出たままです。4.3.34まで戻すことで、ようやくエラーが出なくなり、Vagrantを起動することができました。なお、Vagrantのバージョンは最新である1.8.1のままです。

バグ報告の掲示板などを見ていると、確証はありませんがどれもこれもOSがWindows10のときに発生しているようです。一方、LinuxでVirtualBox5.0.12を入れ、Vagrantを正常に動作させている写真があったりなど、(Linuxの中のどのOSなのかは不明。)、これはもはやWindowsに何か問題があるのではないかと疑ってしまいます。以前もWindows updateで入った何かのパッチのせいで、Vagrantが使えなくなったということがありました。

もう開発環境は完全にLinuxに乗り換えるべきなのかなぁ。Windowsはゲームとadobe製品専用機として、割り切ってもいいかもしれない。実はぼくの自宅PCにはすでにUbuntuを入れていますが、ほぼインストールしただけでほったらかしの状態。PC起動時にubuntu側のデザインでOS選択画面になるけど、Windowsしか選ばれないむなしい状況。これを機に、いじってみるのはアリかも。

さらに追記。

解決しました。

VirtualBox 5.0.14でvagrant upするとエラーになるときの対処法。