Ext4 resize常見錯誤處理
Ext4是一種廣泛使用的文件系統(tǒng),它支持在線和離線擴(kuò)容,以及離線縮容以適應(yīng)存儲需求的變化。然而,在擴(kuò)展Ext4文件系統(tǒng)的過程中,用戶可能會遇到一些常見的錯誤和問題。本文將以磁盤/dev/vdb
為例介紹如何識別和處理這些錯誤,以確保文件系統(tǒng)的擴(kuò)容操作順利進(jìn)行。
resize2fs: Bad magic number in super-block while trying to open /dev/vdb
問題現(xiàn)象
執(zhí)行resize2fs
命令。
sudo resize2fs /dev/vdb
返回如下錯誤:
resize2fs: Bad magic number in super-block while trying to open /dev/vdb
Couldn't find valid filesystem superblock.
問題原因
該錯誤表示指定擴(kuò)容的設(shè)備,如示例中的/dev/vdb
,不是Ext4文件系統(tǒng)格式。
解決方案
檢查設(shè)備的文件系統(tǒng),確保為Ext4文件系統(tǒng)類型。
lsblk --fs /dev/vdb
resize2fs: Device or resource busy while trying to open /dev/vdb
問題現(xiàn)象
執(zhí)行resize2fs
命令。
sudo resize2fs /dev/vdb
返回如下錯誤:
resize2fs: Device or resource busy while trying to open /dev/vdb
Couldn't find valid filesystem superblock.
問題原因
該錯誤一般發(fā)生在待擴(kuò)容的文件系統(tǒng)對應(yīng)設(shè)備是分區(qū)的場景。如用戶直接針對/dev/vdb
執(zhí)行resize2fs
擴(kuò)容,但文件系統(tǒng)實(shí)際位于分區(qū)/dev/vdb1
,將報上述錯誤。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 253:16 0 100G 0 disk
└─vdb1 253:17 0 50G 0 part
解決方案
擴(kuò)容分區(qū)。
sudo growpart /dev/vdb 1
成功則返回信息如下:
CHANGED: partition=1 start=2048 old: size=104855552 end=104857599 new: size=209713119 end=209715166
擴(kuò)容文件系統(tǒng)。
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!
問題現(xiàn)象
執(zhí)行resize2fs
命令。
sudo resize2fs /dev/vdb1
返回如下錯誤:
The filesystem is already 13106944 (4k) blocks long. Nothing to do!
問題原因
該錯誤一般發(fā)生在待擴(kuò)容的文件系統(tǒng)對應(yīng)設(shè)備是分區(qū)的場景。如用戶直接針對/dev/vdb1
執(zhí)行resize2fs
擴(kuò)容,將報上述錯誤。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 253:16 0 100G 0 disk
└─vdb1 253:17 0 50G 0 part
解決方案
擴(kuò)容分區(qū)。
sudo growpart /dev/vdb 1
成功則返回信息如下:
CHANGED: partition=1 start=2048 old: size=104855552 end=104857599 new: size=209713119 end=209715166
擴(kuò)容文件系統(tǒng)。
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
問題現(xiàn)象
執(zhí)行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僅支持離線縮容,不支持在線縮容。
解決方案
確認(rèn)設(shè)備是否已經(jīng)掛載。
mount | grep /dev/vdb
卸載文件系統(tǒng)。
sudo umount /mnt/test
再次執(zhí)行
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
問題現(xiàn)象
執(zhí)行resize2fs
命令。
resize2fs /dev/vdb
返回如下錯誤:
resize2fs: Permission denied to resize filesystem
問題原因
該錯誤一般表示執(zhí)行resize2fs
操作需要CAP_SYS_RESOURCE權(quán)限,或者文件系統(tǒng)存在錯誤。
解決方案
使用
sudo
提升權(quán)限。
sudo resize2fs /dev/vdb
如果問題依舊存在,則檢查文件系統(tǒng)是否存在錯誤。
dmesg | grep "EXT4-fs"
如確認(rèn)文件系統(tǒng)存在錯誤,卸載文件系統(tǒng),執(zhí)行
fsck
。
sudo umount /mnt/test
sudo fsck -y /dev/vdb
再次執(zhí)行
resize2fs
命令進(jìn)行離線擴(kuò)容。
sudo resize2fs /dev/vdb