Vagrant(VirtualBox) + AlmaLinux でディスクサイズ変更


Vagrant(VirtualBox) + AlmaLinuxの環境で、ディスクサイズを変更しようとした。ググるとCentOS 7の`fdisk`を使ったサイズ変更が事例がヒットする。それを参考にサイズ変更を試みたが失敗した。その後、`cfdisk`を使うと簡単にディスクサイズが変更できることがわかったため、その手順をメモとして残す。

## 環境

- ホスト
    - Windows 11
    - VirtualBox 6.1.40
    - Vagrant 2.3.1
- ゲスト
    - AlmaLInux 8

### vagrant-disksizeプラグインのインストール

````Shell
vagrant plugin install vagrant-disksize
````

### Vagrantfileの設定

````Shell
Vagrant.configure('2') do |config|
    ・・・
    config.disksize.size = '80GB'
    ・・・
end
````

## サイズの変更手順

### 1. dfでサイズ確認

`/dev/sda2`が18GBになっている。

````Shell
[root@vagrant ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  8.5M  2.0G   1% /run
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda2        18G  3.4G   15G  20% /
vagrant         1.3T  219G  1.1T  17% /vagrant
tmpfs           393M     0  393M   0% /run/user/1000
````

### 2. cfdiskでサイズ変更する

1. 矢印キーで`/dev/sda2`を選択する。その後、「Resize」を選択して、Enterキーを押す。
1. 「New size: 78G」と表示されるため、そのままEnterキーを押す。
1. 矢印キーで「Write」を選択し、Enterキーを押す。「Are you sure you want to write the partition table to disk?」と聞かれるので、「yes」と入力する。
1. 矢印キーで「Quit」を選択して、`cfdisk`を終了する。


````Shell
[root@nc4vagrant vagrant]# cfdisk /dev/sda

───────────────────────────────────────────────────────────────────────────────────────────────────

                                           Disk: /dev/sda
                         Size: 80 GiB, 85899345920 bytes, 167772160 sectors
                                 Label: dos, identifier: 0x98df69ba

    Device        Boot          Start          End      Sectors     Size   Id Type
    /dev/sda1                    2048      4098047      4096000       2G   82 Linux swap / Solaris  
>>  /dev/sda2     *           4098048     40959999     36861952    17.6G   83 Linux                 
    Free space               40960000    167772159    126812160    60.5G


 ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ 
 │ Partition type: Linux (83)                                                                     │ 
 │     Attributes: 80                                                                             │ 
 │Filesystem UUID: c9719a12-01e5-4a41-a096-4d5afb4c4141                                           │ 
 │     Filesystem: xfs                                                                            │ 
 │     Mountpoint: / (mounted)                                                                    │ 
 └────────────────────────────────────────────────────────────────────────────────────────────────┘ 
   [Bootable]  [ Delete ]  [ Resize ]  [  Quit  ]  [  Type  ]  [  Help  ]  [  Write ]  [  Dump  ]   


                                Quit program without writing changes
````

### 3. xfs_growfsで拡張パーティションを使用させる

````Shell
root@vagrant vagrant]# xfs_growfs /dev/sda2
meta-data=/dev/sda2              isize=512    agcount=4, agsize=1151936 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=4607744, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4607744 to 20459264

````

### 4. dfコマンドでディスクが増加していることを確認する

````Shell
[root@vagrant ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  8.5M  2.0G   1% /run
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda2        79G  3.9G   75G   5% /
vagrant         1.3T  219G  1.1T  17% /vagrant
tmpfs           393M     0  393M   0% /run/user/1000
````


### ※参考
https://mahata.gitlab.io/post/2021-03-31-resize-disk-with-vagrant/