Comment déterminer la nouvelle taille de resize2fs?

22

Je veux réduire un système de fichiers ext4 pour faire de la place pour une nouvelle partition et suis tombé sur le resize2fsprogramme. La commande ressemble à ceci:

resize2fs -p /dev/mapper/ExistingExt4 $size

Comment déterminer $sizesi je souhaite soustraire exactement 15 Gio du système de fichiers ext4 actuel? Puis-je utiliser la sortie de dfquelque façon?

Lekensteyn
la source

Réponses:

39

Vous ne devez pas l'utiliser dfcar il affiche la taille indiquée par le système de fichiers (dans ce cas, ext4).

Utilisez la dumpe2fs -h /dev/mapper/ExistingExt4commande pour connaître la taille réelle de la partition. L' -hoption permet d' dumpe2fsafficher les informations de super bloc sans beaucoup d'autres détails inutiles. À partir de la sortie, vous avez besoin du nombre de blocs et de la taille des blocs .

...  
Nombre de blocs:               19506168  
Nombre de blocs réservés: 975308  
Blocs libres: 13750966  
Inodes libres: 4263842  
Premier bloc: 0  
Taille du bloc:                4096  
...

La multiplication de ces valeurs donnera la taille de la partition en octets . Les nombres ci-dessus se trouvent être un multiple parfait de 1024:

$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0

Puisque vous souhaitez réduire la partition de 15 Gio (soit 15 Mio fois 1 Kio):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'
62296032.0

Comme resize2fsaccepte plusieurs types de suffixes, l'un d'eux étant Kpour "1024 octets", la commande pour réduire la partition à 62296032 Kio devient:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

Sans unité, le nombre sera interprété comme un multiple de la taille de bloc du système de fichiers (4096 dans ce cas). Voir man resize2fs (8)

Lekensteyn
la source
3
man resize2fs: facultativement, le paramètre de taille peut être suffixé par l'un des désignateurs d'unités suivants: 's', 'K', 'M' ou 'G', pour des secteurs de 512 octets, kilo-octets, mégaoctets ou gigaoctets, respectivement . Peut être plus simple que de faire des calculs de blocs.
lkraav
1
Ne manquez-vous pas un kat resize2fs -p /dev/mapper/ExistingExt4 62296032?
Sopalajo de Arrierez
@SopalajodeArrierez Vous avez raison, Kil manquait une capitale . Sans cette lettre, resize2fs devrait se plaindre dans mon cas car la taille est plus grande que le disque réel.
Lekensteyn
2
dumpe2fsne signale pas la taille de la partition; il indique vraiment la taille du système de fichiers. (Ce qui est bien, car c'est probablement ce que vous voulez.)
Mehrdad