vagrant
PowerShell

Vagrant up から進まない!?

Vagrant up したけど進まないよ?!

Vagrant Ver.1.9.7以降ではこの問題が発生しているようです。
Vagrant up hangs forever on Windows 7, Vagrant 1.9.7, VirtualBox 5.1.22.r115126

解決法 その1(お手軽)

Ver1.9.6以下にダウングレードする。
Download older versions of Vagrant
この中から1.9.6以下のインストーラーを選んでダウングレードしてください。
1.9.6で正常にVagrant upできるようになるらしいので、1.9.6でいいかと思います。(未確認)

解決法 その2(おすすめ)

PowerShellのバージョンを上げる
「なんで急にPowerShell?!」と思われるでしょう。
実は Vagrant は PowerShell の力も借りて動いています。
そして、その最低バージョンが(恐らく)1.9.7から「3」にあがったのだと思います。

では、なぜ Vagrant up が出来なくなるのかと言うと、Windows 7 に搭載されている
PowerShell のバージョンは「2」なのです。

つまり、

  • Windows 7で
  • Vagrant 1.9.7以降を使い
  • PowerShellをアップグレードしていない

この条件が揃えば Vagrant up から進まなくなります。
というか、普通に Windows7 + Vagrant 使って開発している人ならほぼ間違いなく当てはまります

さて、この解決法がおすすめな理由としては、最新の Vagrant が使える点です。
その1の方法は確かにお手軽ですが、最新バージョンは使用できない事になります。

解決法 その2の注意点

多くの方は関係ないかもしれませんが、PowerShell のバージョンを上げますので、「2」でないと不都合がある方は適用できません。
その場合は「その1」で我慢するしかないですね。

PowerShell のバージョンの上げ方

現時点での PowerShell の最新バージョンは「5.1」になります。
Qiita内でも「5.0」へのバージョンアップの方法は見受けられますが、手順が変わっているので改めて書いておきます。

  1. 対象ファイルのダウンロード
    WMF 5.1 のインストールと構成 こちらから対象となる OS のファイルをダウンロードしてください。 (Windows 7 なら x64:Win7AndW2K8R2-KB3191566-x64.ZIP または x86:Win7-KB3191566-x86.ZIP)
  2. ダウンロードしたZIPファイルを解凍します
  3. PowerShell を管理者権限で起動します 管理者権限での起動は、スタートメニューで「プログラムとファイルの検索」に「powershell」と入力し、上に表示される PowerShell を右クリックから「管理者として実行」としてください
  4. ZIPファイルを解凍したフォルダに移動します
  5. フォルダ内にある Install-WMF5.1.ps1 を実行します

基本的には以上ですが、恐らく

スクリプトの実行がシステムで無効になっているため、ファイル ●:...\Install-WMF5.1.ps1 を読み込めません。詳細については、「get-Help about_signing」と入力してヘルプを参照してください。

といったエラーで実行できない方が多いかと思います。
その際は、Set-ExecutionPolicy RemoteSigned を実行してください。※コピペ可
これはスクリプトの実行ポリシーの変更になりますので、Set-ExecutionPolicy Restricted とすれば全ての PowerShell スクリプトが実行できなくなりますので、バージョンアップ作業がおわったら実行しておきましょう。

あとは再起動すれば vagrant up できるはずです!