EXT4, augmentation à chaud et erreur de GDT

Selon les technologies de stockage que vous utilisez, il est possible d’augmenter à chaud la taille d’un disque d’une machine Linux.

Soit par LVM, soit parce que vous êtes sur une solution de virtualisation, ou d’autres solutions farfelues.

Si vous utilisez ext4 (le système de fichiers le plus « standard » sous Linux), la commande magique pour agrandir à chaud, c’est :

resize2fs /dev/mondevice

Vous avez un beau message indiquant :

Filesystem at /dev/vg/lv_home is mounted on /home; on-line resizing required...

Et si tout se passe bien,

The filesystem on /dev/vg/lv_home is now 319283200 blocks long.

Mais là, c’est le drame, car vous obtenez le cryptique message

resize2fs: Not enough reserved gdt blocks for resizing

Ou encore

resize2fs: permission denied to resize filesystem

Panique à bord ? Il faut tout recommencer ?

Pas du tout, la raison est simple, vous pouvez augmenter un disque, à chaud, jusqu’à une certaine limite, par exemple 1000x la taille initiale.

La limite dépend de beaucoup d’options qui sont calculées lors du formatage initial.

Dans ce cas, la seule solution c’est de démonter le système de fichier et de l’augmenter à froid.

Donc :

umount /home
e2fsck -f /dev/vg/lv_home
resize2fs /dev/vg/lv_home
mount /home

À noter que cette erreur ne se produit, normalement, plus avec des kernels récents.

Haut de page