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

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 EC2 存储空间扩容

  • AWS 后台扩容硬盘
  • 使用 growpart 命令进行分区扩容
  • 文件系统扩容

提示: growpart 是一个shell脚本,脚本里面调用的是sfdisk(dos)和sgdisk(gpt)命令。

posted @ 2022-09-22 14:05  武平宁  阅读(790)  评论(0)    收藏  举报