Sur mon serveur intranet, j'ai une partition / dev / sda5 de 100,00 Gio, que j'utilise comme volume physique pour lvm2.
- C'est le seul volume physique de mon groupe de volumes vg01.
- vg01 contient actuellement un volume logique lv01, utilisant l'intégralité de 100,00 Gio - enfin, en fait 99,99 Gio en raison d'un certain arrondi (c'est là que le problème commence).
- lv01 contient un système de fichiers ext3, utilisant tout l'espace.
Je veux réduire lv01 à environ 97 Gio, donc je peux créer lv02 avec env. 3 Gio (j'en ai besoin pour prendre des instantanés lvm).
Ce que j'ai fait jusqu'à présent:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Cela a bien fonctionné. Mais maintenant je vais devoir courir
lvreduce --size ? /dev/mapper/vg01-lv01
Et je ne sais pas quelle valeur exacte je devrai spécifier. La lvreduce
page de manuel avertit explicitement que la taille résultante ne doit pas être inférieure au système de fichiers. Je ne veux pas non plus l'agrandir. Mais maintenant, j'ai des chiffres différents:
- J'ai spécifié
97G
dans resize2fs. df -h
dit, c'est 96 G.df
dit, c'est 100115936 blocs 1K.- lvdisplay (bien sûr) rapporte toujours 99,99 Gio pour le volume logique.
Que dois-je spécifier lvreduce
?
Éditer:
La réponse actuellement acceptée fournit une bonne solution de contournement. Cependant, afin d'intégrer de telles choses dans des scripts solides, etc., je préférerais généralement utiliser des mesures précises à la place. Ou peut-être existe-t-il déjà un script ou un outil fiable (!) Qui exécute la procédure de redimensionnement en une seule étape?
resize2fs
pour réduire le système de fichiers à 90 Go environ, puis fouiller avec des arguments pourlvreduce
(suivi deresize2fs
) pour voir ce qui fonctionne le mieux.