問題現象
雲端硬碟的分區格式為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)。
-
重新擴容分區及檔案系統。