7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Vagrant][Windows][VirtualBox] Vagrantで作成したVMのディスクサイズを拡張する

Last updated at Posted at 2016-12-28

Ubuntuの公式boxからVagrantでイメージを作成したが、容量が40GBのためディスクサイズが足りなくなりました。
そのため、VMの容量の拡張を行った手順のメモになります。(Vagrantというよりは、VirtualBoxのディスクサイズ拡張の手順です)

※操作を Git Bash 上で行ったため、一部 bash 固有の操作が含まれていますのでご注意下さい

検証環境

今回の検証環境は以下になります。

パッケージ名 バージョン
Host OS Windows 7 64bit
Vagrant 1.9.1
VirtualBox 5.1.12 r112440
base box ubuntu/trusty64

実行手順(簡易版)

  1. ディスクのフォーマットを vmdk => vdi に変換
  2. vdi のディスクサイズを拡張
  3. ディスクフォーマットを vdi => vmdk に変換
  4. ゲストOSの仮想ディスクを差し替える
  5. ディスクサイズが拡張されていることを確認する
  6. 生成したvdiと、変更前の仮想ディスクを管理下から外す

実行手順(詳細)

事前準備

以降の手順は、VBoxManage.exe が存在しているディレクトリにPATHが通っていることを前提とします。
インストール時の設定によって違いますが、基本的には以下のような場所に存在しているはずです。

VBoxManage.exeが存在するディレクトリにPATHを通す
C:\Program Files\Oracle\VirtualBox

また、実行前には vagrant halt 等で、VMを停止させて下さい。

今回は、Atlasで公開されている ubuntu/trusty64 をベースとしています。

拡張前のディスクサイズ
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            241M   12K  241M   1% /dev
tmpfs            49M  348K   49M   1% /run
/dev/sda1        40G  1.4G   37G   4% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            245M     0  245M   0% /run/shm
none            100M     0  100M   0% /run/user
none            921G  818G  104G  89% /vagrant

1. ディスクのフォーマットを vmdk => vdi に変換

ディスクフォーマットの変更
$ VBoxManage.exe clonehd box-disk1.vmdk box-disk1.vdi --format vdi

追記:
今回の例のように ディスクの使用率が少ない場合は変換はすぐ終わりましたが、使用率が高い場合はけっこう時間がかかります。20GB使用しているディスクの場合は、自分の環境だと変換が20~30分ぐらいかかりました。

2. vdi のディスクサイズを拡張

ディスクサイズの変更(40GB=>80GB)
$ VBoxManage.exe modifyhd box-disk1.vdi --resize 81920

数値の単位はMBになります。 Bashの場合は $((80 * 1024)) としたほうがわかりやすいかも。

3. ディスクフォーマットを vdi => vmdk に変換

※vmdkに一応戻してますが、vdiのままでも良いかもしれないです。

拡張したvdiをvmdkに変更
$ VBoxManage.exe clonehd box-disk1.vdi box-disk2.vmdk --format vmdk

4. ゲストOSの仮想ディスクを差し替える

既存の仮想ディスクの情報を確認
$ VBoxManage.exe showvminfo vagrant_ubuntu_server_base_default_1482910721535_34537 | grep ".vmdk"
SATAController (0, 0): C:\Users\XXXX\VirtualBox VMs\vagrant_ubuntu_server_base_default_1482910721535_34537\box-disk1.vmdk (UUID: 39fb6706-24c6-4737-bca9-7ca0490d21c1)
仮想ディスクの差し替え
$ VBoxManage.exe storageattach vagrant_ubuntu_server_base_default_1482910721535_34537 --storagectl "SATAController" --port 0 --device 0 --type hdd --medium box-disk2.vmdk
差し替わっていることの確認
$ VBoxManage.exe showvminfo vagrant_ubuntu_server_base_default_1482910721535_34537 | grep ".vmdk"
SATAController (0, 0): C:\Users\XXXX\VirtualBox VMs\vagrant_ubuntu_server_base_default_1482910721535_34537\box-disk2.vmdk (UUID: 0ed226d7-3cc1-4042-bdb7-15f4e0e7f520)

5. ディスクサイズが拡張されていることを確認する

VMを起動してディスクサイズが変更されていることを確認する
# vagrant ssh
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            241M   12K  241M   1% /dev
tmpfs            49M  348K   49M   1% /run
/dev/sda1        79G  1.4G   75G   2% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            245M     0  245M   0% /run/shm
none            100M     0  100M   0% /run/user
none            921G  819G  103G  89% /vagrant

※1-4の手順で拡張を行った後にパーティションを変更するというような手順がある記事もありましたが、今回自分が行った場合にはバーティションの変更は特にありませんでした。/dev/sda2 などが追加されている場合は、パーティションの変更を行って下さい。

一旦VMを閉じる。
# vagrant halt

確認後は一旦VMを停止させて下さい。

6. 生成したvdiと、変更前の仮想ディスクを管理下から外す

生成したvdiと、変更前の仮想ディスクを管理下から外す
$ VBoxManage.exe closemedium box-disk1.vdi
$ VBoxManage.exe closemedium box-disk1.vmdk

必要なければ上記のファイルは削除しても構いません。

別解

本記事は、既存の仮想ディスクを拡張する方法を記載していますが、拡張ではなく別のディスクを追加したい場合もあるかと思います。その場合は以下の記事などを参照して下さい。

[Vagrant] VirtualBox作成時にストレージを追加 - Qiita

関連

WindowsでVagrantを使用してVM環境を作成する - Qiita

参考

Vagrant(Virtualbox)のディスク(ストレージ)容量を増やす方法 - Qiita
vagrantの既存boxにディスク容量を追加する - Qiita
Vagrantのディスク容量を増やす - 作業ノート

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?