Edited at

Vagratfileに一行書くだけでVMのディスク容量を増やす方法

More than 1 year has passed since last update.


はじめに

Vagrant を使うとカジュアルにVMを作ったり壊したりできて便利なのだが、VMの作成元である box image はディスク容量が少ないケースが多く、すぐに容量不足に陥るのがネックだと感じていた。

その解決策を探している中で、vagrant-disksize というプラグインを発見した。これを使えば Vagratfile に設定を一行書くだけでVMのディスク容量が増やせる。


vagrant-disksize プラグインを使って VM のディスク容量を増やす方法

まずは vagrant-disksize プラグインをインストールする。

$ vagrant plugin install vagrant-disksize

あとは Vagrantfile に config.disksize.size の設定を一行追記して、


Vagrantfile

Vagrant.configure('2') do |config|

config.vm.box = 'ubuntu/xenial64'
config.disksize.size = '100GB' # <- この設定を書く
end

vagrant up を実行するだけ。

$ vagrant up

...(snip)...
==> default: Resized disk: old 10240 MB, req 102400 MB, new 102400 MB
==> default: You may need to resize the filesystem from within the guest.
...(snip)...

すると、通常は 10GB である ubuntu/xenial64 (20170207.0.0) のディスク容量が・・・

ubuntu_xenial_10GB_1.png

ubuntu_xenial_10GB_2.png

下記の通り、100GB に増える。

ubuntu_xenial_100GB_1.png

ubuntu_xenial_2_100GB.png


VM作成後でもディスク容量を増やせる

一度VMを作成してからでも、Vagrantfile のディスクサイズ設定値を増やして vagrant halt -> vagrant up を実行することで、いつでも好きなタイミングでディスク容量を増やせる。


Vagrantfile

Vagrant.configure('2') do |config|

config.vm.box = 'ubuntu/xenial64'
config.disksize.size = '120GB' # 100GB から 120GB に変更
end

$ vagrant halt

...(snip)...

$ vagrant up

...(snip)...
==> default: Resized disk: old 102400 MB, req 122880 MB, new 122880 MB
==> default: You may need to resize the filesystem from within the guest.
...(snip)...

下記の通り、120GB に増えている。

ubuntu_xenial_1_120GB.png

ubuntu_xenial_2_120GB.png


動作確認環境

ホストOS x ゲストOSの組み合わせは下記4パターンを試し、いずれも動作することを確認した。


  • Vagrant: 1.9.1

  • プロバイダ: VirtualBox (5.1.14)

  • ホストOS:


    • MacOS Sierra (10.12.3)

    • Windows 10 Pro (64bit)



  • ゲストOS (box image):


    • ubuntu/xenial64 (20170207.0.0)

    • ubuntu/trusty64 (20170202.1.0)




留意点

README.md#Limitations に記載されていること:


  • VirtualBox 以外のプロバイダでは動作しない

  • box イメージによっては上手く動作しなかったり、別途ゲストOS内でパーティション設定が必要になるかも知れない

  • ディスク容量は増やす方向にしか変更できない

その他気付いたこと:


  • ディスクイメージファイルは .vmdk とかであっても .dvi に変換される


    • このとき、VirtualBoxのアプリを起動すると下記のような警告が出る

    • これは、プラグインが変換前のディスクイメージファイルを VirtualBox の管理対象から外していないため

    • しかし、ゲストOSの動作上は特に問題とならないため、自分は気にしないでいる(もし気になれば「確認」ボタンを押して該当のディスクイメージファイルを「除去」すれば良い)
      VirtualBox_Warning.png




おわりに

vagrant-disksize プラグインを使って Vagratfile に一行書くだけでVMのディスク容量を増やす方法を紹介した。

留意点に記載の通り環境によっては上手く動作しない場合もあるかも知れないが、そうでなければお手軽にVMのディスク容量を増やせるので便利。