Skip to content

Linux KVM 磁盘在线扩容后,磁盘大小未生效问题解决

AI 摘要

本文记录了 Linux KVM 环境下磁盘在线扩容后,操作系统未识别新增空间的解决方案。问题表现为 df 命令显示磁盘空间不足,而 lsblk 已识别扩容后的总容量。通过 resize2fs 命令对 ext4 文件系统进行在线调整,无需重启即可使系统识别实际磁盘大小,最终将可用空间从 346M 扩展至 17G,使用率从 88% 降至 13%。

问题背景

  • 磁盘存在剩余空间,但提示剩余空间不足,且使用 df 命令查看时,磁盘空间确实不足。
  • 该问题一般发生在,KVM 磁盘动态扩容后。

问题表现

bash
rabbit2002@cloud:~/codespace$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1 1024M  0 rom
vda    254:0    0   20G  0 disk
└─vda1 254:1    0   20G  0 part /

rabbit2002@cloud:~/codespace$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  938M     0  938M   0% /dev
tmpfs          tmpfs     192M  408K  192M   1% /run
/dev/vda1      ext4      2.9G  2.4G  346M  88% /
tmpfs          tmpfs     960M     0  960M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     192M     0  192M   0% /run/user/1000

问题解决

  • 使用resize2fs 命令,重载本地磁盘空间大小。该操作不需要重启,执行完成后,磁盘空间变为实际分配物理磁盘大小。
bash
rabbit2002@cloud:~/codespace$ sudo resize2fs /dev/vda1
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 3
The filesystem on /dev/vda1 is now 5242336 (4k) blocks long.

rabbit2002@cloud:~/codespace$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  938M     0  938M   0% /dev
tmpfs          tmpfs     192M  408K  192M   1% /run
/dev/vda1      ext4       20G  2.4G   17G  13% /
tmpfs          tmpfs     960M     0  960M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     192M     0  192M   0% /run/user/1000