boot2docker のディスク領域を拡張する

boot2docker のディスク領域がいっぱいになってしまったので、ディスク領域を拡張することにした。コマンドで全部できるかなと思ってたんだけど、なんか簡単にできそうな記事が見つからなかったので GPatedというGUIのディスクユーティリティを使うことにした。

だいたい以下のサイトに乗っていることなので、なんですが。
Getting “no space left on device” errors with Boot2Docker?
※ ちなみに、中身を消しちゃっていいのなら、上記リンクの Solution 1 でやったほうが手っ取り早い。今回は、Solution 2の方です。

1. VirtualBox のディスクイメージを拡張

おそらく、boot2docker-vm.vmdk という仮想ディスクデバイスが使用されていると思う。まず、これを vdi というファイルに変換した上で拡張する必要があるらしい。

$ VBoxManage clonehd ~/VirtualBox\ VMs/boot2docker-vm/boot2docker-vm.vmdk ~/VirtualBox\ VMs/boot2docker-vm/boot2docker-vm.vdi --format VDI --variant Standard

次にディスクを拡張する。今回20GBくらいの容量だったのを、40GB程度に拡張することにした。

$ VBoxManage modifyhd ~/VirtualBox\ VMs/boot2docker-vm/boot2docker-vm.vdi --resize 40960

2. GPated のダウンロードと VirtualBox 上の設定

まず、ここ(GParted -- Download)から ISO ファイル(gparted-live-0.23.0-1-i586.iso )をダウンロードする。

次に、VirtualBox の画面から ISO ファイルを追加する。(boot2docker は停止させておく)

2−1. VirtualBox の画面から boot2docker の設定画面を開く

2-2. Storage の設定画面から1で作成した vdi ファイルを選択する

2-3. つぎにダウンロードした GParted の ISO ファイルを選択する

ここまで設定できたら、VirtualBox の画面から boot2docker を起動します。(boot2docker up ではなく)

3. GParted によるディスク拡張

boot2docker の VM を起動すると以下の様に GParted の LiveCD が立ち上がってくる。

キーボードの設定。

言語の設定、Japan があるので選んでおく。

0を選んでX(GUI)で起動する

こんな感じの画面がでる。拡張したいパーティション(今回の例では/dev/sda1)を選択して、「リサイズ/移動」ボタンを押す

矢印の部分をぐいっと右に持って行き拡張する。

最後に「Apply」ボタンを押して変更を適用する。しばらくすると完了する。あとは、適当に VM を停止しておく。

4. 不要な設定を削除して、ディスク領域が拡張されたか確認する

以下の ディスクはもういらないので設定から削除しておく。

以下のコマンドで boot2docker を起動してディスク領域を確認する。

$ boot2docker up
$ boot2docker ssh
$ df -h

約40GBに増えてるね。