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