vdi ディスクの拡張

今回は、Oracle Linux を使ってみることにしました。

まずは、イメージをダウンロードしました。[このビデオ](https://youtu.be/dvvP4wpsAQI?list=PLKCk3OyNwIztOLwiTOF0HOV5aiTjGNpLl)が参考になります。Oracle Linux 8.10 になります。13.2Gbのイメージです。自動インストールのチェックを外すことがコツです。
ホストマシンは、Fedora42で、VirtualBox に作成します。かなり Oracle づくしな環境ですね。

ダウンロードした Oracle Linux 8.10 を、VirtualBox にインストールしました。
マシン名も、「Oracle Linux 8.10」にしました。

なお、ホストマシンが、Fedora42 となり、VirtualBox が起動しない問題がありましたが、[この方法](https://qiita.com/intrajp/items/f9581d78111100202eae)で、回避できました。

さて、あるイメージのダウンロードで、容量が100%になってしまいました。というのも、ディスク容量を 20GB にしていたためです。足りなかったですね。
ホストマシンで、対象を 50GB に拡張します。

```
$ VBoxManage modifymedium "/path/to/VirtualBox VMs/Oracle Linux 8.10/Oracle Linux 8.10.vdi" --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

$ VBoxManage showmediuminfo "/path/to/VirtualBox VMs/Oracle Linux 8.10/Oracle Linux 8.10.vdi"
UUID:           f1401c76-d05d-44be-98d0-d7b2162f52cf
Parent UUID:    base
State:          locked write
Type:           normal (base)
Location:       /path/to/VirtualBox VMs/Oracle Linux 8.10/Oracle Linux 8.10.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       51200 MBytes
Size on disk:   19842 MBytes
Encryption:     disabled
Property:       AllocationBlockSize=1048576
In use by VMs:  Oracle Linux 8.10 (UUID: 4a9b8294-b000-405e-ab2b-241b8acde4e9)
```
拡張は、成功したようです。

マシンを起動して、次のコマンドでファイルシステムを拡張します。

まずは、parted による現状の確認

```
$ sudo parted /dev/sda
(parted) print all
...(snip)...
番号　開始　  終了　  サイズ　タイプ　 ファイルシステム　フラグ
1    1049kB 1075MB 1074MB primary xfs            boot
2    1075MB 21.5GB 20.4GB primary                lvm
```
parted による拡張

```
(parted) print all
...(snip)...
番号　開始　  終了　  サイズ　タイプ　 ファイルシステム　フラグ
1    1049kB 1075MB 1074MB primary xfs            boot
2    1075MB 50.0GB 48.9GB primary                lvm
(parted)q
```

[How to resize a logical volume with 5 simple LVM commands](https://www.redhat.com/en/blog/resize-lvm-simple)を参考にします。

**１. まずは、新しいストレージを作成して、VM に追加します**

vdi を作成して、追加しました。サイズは、同じく、20GB としました。

拡張するデバイスの名前確認

```
$ lsblk
NAME         MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda          8:0     0  50G  0  disk
|-sda1       8:1     0  1G   0  part /boot
|-sda2
   |-ol-root 252:0   0  17G  0  lvm  /
   |-ol-root 252:1   0   2G  0  lvm  [SWAP]
sdb          8:16    0  20G  0  disk
sr0          11:0      1024M 0  rom
```

**２. 次に、ストレージから Physical Volume (PV) を作成します**

```
$ sudo pvcreate /dev/sdb
 Physical volume "/dev/sdb" successfully created.
```

**３. PV を Volume Group (VG) に追加します** 

```
$ sudo vgs
 VG #PV #LV #SN Attr   VSize   VFree
 ol 1   2   0   wz--n- <19.00g 0
 
$ sudo vgextend ol /dev/sdb
 Volume group "ol" successfully extended

$ sudo vgs
 VG #PV #LV #SN Attr   VSize   VFree
 ol 2   2   0   wz--n- 38.99g  <19.00g

$ sudo vgdisplay
...(snip)...
Alloc PE / Size 4863 / <19.00 GiB
Free  PE / Size 5119 / <20.00 GiB
```

**４. Logical Volume (LV) を拡張します**

```
$ sudo lvs
LV   VG Attr       LSize   Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ol -wi-ao---- <17.00g
swap ol -wi-ao----   2.00g

$ sudo lvextend -l +100FREE /dev/ol/root
 Size of logical volume ol/root changed from <17.00 GiB (4351 extens) to 36.99 GiB (9470 extents).
 Logical volume ol/root successfully resized.
```
**５.ファイルシステム (xfs) を拡張します**

```
$ df -hT
ファイルシス　        タイプ　サイズ　使用　残り　 使用% マウント位置
...(snip)...
/dev/mapper/ol-root xfs    17G   17G   112M 100%  /

$ sudo xfs_growfs /dev/mapper/ol-root
...(snip)...
data blocks changed from 4455424 to 969780

$ df -hT
ファイルシス　        タイプ　サイズ　使用　残り　 使用% マウント位置
...(snip)...
/dev/mapper/ol-root xfs    37G   18G  20G   47%  /
```
これで、やっと、イメージダウンロードを再開できます。