Agrandir un disque VirtualBox

Logo Virtualbox

L’autre jour, je me suis retrouvé bloqué avec une machine virtuelle sous Debian Testing : écran noir après le login, la souris fonctionne, mais ça s’arrête là. En fait mon disque dur virtuel était plein, et il a fallu démarrer en recovery mode, me logguer en root, et faire de la place dans le répertoire home de mon utilisateur pour régler le problème.

Restait à étendre le disque pour pouvoir télécharger ce que je voulais, et comme j’ai un peu galéré pour ce faire, je fais un petit article explicatif. Je suis sous Ubuntu 16.04, et j’utilise la version 5.0.40 de VirtualBox, celle livrée et maintenue par Ubuntu.

Quand on crée une machine virtuelle (VM) avec VirtualBox, la taille du disque virtuel est gérée dynamiquement : comme il s’agit d’un fichier (qui va donc occuper de la place sur le disque dur de votre PC), la taille de ce fichier va être réduite au stricte nécessaire afin d’éviter d’allouer sa taille maximum sans en avoir réellement besoin.

Ceci est expliqué dans la fenêtre suivante lors de la création de la VM :

Sauf que le disque a tout de même une taille maximum de définie lors de sa création. Par défaut, pour une machine Ubuntu, elle est établie à 8 Go (pour Windows, c’est 25 Go) :

Et cette taille ne pourra pas être agrandie de manière dynamique, il faudra intervenir manuellement pour étendre ce disque. Allons-y !

Il faut bien sûr commencer par éteindre la VM (un vrai arrêt, pas de mise en veille ou de choses comme ça). Ensuite, il faut ouvrir un terminal dans le dossier contenant la machine virtuelle : dans le répertoire Machines, on doit voir un fichier avec l’extension .vdi : c’est notre disque virtuel. Deux commandes sont utiles, VBoxManage showhdinfo mondisque.vdi pour visualiser la taille actuelle, et VBoxManage modifyhd mondisque.vdi –resize XXXXX pour redimensionner le disque.

Ce qui donne ceci, pour redimensionner le disque appelé « Clone de Debian Testing.vdi » (vous verrez pourquoi c’est un clone tout à l’heure). Ici, je le fais passer de 24 Go à 48 Go (ça ne rigole pas ! de toutes façons, rappelez-vous, c’est la taille maximum, et seule la taille nécessaire sera réellement alloué sur le disque dur de votre PC ) :

Jusque là, c’est plutôt simple, on s’attend à simplement redémarrer la VM et trouver le nouveau disque avec sa nouvelle taille ! Hélas, ce n’est pas le cas, si vous redémarrez, rien n’a changé. Une nouvelle partition a bien été créée, mais une étape supplémentaire est requise pour pouvoir l’utiliser.

Il va falloir démarrer sur le cd-rom de la VM après y avoir attaché l’image .iso d’un live CD comme par exemple celui de gparted pour pouvoir re-partitionner le disque. Une fois le fichier .iso téléchargé, on l’attache donc au cdrom de la VM :

Puis on démarre la VM. Elle démarre automatiquement sur le cdrom, GParted est lancé automatiquement, et vous affiche le disque de votre VM :

On voit bien le nouvel espace « non alloué », mais un click droit sur sda1 pour étendre la partition ne nous permet pas de l’étendre en utilisant ce nouvel espace : en effet, la partition linux-swap nous en empêche ! Qu’à cela ne tienne, il va falloir la supprimer, étendre sda1, puis la recréer : GParted faisant les opérations dans l’ordre et séquentiellement, il faut donc définir des trois tâches, puis cliquer sur le bouton « Apply » :

Et voilà, c’est terminé. Il suffit maintenant de redémarrer votre VM pour pouvoir profiter du nouvel espace disque :

Clone

Pourquoi ai-je fait la manipulation sur un clone ? En fait, lors de la première modification de la taille du disque (de 8 Go à 24 Go), j’avais pris un « instantané » de la VM au cas où la re-partitionnement se passerait mal (précaution utile sur ce genre d’opération, on n’est jamais à l’abri). Tout s’était bien passé.

Mais lorsque j’ai voulu augmenter à nouveau la taille de mon disque, si les commandes VBoxManage passaient bien, impossible de voir la nouvelle partition en démarrant sur GParted Live. J’ai alors voulu supprimer l’instantané, mais l’opération n’aboutissait pas, j’avais des messages d’erreur systématiquement (genre NS_ERROR_CALL_FAILED).

J’ai fini par faire un Clone (un Clone intégral, pour être totalement séparé de l’original). Une fois ceci fait, j’ai pu démarrer sur GParted Live, et agrandir la partition de ma VM. Maintenant que tout fonctionne, je peux supprimer la première VM (celle qui a servi à faire le Clone), renommer l’actuelle, et voilà !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *