60 votes

Comment démarrer les machines de la boîte virtuelle automatiquement au démarrage ?

J'ai plusieurs machines virtuelles dans mon Ubuntu12.04, chaque fois que j'éteins ou redémarre, je dois les démarrer une par une.

Je veux une aide pour écrire script pour démarrer automatiquement les machines VBox au démarrage.

0voto

Pour le serveur Ubuntu 16.04.1 LTS, j'ai résolu ce problème en faisant :

Activez d'abord le service rc-local.

sudo systemctl enable rc-local.service

Ajoutez la ligne suivante dans /etc/rc.local

su virtual_box_user -c "VBoxHeadless -startvm 'virtual_machine_name' &"

Notez que le virtual_box_user est celui qui peut voir la machine virtuelle (que vous souhaitez démarrer) exécuter la commande :

VBoxManage list vms

Ejemplo:

$ VBoxManage list vms
"virtualbox1" {2eb3ba3b-bcb3-4515-95d9-d33bce214c28} 
"virtualbox2" {62365634-f2q4-40c0-b4ed-22f4ab84441a}

La version modifiée /etc/rc.local devrait ressembler à ceci

#!/bin/sh -e
# 
# rc.local 
# 
# This script is executed at the end of each multiuser runlevel. 
# Make sure that the script will "exit 0" on success or any other 
# value on error.
# 
# In order to enable or disable this script just change the execution
# bits. 
# 
# By default this script does nothing. 

su bob -c "VBoxManage startvm 'virtualbox1' --type headless &" 
su bob -c "VBoxManage startvm 'virtualbox2' --type headless &" 

exit 0 

Si vous ne choisissez pas le bon propriétaire de virtualbox, vous devriez voir l'erreur en tapant la commande :

sudo systemctl status rc-local.service

J'espère que cela peut aider

0voto

Lucas Catani Points 1

1 - Créez un fichier :

nano /etc/init.d/vm-start

Collez ça :

#!/bin/bash
/bin/echo "* Starting VMS..."
/bin/sleep 1
/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME--type headless"
/bin/sleep 1
  • Remplacez "validuser" par votre nom d'utilisateur.
  • Remplacez "MACHINENAME" par le nom de votre machine virtuelle
  • Si vous devez démarrer plus d'une machine, répétez la ligne ci-dessus avec le nom de votre machine virtuelle :

/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME2--type headless" /bin/sleep 1

2 - Rendez le fichier vm-start exécutable :

chmod +x /etc/init.d/vm-start

3 - Modifier rc.local

nano /etc/rc.local

Ajoutez ceci :

#!/bin/bash
/etc/init.d/vm-start
exit 0

4 - Redémarrage.

0voto

Wadih M. Points 190

Sur ma machine de bureau Ubuntu 20 :

Ouvrez crontab :

crontab -e

Ajoutez cette ligne en bas de page :

@reboot sleep 10 && VBoxHeadless --startvm "MyVirtualMachineName" &

Redémarrez pour confirmer que cela fonctionne.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X