Sarcasistブログ

Sarcasistのメンバーが技術ネタ、運営ネタ、サービスに関するを記事を投稿するブログ

開発用のVMをUSBに移行しよう

お疲れ様です。honyanyaです。
いつもサーカシスト活動やプライベートでは MacbookAir 13-inch を使用していますが、SSD容量が128GBなのでいつも容量との闘いです。
ですが最近、節約するのも大変・どれがいらないファイルなのか、オンラインストレージに移すのか、考える時間もバカにならなくなったという事でissueを挙げてみると、さっそくメンバーからおすすめが紹介されました。結果として小型の64GBのUSBメモリを購入。
勝負には負けましたが快適です。次は大きいSSD容量にしようと心に決めました。

f:id:honyanyas:20180630230852p:plain 画像は当時挙げたissue

さて、本日はVagrantで使用しているVirtual BoxのVMをUDBに移していこうという話です。

SSD to USB への移行

環境

移行前のdf結果

$ df -h
Filesystem      Size   Used  Avail Capacity  iused  ifree %iused  Mounted on
/dev/disk1     112Gi  108Gi  3.5Gi    97% 28395756 927506   97%   /
devfs          326Ki  326Ki    0Bi   100%     1130      0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0      0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0      0  100%   /home

移行作業

1. USBを認識させる

差し込んで認識させましょう
以下のようにMacintosh HD以外のものが出ればOK

$ ls /Volumes/
Macintosh HD        usb-64gb-1

2. Virtual Boxのデフォルトの仮想マシンフォルダーを変更

Virtual Boxを起動し、
[Virtual Box] -> [環境設定] を選択

デフォルトでは /Users/user_name/VirtualBox VMs/ となっているが変更する
/Volumes/usb-64gb-1/VirtualBox VMs/ としました。(ディレクトリは事前に作成)

3. VMをUSBへコピー

GUIでやってしまいましたが

$ cp -r /Users/user_name/VirtualBox\ VMs/ubuntu-1604_default_xxxxxxxxxxxxxx_xxxx/ /Volumes/usb-64gb-1/VirtualBox\ VMs/

こういう事をやればOKだと思います

4. Virtual Box で対象のVMを除去

上部メニュー[Virtual Box] -> [ubuntu-1604_default_xxxxxxxxxxxxxx_xxxx]
右クリックをして[除去] -> ダイアログが出たら[除去のみ]を選択

Oracle VM Virtual Box マネージャーに対象のVMが表示されなくなったらOK

5. 元のVMディレクトリ名を変更する

同じく、GUIでやってしまいましたが

$ mv /Users/user_name/VirtualBox\ VMs/ubuntu-1604_default_xxxxxxxxxxxxxx_xxxx/ /Users/user_name/VirtualBox\ VMs/_ubuntu-1604_default_xxxxxxxxxxxxxx_xxxx/

こういう事をやればOKだと思います
自分は先頭にアンダースコアを付けておきました

6. Virtual Box でコピーしたVMを追加

上部メニュー[仮想マシン] -> [追加]
USBにコピーした仮想マシンディレクトリからvboxファイルを選択

Oracle VM Virtual Box マネージャーに対象のVMが表示されればOK

7. 祈りながら起動する

対象のVMを起動させましょう
きっと起動する
自分の場合はUbuntuGUIが無事に立ち上がりました!

vagrant upvagrant halt が問題ない事も確認する

8. 元のVMを削除する

コピー元ですね

$ rm -rf /Users/user_name/VirtualBox\ VMs/_ubuntu-1604_default_xxxxxxxxxxxxxx_xxxx/

これでUSBにVMがある状態となりました

移行後のdf結果

$ df -h
Filesystem      Size   Used  Avail Capacity  iused   ifree %iused  Mounted on
/dev/disk1     112Gi   76Gi   36Gi    69% 19989065 9334197   68%   /
devfs          329Ki  329Ki    0Bi   100%     1138       0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0       0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0       0  100%   /home
/dev/disk2s2    58Gi   33Gi   25Gi    58%  8743496 6569388   57%   /Volumes/usb-64gb-1

まとめ

無事に容量が確保できました!!
現状は問題なく使えています。
個人的には速度も問題ないかなーと。

参考

VirutalBoxのファイルは外部媒体に移動してそこから起動できますか。|teratail
こちらの質問の回答通りにできました、ありがとうございます!