vagrant
VirtualBox

vagrantとVirtualBoxを外付けSSDに移動する

macbookの空き容量問題

先日OSのアプデをしようとしたら途中で止まり、原因を調べたところ空き容量が足りなかったためと判明。慌てて外付けSSDを購入し、容量を食っているものをそちらに移すことにした。
で、その際にVirtualBoxが思いの外、大きかったので移したのだがドラッグドロップでは(やっぱり)うまく行かなかったのでググって解決した話。

1.外付けSSDにディレクトリを作成

vagrant用とVirtualBox用のデータディレクトリを作成。

$ cd /Volumes/外付けSSD名
$ mkdir vagrant
$ mkdir virtualbox_vms

2.VirtualBoxのVM保存場所を外付けSSDに変更し、 VMデータを移動する

VirtualBoxを起動し、設定 - 一般 - デフォルトの仮装マシンフォルダーを外付けSSDに作ったvirtualbox_vmsに変更する。
そうしたらVMデータを外付けSSDに移動させる。ターミナルでちゃちゃっと移動してもいいし、ドラッグドロップで移動してもいい。
その場合、ユーザ > ホーム > VirtualBox VMsから必要なディレクトリを移動した。

3.VirtualBoxでVMを再設定

これでVirtualBoxを起動させると、inaccessibleと表示されている。なので、一度VMを削除して、外付けSSDに移したVMを追加して再設定する。
除去を選択し、なくなったら仮想マシン - 追加から外付けSSDから必要なVMを選択して、.vboxというファイルを選ぶ。これで再設定は完了。

4.vagrantのデータを外付けSSDに移動

ついでなのでvagrantデータも外付けSSDに移動した。
ただターミナルを利用せず、ドラッグドロップをしていたので該当の.vagrant.dが見つからず…。
隠しファイルを表示するように設定し直して発見し、そのまま外付けのvagrantに突っ込んだ。

5.vagrantの環境変数VAGRANT_HOME の設定

上記のままだと動かないので、環境変数を設定し直す。

export VAGRANT_HOME=/Volumes/外付けSSD名/vagrant/.vagrant.d
export PATH=$VAGRANT_HOME:$PATH

これで問題なく動いたが、ログアウトすると無効になると書いてあるものもあった。問題があった場合は、.bash_profileに記述した方がいいようだ。
参考:http://kiraba.jp/change-save-point-vagrant-box-and-virtual-machine/

6.VM起動と停止の確認

vagrantfileを作成済みのディレクトリで、いつも通りにvagrantが起動するか確認して問題なければOK。
参考:
http://easyramble.com/move-virtual-box-vms-to-external-storage.html

余談

今回はOKではなかったので追記。
vagrant upでなぜかvirtualboxのダウンロードが始まり、うまく行かない問題が発生。
どうやらバージョンの組み合わせが悪かったようで、vagrantをアプデし、VirtualBoxもアプデして解決した。
参考:https://hacknote.jp/archives/20991/

起動は問題なかったがmountエラーが出たのでそちらの対処にも時間がかかった。
最終的に、プラグイン「vagrant-vbguest」をインストールしてguest側が古かったのでvbguestでアプデして解決した。
参考:
https://qiita.com/ozawan/items/9751dcfd9bd4c470cd82