问题现象
云盘的分区格式为GPT,云盘进行云盘容量扩容后,使用growpart工具扩展分区(例如/dev/vdb1)或者文件系统时提示如下所示的报错信息,导致云盘容量扩容了但是分区和文件系统的可用空间没有增加。本文以/dev/vdb1分区为例进行说明。
[root@ixxx ~]# growpart /dev/vdb 1
failed [pt_update:1] pt_update /dev/vdb 1
partx: /dev/vdb: error updating partition 1
FAILED: disk=/dev/vdb partition=1: failed to repartition
***** WARNING: Resize failed, attempting to revert ******
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
***** Appears to have gone OK ****
可能原因
初始化数据盘(例如/dev/vdb)时,未按推荐的分区对齐方式进行分区,即未按要求执行mkpart primary 1 100%命令设置分区的开始位置和结束位置。
您可以执行以下命令查看分区是否对齐:
-
fdisk -l:查看Start值是否为2048。如果不是,表示分区未对齐。 -
parted -l:查看Start值是否1049 kB。如果不是(如下所示),表示分区未对齐。[root@izxxx ~]# parted -l Model: Virtio Block Device (virtblk) Disk /dev/vda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 101MB 99.6MB fat16 EFI System Partition boot 2 101MB 20.1GB 20.0GB ext4 Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3221GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 1074GB 1074GB ext4 primary
解决方案
您可以参考以下步骤,重新分区后再扩展分区,解决上述问题。
-
远程连接ECS实例。
具体操作,请参见选择ECS远程连接方式。
-
执行以下命令,查看etc/fstab中/dev/vdb1的分区信息。
cat /etc/fstab例如/dev/vdb1分区的信息如下所示。
[root@iZxxx ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Mar 18 11:23:53 2022 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=1ecad39c-b7f6-4d5f-bfe1-2ffec1877a1d / ext4 defaults 1 1 UUID=B483-4E9C /boot/efi vfat umask=0077,shortname=winnt 0 0 UUID=f315122e-2d1d-4705-aaaa-1ad62ae66096 /mnt ext4 defaults 0 0 -
执行以下命令,编辑etc/fstab文件,然后手动删除已查询到的/dev/vdb1的分区信息。
vim /etc/fstab -
执行以下命令,卸载分区/dev/vdb1。
umount /dev/vdb1[root@xxx ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 31G 0 31G 0% /dev tmpfs 31G 0 31G 0% /dev/shm tmpfs 31G 33M 31G 1% /run tmpfs 31G 0 31G 0% /sys/fs/cgroup /dev/vda2 19G 3.5G 14G 21% / /dev/vda1 95M 12M 84M 12% /boot/efi tmpfs 6.2G 0 6.2G 0% /run/user/0 /dev/vdb1 985G 77M 935G 1% /mnt [root@xxx ~]# umount /dev/vdb1 [root@xxx ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 31G 0 31G 0% /dev tmpfs 31G 0 31G 0% /dev/shm tmpfs 31G 33M 31G 1% /run tmpfs 31G 0 31G 0% /sys/fs/cgroup /dev/vda2 19G 3.5G 14G 21% / /dev/vda1 95M 12M 84M 12% /boot/efi tmpfs 6.2G 0 6.2G 0% /run/user/0 -
重新分区并挂载文件系统。
重要重新分区会丢失原分区的数据,请您提前创建快照备份云盘上的所有数据,待重新分区并挂载文件系统完成后,您可以通过备份数据恢复原云盘。创建快照的具体操作,请参见手动创建单个快照。
具体操作,请参见初始化数据盘(Linux)。
-
重新扩容分区及文件系统。
该文章对您有帮助吗?