VirtualBox & vagrant not created : comment faire ?

 Cet article est le premier d’une série concernant Vagrant. Cet outil très puissant pour les développeurs recèle de nombreux secrets.

Il arrive dans certaines situations que vagrant perde un peu la tête… et notamment le suivi avec VirtualBox.

Par exemple cela peut arriver après avoir éteint la VM un peu trop violemment, ou éteint le pc sans éteindre la vagrant. On peut également remercier les redémarrages automatiques de windows 8 pour provoquer ce genre de situations.

Dans ce cas, vagrant status va indiquer « not created » avec le message complet suivant : The environment has not yet been created. Run `vagrant up` to create the environment. If a machine is not created, only the default provider will be shown. So if a provider is not listed, then the machine is not created for that environment.

Comment faire alors pour ne pas perdre les éventuelles données de test qu’on a si précieusement accumulé ? (Et qui sont importantes pour finir le dév comme convenu pour dans 2 heures).

En général dans cette situation, la machine virtuelle existe toujours sous virtualbox, mais vagrant semble ignorer complètement son existence. Et comme dans ses versions récentes, aller modifier les fichiers dans lesquels vagrant stocke l’association Vagrantfile <=> Machine virtuelle Virtualbox, est très compliqué et périlleux, ça semble peine perdue.

La meilleure des solutions est alors de jouer avec les disques de stockage VirtualBox.

Sauvegarder le disque actuel

Tout d’abord le mieux est d’ouvrir virtualbox et de repérer la box qu’on cherche à faire fonctionner.

Capture d'écran de 2015-09-16 17:20:30

Puis dans sa configuration, repérer l’emplacement du disque virtuel sur votre machine hôte (Stockage > Contrôleur IDE > Emplacement).

Capture d'écran de 2015-09-16 17:22:03

 

Il faut donc accéder à ce fichier et le copier dans un nouvel emplacement le temps des manips (je préfère ici la copie au déplacement, ça nous laisse une marge de manœuvre en cas d’erreur).

Il faut ensuite supprimer l’association entre ce fichier et la machine virtuelle existante. Sans cette étape, Virtualbox ne nous laissera pas l’ajouter à nouveau à une autre machine virtuelle.

La nouvelle box

On laisse ici vagrant recréer une nouvelle box toute neuve à partir du Vagrantfile grâce à la commande « vagrant up ». Une fois que cette étape est terminée, éteindre la box (« vagrant halt »).

Cette box est désormais fonctionnelle. Un « vagrant status » donnera « poweroff ».

Récupérer ses données

Pour récupérer ses données, retourner dans VirtualBox et cette fois repérer la nouvelle box. Accéder à sa configuration de la même manière que tout à l’heure et accéder au stockage.

Une fois l’emplacement déterminé, il faut y déplacer l’ancien disque récupéré précédemment.

Puis dans la configuration, faire un tour de passe-passe. Tout d’abord, supprimer le disque actuel (attention, le disque et pas le contrôleur). Cliquez ensuite sur l’icône « + » et choisir « Ajouter un disque dur » puis dans la nouvelle fenêtre « Choisir un disque existant ».

Capture d'écran de 2015-09-16 17:38:10

Il suffit désormais d’aller chercher le disque qu’on vient de déplacer dans le répertoire virtualbox.

Relancer la VM

A cette étape un simple « vagrant up » permet de relancer la VM et de retrouver son système tel qu’il était avant le plantage. Et donc ses données chéries ainsi que ses derniers tests.

Vous aimerez aussi...

1 réponse

  1. dam75 dit :

    Ah la la qu’il est loin le temps où un bête WAMP | XAMPP | EasyPHP suffisait pour développer un site … ^^
    Merci en tous cas 😉

Laisser un commentaire

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