web-dev-qa-db-fra.com

Echec du chargement de Vagrant car grub2 attend la sélection du noyau après un arrêt ingrat.

J'ai une boîte Vagrant avec Ubuntu 12.04 LTS. Parfois, après avoir forcé un arrêt (par exemple parce que la machine ne répondait plus), la boîte de dialogue vagant ne parvient pas à démarrer la prochaine fois.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...

La capture d'écran d'aperçu dans Virtualbox suggère que la boîte se bloque au stade grub, attendant toujours qu'une entrée utilisateur sélectionne le noyau.

Screenshot of Vagrantbox stuck at grub

Ainsi, chaque fois que cela se produit, je place vb.gui = true dans le fichier Vagrant, redémarre l'ordinateur et sélectionne le noyau à démarrer manuellement. La chose intéressante est que, après avoir sélectionné le noyau une fois, les démarrages sans tête suivants fonctionnent à nouveau correctement - jusqu’au prochain arrêt inopiné de la machine.

Ma question est la suivante: existe-t-il un moyen plus élégant qui n'exige aucune intervention manuelle pour éviter que la boîte vagabonde ne se bloque à l'écran de sélection du noyau grub après un arrêt forcé?

5
Michael Osl

D'abord, obtenez l'identifiant de la machine

# Before v1.1
# MACHINE_ID=$(awk -F\" '{print $6}' .vagrant)
# After v1.1
MACHINE_ID=$(cat .vagrant/machines/default/virtualbox/id)

Eteignez la VM

VBoxManage controlvm ${MACHINE_ID} poweroff

Ensuite, démarrez la machine avec une console graphique

VBoxManage startvm ${MACHINE_ID}

Attendez qu'il démarre, connectez-vous, exécutez:

Sudo update-grub

En cas de succès, fermez-le

VBoxManage controlvm ${MACHINE_ID} poweroff

Et après cela, vagrant up ne fera que démarrer votre VM normalement

Source

4
Sylvain Pineau

Ajoutez à /etc/default/grub de votre boîte:

GRUB_RECORDFAIL_TIMEOUT=0

Et courir:

Sudo update-grub
1
Geoffrey Ragot