qcow2 のディスクをリサイズ(拡大)
お急ぎの場合
DISK=/var/lib/libvirt/images/ubuntu-2404.qcow2 qemu-img info $DISK qemu-img resize -f qcow2 $DISK +10G virt-sparsify --in-place $DISK
nbdを使ってgidks で処理すると確実です。
nbdを使う。
はじめに、qcow2 をリサイズ。
DISK=/var/lib/libvirt/images/ubuntu-2404.qcow2 qemu-img info $DISK qemu-img resize -f qcow2 $DISK +10G
nbd をロードする。
sudo modprobe nbd max_part=8
nbd 二接続する
sudo qemu-nbd --connect=/dev/nbd0 $DISK
必要に応じて、GPTを再構成
ディスクのサイズ変更が反映されないときは、gidks を起動して何もせずにWを書く。
または、GPTを再構成する。
sudo gidisk /dev/nbd0
GPTの再構成をしないとqcow2 のサイズ変更が反映されない。(USBメモリでDDしたときと同じ)
nbd を確認する。
takuya@:~$ lsblk /dev/nbd0 NAME SIZE FSAVAIL FSUSE% FSTYPE nbd0 30G ├─nbd0p1 1M ├─nbd0p2 1.8G ext4 └─nbd0p3 8.2G LVM2_member └─ubuntu--vg-ubuntu--lv 8.2G ext4
パーティションを操作する
LVMにはメタデータが含まれる
LVMのパーティションサイズ=実サイズ+LVMメタデータサイズ
メタデータのサイズを確認する
sudo pvck /dev/nbd0p3 Found label on /dev/nbd0p3, sector 1, type=LVM2 001 Found text metadata area: offset=4096, size=1044480
メタデータがsize=1044480であるとわかる。
20GB確保するなら次の通り
LVMはPEで設定するので、PE(4x10242)になるので、20GBはPE幾つ分かをみておきます
ちなみに、1PE=4Mib
です。
20*1024**3/(4*1024*1024)=5120PE
PEのサイズが5120である。
現在のPEサイズを確認すると、2111PEだとわかる。
takuya@:~$ sudo pvdisplay /dev/nbd0p3 --- Physical volume --- PV Name /dev/nbd0p3 VG Name ubuntu-vg PV Size <8.25 GiB / not usable 0 Allocatable yes (but full) PE Size 4.00 MiB Total PE 2111 Free PE 0 Allocated PE 2111
反映する。
sudo pvck /dev/nbd0p3
あとは、通常のリサイズと同じ
sudo vgs ubuntu-vg sudo lvresize ubuntu-vg/ubuntu-lv --resizefs -l +100%FREE sudo lvs
後片付け
sudo dmsetup ls sudo dmsetup remove ubuntu--vg-ubuntu--lv sudo qemu-nbd --disconnect /dev/nbd0 sudo lsblk sudo modprobe nbd max_part=8
再起動
sudo virtsh start $NAME --console