前提
- Vagrant を利用して仮想マシンを作成したい
- 普通に
vagrant up
するとディスク容量が足りない! - プロバイダは VirtualBox
対応方法
新しいディスクを作成 & アタッチします。
Vagrantfile
config.vm.provider :virtualbox do |vb|
file_to_disk = "./tmp/disk.vdi"
unless File.exist?(file_to_disk)
vb.customize ['createhd', '--filename', file_to_disk, '--size', 20 * 1024]
vb.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', file_to_disk]
end
end
直接ディスク容量増やせないの?
ディスクイメージ(vdi)へのパスの取得方法がわかりませんでした。
こんな感じでできると良いのですが。
vb.customize ["modifyhd", path_to_vdi, "--resize", 20 * 1024] # できない
おまけ: フォーマット&マウント例
(fdisk ではなく)parted コマンドを使うとノンインタラクティブに、
パーティショニングできます。
bootstrap.sh
#!/usr/bin/env bash
yum install -y parted
# パーティションの作成
parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 0% 100%
# フォーマット
mkfs.ext4 /dev/sdb1
# マウント
mkdir /db
mount /dev/sdb1 /db
# 自動マウント設定
echo '/dev/sdb1 /db ext4 defaults 0 0' >> /etc/fstab