ZEALOTエンジニアブログ

boot2dockerの仮想マシンディスクを外部ディスクに移動する

Pocket

ここ最近、Macのboot2dockerを使っているのですが、MacBook Airのディスクを圧迫し始めて、なかなかつらい状況になってきました。そこで、boot2dockerが使っている仮想マシンディスクなどを外部のディスク(USBメモリ)に移動する事にしました。

移動する前のファイルの構成は以下の様になっていました。

  • ~/.boot2docker (boot2dockerが使う仮想マシンディスクのデフォルトの保存先)
    • boot2docker-vm.vmdk (10GBくらい)
    • boot2docker.iso (24MBくらい)
  • ~/VirtualBox\ VMs/boot2docker-vm (boot2dockerのVirtualBoxの仮想マシン)

boot2dockerを停止

boot2dockerが起動している場合、停止しておきます。

VirtualBoxに登録されている仮想マシンを除去

最初に、boot2docker-vmの除去しておきます。(ファイルの削除は行わずに)

仮想マシンディレクトリを外部ディスクに移動

~/VirtualBox\ VMs/boot2docker-vmを外部ディスク(外部ディスクは/Volumes/vmにマウントしている前提で話を進めます)に移動します。

仮想マシンディスクとISOファイルを外部ディスクに移動

boot2dockerの設定ファイルを追加

仮想マシンディスクとISOの場所を以下のようにprofileファイルに記述します。(この変更、今回のように途中から場所を移動する場合(boot2docker initをしたあと)にはあまり意味がなさそうですが、忘れないように書いておきます。)

boot2docker-vmをVirtualBoxに追加し直す

移動したboot2docker-vmをVirtualBoxに追加し直します。メニューの「仮想マシン」>「追加」から移動した仮想マシンディレクトリのvboxファイル(/Volumes/vm/virtualbox/boot2docker-vm/boot2docker-vm.vbox)を指定します。

boot2docker-vmの設定変更

VirtualBoxのboot2docker-vmの設定画面の「ストレージ」を開くと以下のようにエラーとなっています。

boot2docker-vm_setting_2

ISOファイルは上記画像の矢印の箇所から、移動先のISOファイル(/Volumes/vm/boot2docker/boot2docker.iso)を選択し直します。仮想マシンディスク(boot2docker-vm.vmdk)もISOファイルの様に変更すればいいのですが、「Cannot register the hard disk … UUID … already exists.」というエラーになってしまいます。

そこで以下のコマンドを実行してUUIDを変更します。

※ 参考 – VirtualBoxで仮想diskのUUIDを変更する

その後、もう一度、boot2docker-vm.vmdkを選択しなおすとエラーなく変更することが出来ます。

boot2dockerを起動してみる。

バージョン情報まで正しく表示されれば完了です。

最後に

今回、使った外部ディスクは以下のUBSメモリになります。書き込み、読み込み速度が速そうなものを選んでみました。まだ、あまり使ってないのですが、MacBook Airのディスクを使っていた頃とそんなに変わらないのじゃないかと思います。しばらく使ってみて、問題があればまた報告したいと思います。

あと、ちなみに、boot2docker initする前であれば、~/.boot2docker/profileにVM_DISK等を設定しておけば、今回の様な面倒な作業は必要無いのかも知れません。 このスクリプトを見る限りなんとなくそんな気がしますが、試していないので、試す機会があればまた追記しておきます。

Pocket

One thought on “boot2dockerの仮想マシンディスクを外部ディスクに移動する

  1. […] 減をがんばってみる。 boot2dockerの仮想マシンディスクを外部ディスクに移動するとかを参考にがんばってみる。 […]

Comments are closed.