Linuxのディスクサイズを拡張する方法を以下の通りメモを残す。
なお、以下の要件を考慮したものとなる。
- LVMを利用している
- ディスクを増設ではなく拡張してサイズ変更している。
検証環境情報
ubuntu@develop:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
ディスク拡張前の各種確認
1. ファイルシステムの確認
拡張対象のファイルシステムを確認する。
ubuntu@develop:~$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 387M 2.0M 385M 1% /run
/dev/mapper/vgubuntu-root ext4 18G 9.2G 7.0G 57% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 vfat 512M 6.1M 506M 2% /boot/efi
tmpfs tmpfs 387M 104K 387M 1% /run/user/1000
マウントポイント/
は/dev/mapper/vgubuntu-root
のファイルシステムにより提供されていることがわかる。
2. ディスクの確認
ファイルシステムで利用しているディスクを確認する。
ディスクを確認するためにブロックデバイスのリストを表示して確認する。
ubuntu@develop:~$ lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/loop0 7:0 0 4K 1 loop /snap/bare/5
/dev/loop1 7:1 0 74.3M 1 loop /snap/core22/1612
/dev/loop2 7:2 0 271.2M 1 loop /snap/firefox/4848
/dev/loop3 7:3 0 505.1M 1 loop /snap/gnome-42-2204/176
/dev/loop4 7:4 0 12.9M 1 loop /snap/snap-store/1113
/dev/loop5 7:5 0 91.7M 1 loop /snap/gtk-common-themes/1535
/dev/loop6 7:6 0 38.8M 1 loop /snap/snapd/21759
/dev/loop7 7:7 0 500K 1 loop /snap/snapd-desktop-integration/178
/dev/sda 8:0 0 20G 0 disk
├─/dev/sda1 8:1 0 1M 0 part
├─/dev/sda2 8:2 0 513M 0 part /boot/efi
└─/dev/sda3 8:3 0 19.5G 0 part
├─/dev/mapper/vgubuntu-root 252:0 0 17.5G 0 lvm /
└─/dev/mapper/vgubuntu-swap_1 252:1 0 2G 0 lvm [SWAP]
/dev/sr0 11:0 1 1024M 0 rom
先ほど確認した/dev/mapper/vgubuntu-root
はブロックデバイス/dev/sda
のパーティション/dev/sda3
を利用していることがわかる。
3. LVM関連情報の確認
利用しているディスクの物理ディスクの認識状況を確認する。
ubuntu@develop:~$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 vgubuntu lvm2 a-- 19.49g 32.00m
ubuntu@develop:~$ sudo pvdisplay /dev/sda3
--- Physical volume ---
PV Name /dev/sda3
VG Name vgubuntu
PV Size <19.50 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 4990
Free PE 8
Allocated PE 4982
PV UUID uC3V9L-HfWZ-vJbH-FDBd-hlvG-G7rX-l5z0CN
論理ディスクの識別状況を確認する。
ubuntu@develop:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vgubuntu -wi-ao---- <17.47g
swap_1 vgubuntu -wi-ao---- 1.99g
ubuntu@develop:~$ sudo lvdisplay /dev/vgubuntu/root
--- Logical volume ---
LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID LT8yIJ-D6kz-BAro-MQMP-nQO9-UfrD-jeZ90n
LV Write Access read/write
LV Creation host, time ubuntu, 2025-08-02 10:32:23 +0900
LV Status available
# open 1
LV Size <17.47 GiB
Current LE 4472
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
ディスク拡張処理
1. VMの既存ディスクのサイズを拡張する
VMの電源を落とした状態で仮想ハードディスクのサイズを変更する。
今回の例は20GBから40GBに拡張する。
2. ディスクの確認
ディスクが無事に拡張されているか確認する。
ubuntu@develop:~$ sudo fdisk -l
--- (snip) ---
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: DDB77ECB-E832-45CE-B035-D7EB6C9D27F6
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 1054719 1050624 513M EFI System
/dev/sda3 1054720 41940991 40886272 19.5G Linux LVM
--- (snip) ---
/dev/sda
が40GiBに拡張されおり、無事に拡張できていることがわかる。
3. パーティションテーブルの拡張
拡張したいパーティションを指定し、とりえることが可能な最大サイズまで拡大する。
ubuntu@develop:~$ sudo growpart /dev/sda 3
CHANGED: partition=3 start=1054720 old: size=40886272 end=41940992 new: size=82831327 end=83886047
growpart
コマンドのパッケージ名はcloud-guest-utils
である
https://manpages.ubuntu.com/manpages/lunar/man1/growpart.1.html
4. ディスクの確認
/dev/sda3
が無事に拡張されていることが確認できる。
また、拡張されことによりPVとしては余っている領域が存在するようになったことも確認できる。
ubuntu@develop:~$ lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/loop0 7:0 0 4K 1 loop /snap/bare/5
/dev/loop1 7:1 0 74.3M 1 loop /snap/core22/1612
/dev/loop2 7:2 0 271.2M 1 loop /snap/firefox/4848
/dev/loop3 7:3 0 505.1M 1 loop /snap/gnome-42-2204/176
/dev/loop4 7:4 0 91.7M 1 loop /snap/gtk-common-themes/1535
/dev/loop5 7:5 0 12.9M 1 loop /snap/snap-store/1113
/dev/loop6 7:6 0 38.8M 1 loop /snap/snapd/21759
/dev/loop7 7:7 0 500K 1 loop /snap/snapd-desktop-integration/178
/dev/sda 8:0 0 40G 0 disk
├─/dev/sda1 8:1 0 1M 0 part
├─/dev/sda2 8:2 0 513M 0 part /boot/efi
└─/dev/sda3 8:3 0 39.5G 0 part
├─/dev/mapper/vgubuntu-root 252:0 0 17.5G 0 lvm /
└─/dev/mapper/vgubuntu-swap_1 252:1 0 2G 0 lvm [SWAP]
/dev/sr0 11:0 1 1024M 0 rom
ubuntu@develop:~$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 vgubuntu lvm2 a-- 39.49g 20.03g
ubuntu@develop:~$ sudo pvdisplay /dev/sda3
--- Physical volume ---
PV Name /dev/sda3
VG Name vgubuntu
PV Size <39.50 GiB / not usable 3.98 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 10110
Free PE 5128
Allocated PE 4982
PV UUID uC3V9L-HfWZ-vJbH-FDBd-hlvG-G7rX-l5z0CN
5. 論理ボリュームの拡張
PVの余っている領域すべてを利用するためにLVを拡張する。
拡張させるためのコマンドを発行する前は以下の通り。
ubuntu@develop:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vgubuntu -wi-ao---- <17.47g
swap_1 vgubuntu -wi-ao---- 1.99g
ubuntu@develop:~$ sudo lvdisplay /dev/vgubuntu/root
--- Logical volume ---
LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID LT8yIJ-D6kz-BAro-MQMP-nQO9-UfrD-jeZ90n
LV Write Access read/write
LV Creation host, time ubuntu, 2025-08-02 10:32:23 +0900
LV Status available
# open 1
LV Size <17.47 GiB
Current LE 4472
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
拡張させるためのコマンドを発行する。
ubuntu@develop:~$ sudo lvextend -l +100%FREE /dev/vgubuntu/root
Size of logical volume vgubuntu/root changed from <17.47 GiB (4472 extents) to 37.50 GiB (9600 extents).
Logical volume vgubuntu/root successfully resized.
動作を検証する。
ubuntu@develop:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vgubuntu -wi-ao---- 37.50g
swap_1 vgubuntu -wi-ao---- 1.99g
ubuntu@develop:~$ sudo lvdisplay /dev/vgubuntu/root
--- Logical volume ---
LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID LT8yIJ-D6kz-BAro-MQMP-nQO9-UfrD-jeZ90n
LV Write Access read/write
LV Creation host, time ubuntu, 2025-08-02 10:32:23 +0900
LV Status available
# open 1
LV Size 37.50 GiB
Current LE 9600
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
6. ファイルシステムの拡張
ディスクとしては拡張できたが、ファイルシステムとしては拡張されている領域すべてを認識していないため識別させる。
ubuntu@develop:~$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 387M 1.9M 386M 1% /run
/dev/mapper/vgubuntu-root ext4 18G 9.2G 7.0G 57% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 vfat 512M 6.1M 506M 2% /boot/efi
tmpfs tmpfs 387M 80K 387M 1% /run/user/128
tmpfs tmpfs 387M 68K 387M 1% /run/user/1000
ubuntu@develop:~$ sudo resize2fs /dev/mapper/vgubuntu-root
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/vgubuntu-root is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/mapper/vgubuntu-root is now 9830400 (4k) blocks long.
ubuntu@develop:~$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 387M 1.9M 386M 1% /run
/dev/mapper/vgubuntu-root ext4 37G 9.2G 26G 27% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 vfat 512M 6.1M 506M 2% /boot/efi
tmpfs tmpfs 387M 80K 387M 1% /run/user/128
tmpfs tmpfs 387M 68K 387M 1% /run/user/1000
無事に/dev/mapper/vgubuntu-root
のサイズ拡張ができた。