OSが動作しているルートファイルシステムを拡張する場合は、
OSが動作していると拡張できないので手順が少し面倒なんですよね。
1. 仮想マシン停止
OSが動作している仮想ディスクを編集するために仮想マシンを停止します。
2. 仮想ディスク拡張
ハイパーバイザー付属のツールを使って、仮想ディスクのサイズ拡張する。
ESXiの場合
vmkfstools -X 80g /vmfs/volumes/ssd/156_RHEL7.9/156_RHEL7.9.vmdk
KVMやHyper-Vの場合も同じような感じで仮想ディスクを拡張します。
3. 仮想マシンにインストールディスクをマウント
Linuxのレスキューモードに入るためにはインストールディスクが必要です。
4. レスキューモード起動
仮想マシンのブートデバイスをインストールディスクに設定しておく(手順省略)。
起動したら、以下の順に選択してレスキューモードを起動する。
Red Hat Enterprise Linux 7.9
-> Troubleshooting
-> Rescue a Red Hat Enterprise Linux system
レスキューモードで起動したら 3) を選択する。
3) Skip to shell
すると / にはローカルディスクではなくISOメディアボリュームがマウントされる。
5. 仮想ディスクのパーティション拡張
5-1. fdiskを利用する場合
拡張ディスクのデバイス名を確認する
sh-4.2# fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 ****** 83 Linux
/dev/sda2 2099200 33554431 ****** 8e Linux LVM
→/dev/sda
fdiskを実行
sh-4.2# fdisk /dev/sda
拡張するパーティションと開始-終了セクタを確認する。
開始-終了セクタは後で必要になりますので必ずメモ!
Command (m for help) : p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 ****** 83 Linux
/dev/sda2 2099200 33554431 ****** 8e Linux LVM
→ /dev/sda2
fdiskでパーティション拡張するためには、一度パーティションを削除してから、再作成する必要がある。
パーティションを削除する
Command (m for help) : d
Partition number (1,2, default 2): 2
Partition 2 is deleted
パーティションが消えたことを確認する
Command (m for help) : p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 ****** 83 Linux
新しいパーティションを作成する
開始セクタ(First sector)は、削除する前の開始セクタと同じにしないといけない。
終了セクタ(Last sector)は、デフォルトで空き領域を使った最大サイズになっている。
※通常はデフォルト値でEnterキーを押下していけばいい感じになるけど設定値は慎重に。
Command (m for help) : n
Partition type:
p primary (1 parimary, 0 extended, 3 free)
e extended
Select (default p): p
Parition number (2-4, default 2): 2
First sector (2099200-167772159, default 2099200):
Using default value 2099299
Last sector, +sectors or +size{K,M,G} (2099200-167772159, default 16772159):
Using default value 167772159
Partition 2 of type Linux and of size 79 GiB is set
作成されたパーティションを確認する
Command (m for help) : p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 ****** 83 Linux
/dev/sda2 2099200 167772159 ****** 83 Linux
System id が Linux LVM
になっていないので変更する
Command (m for help) : t
Partition number (1,2, default 2): 2
Hex code (type L to List all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
System id が変更されていることを確認する
Command (m for help) : p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 ****** 83 Linux
/dev/sda2 2099200 167772159 ****** 8e Linux LVM
最後に変更を反映する(これをしないと、ここまでの変更は反映されないよ!)
Command (m for help) : w
The partition tables has been alerted!
Calling ioctl() to re-read partition table.
Syncing disk.
5-2. partedを利用する場合
partedはfdiskより簡単に拡張できます。
拡張ディスクのデバイス名を確認する
sh-4.4# parted -l
Model: VMware Virtual disk (scisi)
Disk /dev/sda: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 630MB 629MB fat32 EFI System Partition boot, esp
2 630MB 1704MB 1074MB xfs
3 1704MB 21.5GB 19.8GB
→/dev/sda
partedを実行
sh-4.4# parted /dev/sda
変更前のパーティションを確認する
(parted) p
Number Start End Size File system Name Flags
1 1049kB 630MB 629MB fat32 EFI System Partition boot, esp
2 630MB 1704MB 1074MB xfs
3 1704MB 21.5GB 19.8GB
パーティションを拡張する
partedはfdiskと違って変更が即座に反映されます!
(parted) resizepart 3 100%
パーティションが拡張されたことを確認する
(parted) p
Number Start End Size File system Name Flags
1 1049kB 630MB 629MB fat32 EFI System Partition boot, esp
2 630MB 1704MB 1074MB xfs
3 1704MB 21.5GB 19.8GB
partedを終了する
(parted) q
6. LVM - PV拡張
現状はディスクサイズが増えただけで、ファイルシステムは元のまま。
ファイルシステムはLVM上に構築されているので、
LVMの拡張を行ってから、ファイルシステムの拡張が必要です。
現状のPVは 15GB になっている
sh-4.2# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name rhel
PV Size <15.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3839
Free PE 0
Allocated PE 3839
PV UUID EiZp2t-yIIe-JEeF-1ecJ-xLkM-lun2-Z31Rcl
PVを拡張する(fdiskで拡張した領域を反映)
sh-4.2# pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
PVが 79GB に拡張されたことが確認できる
sh-4.2# pvscan
PV /dev/sda2 VG rhel lvm2 [<99.00 GiB / 40.00 GiB free]
Total: 1 [<79.00 GiB] / in use: 1 [<79.00 GiB] / in no VG: 0 [0 ]
sh-4.2# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name rhel
PV Size <79.00 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 20223
Free PE 16384
Allocated PE 3839
PV UUID EiZp2t-yIIe-JEeF-1ecJ-xLkM-lun2-Z31Rcl
7. LVM - LV拡張
(VGはPVを束にしたものなので、PVを拡張すればVGも拡張される)
現状のPVは 13.39GB になっている
sh-4.2# lvdisplay
--- Logical volume ---
LV Path /dev/rhel/swap
LV Name swap
VG Name rhel
LV UUID LGg4a2-gG2u-LxWb-LHBm-Hsxk-9oG0-4ZpXtS
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-03-19 00:54:25 +0000
LV Status available
# open 2
LV Size 1.60 GiB
Current LE 410
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
- Logical volume ---
LV Path /dev/rhel/root
LV Name home
VG Name rhel
LV UUID 6NJV1B-U3XR-ylSk-imRS-QG4V-KP8K-Bycd8Z
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-03-19 00:54:25 +0000
LV Status available
# open 1
LV Size 13.39 GiB
Current LE 3429
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
LVを拡張する(キーボードはUS配列になっているので + は[へ]キーです)
sh-4.2# lvextend -l +100%FREE /dev/rhel/root
Size of logical volume rhel/root chnaged from 13.39 GiB (3429 extents) to 77.39 GiB (19813 extents).
Logical volume rhel/root successfully resize.
LVが 77.39GB に拡張されていることを確認する
sh-4.2# lvextend
(略)
- Logical volume ---
LV Path /dev/rhel/root
LV Name home
VG Name rhel
LV UUID 6NJV1B-U3XR-ylSk-imRS-QG4V-KP8K-Bycd8Z
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-03-19 00:54:25 +0000
LV Status available
# open 1
LV Size 77.39 GiB
Current LE 19813
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
8. ファイルシステム拡張
最後にファイルシステムの拡張をする。
レスキューモードを抜けて、通常のOS起動を行う
sh-4.2# exit
仮想マシンの電源ON!!
現状のファイルシステムサイズを確認する
[root@rhel79 ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 903M 0 903M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 9.6M 910M 2% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 14G 14G 44M 100% /
/dev/sda1 1014M 185M 830M 19% /boot
tmpfs 184M 8.0K 184M 1% /run/user/42
tmpfs 184M 0 184M 0% /run/user/0
ファイルシステムタイプを確認する
[root@rhel79 ~]# cat /etc/fstab
ファイルシステムを拡張する(ここではxfs)
[root@rhel79 ~]# xfs_growfs /dev/mapper/rhel-root
meta-data=/dev/mapper/rhel-root isize=512 agcount=4, agsize=877824 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=3511296, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal 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 3511296 to 20288512
ファイルシステムが拡張されたことを確認する
[root@rhel79 ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 903M 0 903M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 9.6M 910M 2% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 78G 14G 65G 18% /
/dev/sda1 1014M 185M 830M 19% /boot
tmpfs 184M 8.0K 184M 1% /run/user/42
tmpfs 184M 0 184M 0% /run/user/0
ファイルシステム拡張だけOS上ですみません。。。
以上です。