Je travaille beaucoup avec des nachines virtuelles. En fait, la plupart de mes serveurs sont des machines virtuelles (la dernière fois que j'ai compté, il y avait environ 100vms) fonctionnant sur quatre serveurs physiques et quelques SAN/NAS. Parfois, vous -ou celui qui a demandé la machine- sous-estimez les ressources matérielles nécessaires. Ou tout simplement au bout d'un moment vous vous retrouvez avec un joli "Filesystem full " Erreur.
Dans cet article, je vais montrer comment redimensionner une partition et développer le système de fichiers pour obtenir plus d'espace libre.
Présomption
Je vais supposer que vous avez déjà de l'espace libre sur votre disque, il peut s'agir de :
- Votre FreeBSD est sur un disque physique, mais vous n'avez pas assigné le disque entier (peut-être pour un dualboot avec un autre système d'exploitation) au moment de l'installation.
- Vous avez décidé que vous n'aviez plus besoin de l'échange (c'est-à-dire que vous avez ajouté de la mémoire RAM supplémentaire) et que vous souhaitez attribuer ces Go à votre système de fichiers.
- Vous pouvez développer le disque dur virtuel de votre machine virtuelle FreeBSD. C'est mon cas, en ce moment je travaille avec VirtualBox, mais je sais qu'au moins VMware, Xen, et gnome-boxes (kvm je pense) permettent de redimensionner les images disque. Assurez-vous simplement que le disque virtuel n'est pas utilisé avant le redimensionnement.
- Tout autre moyen de disposer d'espace disponible sur votre disque à distribuer
Faisons-le
Assurez-vous que votre disque n'est pas utilisé. Démontez toutes les partitions si vous le pouvez et désactivez le swap s'il réside sur le disque que vous souhaitez modifier.
Je ne peux pas démonter car je n'ai créé qu'une seule grande partition pour l'ensemble du système, je vais donc utiliser l'image du CD d'installation de FreeBSD pour démarrer la VM et travailler en mode live-cd :
Corrigez la table de partition
Listez d'abord toutes les partitions du disque pour voir la configuration actuelle :
# gpart show ada0
=> 40 33554352 ada0 GPT (17G) [CORRUPT]
34 1024 1 freebsd-boot (512K)
1064 25164800 2 freebsd-ufs (12G)
25165864 8388528 3 freebsd-swap (4.0G)
Remarquez le [Corrompu] que j'ai surligné en rouge. L'image disque est correcte, mais en utilisant le schéma GPT, la table de partition de sauvegarde n'est plus à la fin du lecteur. Corrigez la table de partition avec gpart recover :
# gpart recover
ada0 recovered
# gpart show ada0
=> 40 356541504 ada0 GPT (17G) [CORRUPT]
34 1024 1 freebsd-boot (512K)
1064 25164800 2 freebsd-ufs (12G)
25165864 8388528 3 freebsd-swap (4.0G)
33554392 2097152 - freebsd - (1.0G)
Supprimez la partition d'échange et redimensionnez la partition
Attends, pourquoi ? La partition swap ne contient que des données temporaires. De plus, les partitions ne peuvent être redimensionnées que dans un espace libre contigu et nous n'avons pas d'espace libre après la partition. N'oubliez pas de laisser de la place pour recréer une partition de swap plus tard.
# gpart delete -i 3 ada0
ada0p3 deleted
# gpart resize -i 2 -s 14G -a 4k ada0
ada0p2 resized
Les drapeaux signifient :-i index, ou le numéro de partition; -taille ; et -a 4k contrôle l'alignement.
Remarque :Vous verrez probablement des erreurs étranges, nous reviendrons plus tard
Nous pouvons maintenant recréer la partition d'échange dans l'espace restant, ce que je fais un peu plus petit.
# gpart add -t freebsd-swap -a 4k ada0
ada0p3 added
Listez toutes les partitions pour voir notre nouvelle configuration avec gpart show :
Développez et vérifiez le système de fichiers
Les dernières tâches restantes sont la croissance du système de fichiers UFS :
# growfs /dev/da0p2
Et enfin, vérifiez le système de fichiers avec fsck. Ce n'est pas obligatoire, mais fortement recommandé, surtout si vous avez des erreurs comme celles sur ma capture d'écran :
# fsck -y /dev/da0p2
Vous savez maintenant comment redimensionner une partition et développer un système de fichiers.
Redémarrez si vous travailliez avec un live-cd ou remontez la partition affectée et continuez avec plus d'espace libre.
Derniers mots
Vous pouvez redimensionner un système de fichiers monté si vous le désactivez temporairement… mais ne le faites pas, ne le faites pas. Il est toujours préférable de perdre quelques minutes, voire des heures, à réorganiser vos données plutôt que de perdre vos données en quelques minutes.
Si vous utilisez des partitions MBR, la syntaxe est légèrement différente en raison du schéma de partition et des "tranches".
Sur les grands systèmes de fichiers, fsck peut durer très longtemps. Envisagez de migrer vers zfs et d'ajouter des disques individuels au raid z.
FreeBSD a un excellent manuel, vous pouvez en apprendre plus sur la gestion du stockage ici :https://docs.freebsd.org/en/books/handbook/disks/. Le système de fichiers ZFS a son propre chapitre ici https://docs.freebsd.org/en/books/handbook/zfs/