Le système de fichiers de FreeBSD est particulier et nécessite quelques précautions. Contrairement à un système de fichiers classique, le système de fichiers des BSD se divise en partitions puis en sous partitions. FreeBSD utilise le modèle de partitions GPT et un framework GEOM afin de gérer ces partitions. Chaque partition GPT est composée d’un bsdlabel contenant les partitions réelles. On a ainsi le modèle suivant:
Dans un environnement virtualisé on peut être amené à étendre un disque pour diverses raisons. Dans un premier temps, agrandissez le disque systèmevia votre système de virtualisation favori. Ensuite, démarrez sur un CD d’installation de FreeBSD et passez en mode shell.
La première étape consiste à agrandir vos slices GPT. Si vous n’avez qu’un slice, cela se fait simplement (autrement il faudra utiliser un second disque où placer les slices qui suivent celui que vous voulez agrandir). Tout d’abord vérifions les disques et slices GPT présents:
# gpart show
=> 63 31457217 da0 GPT (50G)
63 31455207 1 freebsd [active] (15G)
31455270 73402330 - free - (35G)
=> 0 31455207 da0s1 BSD (15G)
0 30055207 1 freebsd-ufs (14G)
30055207 1400000 2 freebsd-swap (683M)
La partition swap va nous ennuyer. On la supprime:
# gpart delete -i 2 da0s1
Maintenant redimensionnons la partition GPT afin d’utiliser l’ensemble du disque
# gpart resize -i 1 da0
# gpart show
=> 63 104857537 da0 MBR (50G)
63 104857515 1 freebsd [active] (50G)
104857578 22 - free - (11k)
Agrandir le filesystem est plus délicat. Dans un premier temps on agrandit le slice à la taille stipulée dans la MBR
# growfs da0s1
# gpart show
=> 63 104857537 da0 MBR (50G)
63 104857515 1 freebsd [active] (50G)
104857578 22 - free - (11k))
=> 0 104857515 da0s1 BSD (15G)
0 30055207 1 freebsd-ufs (14G)
30055207 74802308 - free - (35G)
Ensuite on termine en agrandissant de le filesystem UFS
# gpart resize -i 1 da0s1
# gpart show
=> 63 104857537 da0 MBR (50G)
63 104857515 1 freebsd [active] (50G)
104857578 22 - free - (11k)
=> 0 104857515 da0s1 BSD (50G)
0 104857515 1 freebsd-ufs (50G)