33846
Vagrant + VirtualBox で、 ubuntu (`ubuntu/trusty64`) をインストールしました。

この box を `vagrant up` した際に作成される VM のルートボリュームのサイズは 40G
です。これはいろいろと物足りないので、拡張したいと考えました。

これを実現する方法はありますか？
CC BY-SA 3.0
2017-04-07T15:00:00.387
33845
2017-07-13T07:56:39.163
754
question
ubuntu vagrant virtualbox
ubuntu/trusty64 から立ち上げた VM の容量を拡張するには？
以下の手順でできます。

※はじめにバックアップ (`vagrant package`) をとっておくことを推奨します。

### VM の場所などを特定する

以下で特定できます。

```

    # vm の一覧を表示
    VBoxManage list vms
    
    # 上で表示された vm のうち、詳細を見たい vm を指定。
    # SATAControler: みたいなものが、下記で使う仮想ディスクへのパス
    VBoxManage showvminfo ubuntu64_default_1491551785012_65723
    
```

### vmdk を vdi に変換し、サイズを変更する。

vmdk はボリュームのリサイズが (少なくとも VirtualBox からでは)できないので、まず vdi 形式に変換します。

```

    # 上で特定した VM のディレクトリに移動する。
    cd ${vm_dir}  # e.g. ~/VirtualBox VMs/ubuntu64_default_1491551785012_65723/
    
    # ディスク情報を確認
    VBoxManage showhdinfo ./box-disk1.vmdk
    # ディスクフォーマットを変換しながら clone
    VBoxManage clonehd ./box-disk1.vmdk clone-disk1.vdi --format vdi
    # ディスクをリサイズ (81920MB == 80G)
    VBoxManage modifyhd ./clone-disk1.vdi --resize 81920
    
```

### ディスクをアタッチする

ここの作業は、VM のストレージ設定がどのような構成になっているかに依存します。  
ポイントは、もともとのボリュームファイルを新しいボリュームファイル置き換えるように、設定すること。

基本的に GUI から操作してこの設定は達成できる様子です。

```

    # 今回作業していた VM では、 SATA　コントローラーからルートボリュームだけがアタッチされている構成であった。
    # この場合は以下のコマンドで実行可能。
    # vm_name: e.g. ubuntu64_default_1491551785012_65723
    VBoxManage storageattach ${vm_name} --storagectl "SATAController" --port 0 --device 0 --type hdd --medium clone-disk1.vdi
    
    # 確認
    VBoxManage showhdinfo ./clone-disk1.vdi
    
```

### VM を再起動する

```

    cd ${vagrantfile_folder}
    vagrant up
    
```
CC BY-SA 3.0
2017-04-07T15:00:00.387
33846
2017-07-13T07:56:39.163
2017-07-13T07:56:39.163
754
754
33845
answer