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.

1voto

Takkat Points 135194

Pour démarrer une VM lors de la connexion à notre session, nous pouvons définir un fichier .desktop :

Lorsque ce fichier a été copié ou déplacé dans notre répertoire de démarrage automatique, il sera exécuté après notre connexion :

L'exécution de Virtual Box dans l'espace utilisateur peut aider à éviter les effets secondaires indésirables de leur lancement pendant le démarrage (par exemple, la VM s'exécute en tant que root, le temps de démarrage augmente incroyablement, ...).

1voto

tomeduarte Points 2013

Voici comment je démarre mon Centos (nom de ma machine virtuelle) lorsque ma machine hôte redémarre. J'utilise crontab pour cette tâche. Voici l'entrée de mon crontab :

@reboot VBoxHeadless --startvm "Centos" &

1voto

Artex Points 163

Cela peut être fait en utilisant l'interface de gestion de la ligne de commande de VirtualBox. Il suffit d'exécuter le script suivant au démarrage.

#!/bin/bash
VMUSER="vmuser"
VMNAME="RedHatVM" #also you can put UUID in this variable (VMNAME="4ec6acc1-a232-566d-a040-6bc4aadc19a6")

case "$1" in
    start)
        echo "===Starting VirtualBox VM==="
        sudo -H -u $VMUSER VBoxManage startvm "$VMNAME" --type headless
        ;;
    stop)
        echo "===Saving state of Virtualbox VM==="
    sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" savestate
    sleep 20
        ;;
    shutdown)
        echo "===Shutting down Virtualbox VM==="
        sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" acpipowerbutton
    sleep 20
        ;;
    reset)
        echo "===Resetting VirtualBox VM==="
         sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" reset
        ;;
    status)
         echo -n "VMNAME->";sudo -H -u $VMUSER VBoxManage showvminfo "$VMNAME" --machinereadable |grep "VMState="| cut -d "=" -f2
        ;;
        echo "Usage: /etc/init.d/VMscript {start|stop|shutdown|reset|status}"
        exit 1
        ;;
    esac

exit 0

Il y a est un bon tutoriel pour plus d'informations.

1voto

Solata Points 111

Complément à la réponse de @kdmurray.

Si vous obtenez une erreur sur :

VBoxManage modifyvm <uuid|vmname> --autostart-enabled on

Pour résoudre ce problème, j'ai dû créer manuellement les fichiers "username".start et "username".stop avec :

sudo touch "username".start
sudo touch "username".stop

Et changer de propriétaire avec :

sudo chown "username" "username".start
sudo chown "username" "username".stop

rediffusion :

VBoxManage modifyvm <uuid|vmname> --autostart-enabled on

puis redémarrez le service :

sudo service vboxautostart-service stop
sudo service vboxautostart-service start

vérifier est tout est ok avec :

top

et vous devriez voir le processus "VBox..." dans une liste, si la machine virtuelle est en cours d'exécution.

0voto

Scott Goodgame Points 2566

Vous pouvez également utiliser le gestionnaire de session gnome décrit ici. Gestionnaire de session Gnome Il se trouve dans le centre logiciel ou vous pouvez simplement aller sur un terminal et taper sudo apt-get install gnome-session-common

Ensuite, vous pouvez créer un petit script à exécuter et utiliser le gestionnaire de session de gnome pour le démarrer. Voici un petit exemple de script pour vous aider à démarrer...

#!/bin/sh

#vboxmanage startvm "my virtual machine" --type=headless|gui|sdl (one of those)
# So if your username is user, and virtualbox put your VMs in the default location, and you want headless...

vboxmanage startvm '/home/user/VirtualBox VMs/myvmname' --type=gui

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