环境
KVM 虚拟主机,使用 .qcow2 作为镜像格式,比如下面这个虚拟磁盘
[root@vm-host]# qemu-img info rtzic19k.img
image: rtzic19k.img
file format: qcow2
virtual size: 128G (137438953472 bytes)
disk size: 528M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
从虚拟里面看是这样子的
[root@vm-guest]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 128G 1.2G 127G 1% /
devtmpfs 1.9G 0 1.9G 0% /dev
[root@vm-guest]# fdisk -l /dev/vda
Disk /dev/vda: 137.4 GB, 137438953472 bytes, 268435456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0007acc0
Device Boot Start End Blocks Id System
/dev/vda1 2048 4095 1024 82 Linux swap / Solaris
/dev/vda2 * 4096 268435455 134215680 83 Linux[root@vm-guest]$ mount
/dev/vda2 on / type xfs (rw,relatime,attr2,inode64,noquota)
我们的目标是将 /dev/vda2 的容量从 128G 调整为 256G,并且没有丢失任何数据
要注意的是,本方案只适合扩容磁盘中的最后一个分区,本例中即 /dev/vda2。
操作步骤
关闭虚拟机
[root@vm-guest]# shutdown now
对虚拟磁盘镜像文件进行扩容,注意,在宿主机上操作
[root@vm-host]# qemu-img resize rtzic19k.img +128G
Image resized.
[root@vm-host]# qemu-img info rtzic19k.img
image: rtzic19k.img
file format: qcow2
virtual size: 256G (274877906944 bytes)
disk size: 534M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
然后再次启动虚拟机,并登入,使用 fdisk 对 /dev/vda 重新分区
[root@vm-guest]# fdisk /dev/vda
Command (m for help): p
Disk /dev/vda: 274.9 GB, 274877906944 bytes, 536870912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0007acc0
Device Boot Start End Blocks Id System
/dev/vda1 2048 4095 1024 82 Linux swap / Solaris
/dev/vda2 * 4096 268435455 134215680 83 Linux
看到 /dev/vda 的容量已经发生变化,但是分区大小未发生变化,接下来删除 /dev/vda2 并重建分区,然后写入分区信息
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 is deleted
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (4096-536870911, default 4096): 4096
Last sector, +sectors or +size{K,M,G} (4096-536870911, default 536870911): 536870911
Partition 2 of type Linux and of size 256 GiB is set
Command (m for help): pDisk /dev/vda: 274.9 GB, 274877906944 bytes, 536870912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0007acc0
Device Boot Start End Blocks Id System
/dev/vda1 2048 4095 1024 82 Linux swap / Solaris
/dev/vda2 4096 536870911 268433408 83 LinuxCommand (m for help): w
The partition table has been altered!
注意 /dev/vda2 的 的 End, Block 值已改变,最后执行 xfs_growfs 调整 /dev/vda2 的文件系统容量
[root@vm-guest]# xfs_growfs /dev/vda2
# 省略若干输出
data blocks changed from 33553920 to 67108352
[root@vm-guest]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 256G 1.2G 255G 1% /
devtmpfs 1.9G 0 1.9G 0% /dev
调整完毕
网友评论