备忘录: libvirt qemu虚拟机硬盘 扩容


1.扩容 qcow2 虚拟硬盘

在虚拟机宿主系统上
进入虚拟机硬盘目录
查看虚拟硬盘信息

qemu-img info arch.qcow2

扩容 qcow2

qemu-img resize arch.qcow2 +256G

2.启动客户虚拟机,扩容分区

查看分区

df -hT
# output
#
# Filesystem     Type      Size  Used Avail Use% Mounted on
# dev            devtmpfs   32G     0   32G   0% /dev
# run            tmpfs      32G  1.3M   32G   1% /run
# efivarfs       efivarfs  256K  102K  150K  41% /sys/firmware/efi/efivars
# /dev/vda2      xfs       255G   56G  200G  22% /
# tmpfs          tmpfs      32G     0   32G   0% /dev/shm
# tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
# tmpfs          tmpfs      32G   24K   32G   1% /tmp
# /dev/vda1      vfat     1022M  156M  867M  16% /boot
# tmpfs          tmpfs     6.3G   56K  6.3G   1% /run/user/1000

可以看到我们需要扩容的分区为/dev/vda2

安装cloud-guest-utils

# Debian/Ubuntu
apt install cloud-guest-utils

# Arch linux
pacman -S cloud-guest-utils

扩容分区

 sudo growpart /dev/vda 2
# output
#
# CHANGED: partition=2 start=2099200 old: size=534769664 end=536868863 new: size=1071642591 end=1073741790

查看扩容结果

lsblk
# output
#
# NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
# zram0  253:0    0    4G  0 disk [SWAP]
# vda    254:0    0  512G  0 disk
# ├─vda1 254:1    0    1G  0 part /boot
# └─vda2 254:2    0  511G  0 part /

3.扩容文件系统

由于使用的文件系统为xfs,所以我们使用xfs的工具为文件系统扩容

sudo xfs_growfs /
# output
#
# meta-data=/dev/vda2              isize=512    agcount=4, agsize=16711552 blks
#          =                       sectsz=512   attr=2, projid32bit=1
#          =                       crc=1        finobt=1, sparse=1, rmapbt=1
#          =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
#          =                       exchange=0   metadir=0
# data     =                       bsize=4096   blocks=66846208, imaxpct=25
#          =                       sunit=0      swidth=0 blks
# naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=0
# log      =internal log           bsize=4096   blocks=32639, version=2
#          =                       sectsz=512   sunit=0 blks, lazy-count=1
# realtime =none                   extsz=4096   blocks=0, rtextents=0
#          =                       rgcount=0    rgsize=0 extents
#          =                       zoned=0      start=0 reserved=0
# data blocks changed from 66846208 to 133955323

查看扩容结果

df -hT
# output
#
# Filesystem     Type      Size  Used Avail Use% Mounted on
# dev            devtmpfs   32G     0   32G   0% /dev
# run            tmpfs      32G  1.3M   32G   1% /run
# efivarfs       efivarfs  256K  102K  150K  41% /sys/firmware/efi/efivars
# /dev/vda2      xfs       511G   61G  451G  12% /
# tmpfs          tmpfs      32G     0   32G   0% /dev/shm
# tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
# tmpfs          tmpfs      32G   24K   32G   1% /tmp
# /dev/vda1      vfat     1022M  156M  867M  16% /boot
# tmpfs          tmpfs     6.3G   56K  6.3G   1% /run/user/1000

4. 使用LVM的客户系统

使用LVM的客户系统不适用上文描述的过程