KVM 硬盘分区扩容(GPT与MBR两种分区、fdisk 与 growpart两种方法)
因为认知顺序的原因,之前我都是用fdisk
命令手工删除分区表后重建进行扩容,后面才发现可以用growpart
命令。
实战建议直接点 AWS EC2 存储空间扩容 跳转过去参考,学习操作可以继续往下看。
- 注意,
fdisk
命令要选择硬盘,不能选择硬盘分区
宿主机上为虚拟机硬盘增加容量
- 虚拟机内查看,分区情况如下
注意,sda1 必须占满硬盘后面的所有空间(最后34个扇区,是GPT分区的备用区块,不能动)
补充,Disklabel type:gpt
是GPT,dos
是MBR。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.2T 0 disk
├─sda1 8:1 0 1.2T 0 part /
└─sda128 259:0 0 1M 0 part
[ec2-user@vm01 ~]$ sudo fdisk -l /dev/sda
Disk /dev/sda: 1.2 TiB, 1288490188800 bytes, 2516582400 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
Disklabel type: gpt
Disk identifier: 7C9DB885-1EE6-40CC-A4CA-FCFCF17D17DE
Device Start End Sectors Size Type
/dev/sda1 4096 2516582366 2516578271 1.2T Linux filesystem
/dev/sda128 2048 4095 2048 1M BIOS boot
- 宿主机上扩容(须关闭虚拟机)
qemu-img resize amzn2-kvm-2.0.20220719.0-x86_64.xfs.gpt.qcow2 +1000G
- 宿主机上动态扩容(无须关闭虚拟机)
参考:https://www.cnblogs.com/dewan/p/16843601.html
GPT格式分区扩容
- 虚拟机内操作
# 由于扩容了分区,GPT分区的备份区块需要重新到最后面,命令如下
parted -l
fix
fix
# 然后fdisk 调整分区,只调整分区信息,不会删硬盘上数据
fdisk /dev/sda
打印分区信息 -- p
删除分区 -- d
选择分区 -- 1
创建分区 -- n
指定分区 -- 1
指定分区开始扇区 -- enter默认
指定分区结束扇区 -- enter默认
提示是否删除xfs文件系统标记 -- n
检查分区情况 -- p
保存退出 -- w
# 更新一下内核记录
partprobe
# 最后扩展一下原分区上的文件系统
xfs_growfs /
MBR格式分区扩容
- 虚拟机内操作
# 查看硬盘情况
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1 259:0 0 350G 0 disk
└─nvme1n1p1 259:1 0 300G 0 part /data
# fdisk 调整分区,只调整分区信息,不会删硬盘上数据
fdisk /dev/nvme1n1
打印分区信息 -- p
删除分区 -- d
创建分区 -- n
选择主分区类型 -- p
指定分区 -- enter默认
指定分区开始扇区 -- enter默认
指定分区结束扇区 -- enter默认
提示是否删除ext4文件系统标记 -- n
检查分区情况 -- p
保存退出 -- w
# 更新一下内核记录
partprobe
# 最后扩展一下原分区上的文件系统
resize2fs /dev/nvme1n1p1
附录
AWS EC2 存储空间扩容方法
- AWS 后台扩容硬盘
- 使用
growpart
命令进行分区扩容 - 文件系统扩容
提示: growpart 是一个shell脚本,脚本里面调用的是sfdisk
(dos)和sgdisk
(gpt)命令。