macOS を使い Vagrant で VirtualBox の VM を作り、そこで作業をするとしよう。そして途中で VM のディスク容量が足りないことに気づいたとする。どうすればいいのだろう? (なお、この記事では VM で CentOS 8
が動いていると仮定する)
Vagrant で VM の設定を変更するのであれば、現時点でふたつの手がある。
Experimental なオフィシャルの機能を使うというのがひとつめ。この機能を使うには VAGRANT_EXPERIMENTAL="disks"
という環境変数を設定した上で、Vagrantfile に config.vm.disk :disk, size: "100GB", primary: true
というような記述を加えればよい。
もしくは vagrant-disksize というプラグインを使うという手もある。こちらを使うには vagrant plugin install vagrant-disksize
というコマンドでプラグインをインストールし、config.disksize.size = "100GB"
というような記述を Vagrantfile に追加する。
いずれかの手段をとった後、VirtualBox の GUI で VM の設定を眺めると次のようになる。
しかし、ここまでの操作では Linux が空きスペースをディスクとして割り当てない。例えば df -h
コマンドを実行すると次のようになる。
[vagrant@ip-10-0-x-x ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.5M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 10G 3.8G 6.1G 38% /
tmpfs 379M 0 379M 0% /run/user/1000
/dev/sda1
が 10GB しかない。これを変更するためには、次のコマンドを使う。
sudo cfdisk /dev/sda
-/dev/sda1
パーティションを拡張するsudo xfs_growfs /dev/sda1
- ファイルシステムに拡張したパーティションを使わせる (ファイルシステムがext
系である場合はxfs_growfs
ではなくresize2fs
を使う)
ここまでの操作を終えて、ようやく /dev/sda1
が 100GB になる。
[vagrant@ip-10-0-x-x ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.5M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 100G 26G 75G 26% /
tmpfs 393M 0 393M 0% /run/user/1000