Ext4是一种广泛使用的文件系统,它支持在线和离线扩容,以及离线缩容以适应存储需求的变化。然而,在扩展Ext4文件系统的过程中,用户可能会遇到一些常见的错误和问题。本文将以磁盘/dev/vdb为例介绍如何识别和处理这些错误,以确保文件系统的扩容操作顺利进行。
resize2fs: Bad magic number in super-block while trying to open /dev/vdb
问题现象
执行resize2fs命令。
sudo resize2fs /dev/vdb返回如下错误:
resize2fs: Bad magic number in super-block while trying to open /dev/vdb
Couldn't find valid filesystem superblock.问题原因
该错误表示指定扩容的设备,如示例中的/dev/vdb,不是Ext4文件系统格式。
解决方案
检查设备的文件系统,确保为Ext4文件系统类型。
lsblk --fs /dev/vdbresize2fs: Device or resource busy while trying to open /dev/vdb
问题现象
执行resize2fs命令。
sudo resize2fs /dev/vdb返回如下错误:
resize2fs: Device or resource busy while trying to open /dev/vdb
Couldn't find valid filesystem superblock.问题原因
该错误一般发生在待扩容的文件系统对应设备是分区的场景。如用户直接针对/dev/vdb执行resize2fs扩容,但文件系统实际位于分区/dev/vdb1,将报上述错误。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 253:16 0 100G 0 disk
└─vdb1 253:17 0 50G 0 part解决方案
扩容分区。
sudo growpart /dev/vdb 1成功则返回信息如下:
CHANGED: partition=1 start=2048 old: size=104855552 end=104857599 new: size=209713119 end=209715166扩容文件系统。
sudo resize2fs /dev/vdb1成功则返回信息如下:
resize2fs 1.46.0 (29-Jan-2020)
Filesystem at /dev/vdb1 is mounted on /mnt/test; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 13
The filesystem on /dev/vdb1 is now 26214139 (4k) blocks long.The filesystem is already 13106944 (4k) blocks long. Nothing to do!
问题现象
执行resize2fs命令。
sudo resize2fs /dev/vdb1返回如下错误:
The filesystem is already 13106944 (4k) blocks long. Nothing to do!问题原因
该错误一般发生在待扩容的文件系统对应设备是分区的场景。如用户直接针对/dev/vdb1执行resize2fs扩容,将报上述错误。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 253:16 0 100G 0 disk
└─vdb1 253:17 0 50G 0 part解决方案
扩容分区。
sudo growpart /dev/vdb 1成功则返回信息如下:
CHANGED: partition=1 start=2048 old: size=104855552 end=104857599 new: size=209713119 end=209715166扩容文件系统。
sudo resize2fs /dev/vdb1成功则返回信息如下:
resize2fs 1.46.0 (29-Jan-2020)
Filesystem at /dev/vdb1 is mounted on /mnt/test; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 13
The filesystem on /dev/vdb1 is now 26214139 (4k) blocks long.resize2fs: On-line shrinking not supported
问题现象
执行resize2fs命令。
sudo resize2fs /dev/vdb返回如下错误:
Filesystem at /dev/vdb is mounted on /mnt/test; on-line resizing required
resize2fs: On-line shrinking not supported问题原因
该错误表示Ext4仅支持离线缩容,不支持在线缩容。
解决方案
确认设备是否已经挂载。
mount | grep /dev/vdb卸载文件系统。
sudo umount /mnt/test再次执行
resize2fs命令。
sudo resize2fs /dev/vdb 50G成功则返回信息如下:
Resizing the filesystem on /dev/vdb to 13107200 (4k) blocks.
The filesystem on /dev/vdb is now 13107200 (4k) blocks long.resize2fs: Permission denied to resize filesystem
问题现象
执行resize2fs命令。
resize2fs /dev/vdb返回如下错误:
resize2fs: Permission denied to resize filesystem问题原因
该错误一般表示执行resize2fs操作需要CAP_SYS_RESOURCE权限,或者文件系统存在错误。
解决方案
使用
sudo提升权限。
sudo resize2fs /dev/vdb如果问题依旧存在,则检查文件系统是否存在错误。
dmesg | grep "EXT4-fs"如确认文件系统存在错误,卸载文件系统,执行
fsck。
sudo umount /mnt/test
sudo fsck -y /dev/vdb再次执行
resize2fs命令进行离线扩容。
sudo resize2fs /dev/vdb该文章对您有帮助吗?