Je n'arrive pas à faire fonctionner ma machine virtuelle au démarrage.
J'ai essayé les "applications de démarrage" et update-rc.d sans succès.
sudo update-rc.d startvms defaults 99 10
Cela a créé tous les liens symboliques appropriés pour les différents niveaux d'exécution, mais la machine virtuelle ne démarre toujours pas.
Voici mon script startvms:
#!/bin/bash
### BEGIN INIT INFO
# Provides: startvms
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start my VMs at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
case "$1" in
start)
echo "Starting"
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
stop)
echo "Stopping $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
;;
restart|force-reload)
echo "Restarting $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
Qu'est-ce que je fais mal?
virtualbox
startup
capdragon
la source
la source
VBoxManage startvm --type headless "UbuntuServer"
place de laVBoxHeadless
commande?su -c 'VBoxHeadless --startvm <MACHINE>'
.Réponses:
C'est ce qui a finalement fonctionné!
1) Créez le fichier de script de démarrage
dans /etc/init.d -
sudo nano /etc/init.d/StartVM
.Copiez Collez ce qui suit dans le fichier et remplacez "My VM Name" pour votre nom vm:
2) Accordez au script exécutable la permission
avec
sudo chmod +x /etc/init.d/StartVM
.3) Dites au script de s'exécuter au démarrage.
dites au script d'être le premier à s'arrêter et le dernier à démarrer.
sudo update-rc.d StartVM defaults 99 01
la source
VBoxManage startvm --type headless
serait-ce pas mieux?Pour info, cela fonctionne sur Opensuse sans nohup.
la source
Cela fonctionne bien avec le serveur Ubuntu 12.04 et VirtualBox 4.2.20.
Et
et
comme indiqué dans une réponse précédente.
la source
Étant donné que vous mentionnez que VBoxHeadless fonctionne correctement si vous le tapez à partir de la ligne de commande d'un terminal, mais ne démarre aucune machine virtuelle lorsqu'il est lancé à partir d'un script init, je suppose qu'il recherche une variable d'environnement qui est définie lorsque vous exécutez un shell dans votre terminal mais non défini dans l'environnement de script init (qui est essentiellement vide, à l'exception des paramètres donnés sur la ligne de commande du noyau).
Pouvez-vous essayer de remplacer les invocations VBoxHeadless dans le script par ceci?
Ici, "nom d'utilisateur" et le chemin du répertoire personnel doivent être modifiés pour correspondre à ceux de l'utilisateur que vous utilisez pour démarrer la machine virtuelle.
Si cela fonctionne, vous voudrez peut-être utiliser su -l pour exécuter VBoxHeadless au lieu de ce hack env .
la source
su -l
- c'est un bon point!Sur les versions récentes de Virtualbox (4.2.0 et suivantes), vous n'avez pas besoin de lancer votre propre script pour démarrer automatiquement une machine virtuelle, mais cela prend une certaine configuration. Voir la section 9.24 du manuel Virtualbox " Démarrage des machines virtuelles pendant le démarrage du système "
Malheureusement, le manuel ne donne que des instructions générales et n'a pas été mis à jour depuis des siècles. J'ai trouvé cet article sur les forums de virtualbox avec quelques détails supplémentaires.
Vous pouvez simplement mettre une ligne dans rc.local pour démarrer votre serveur mais si vous voulez le faire de la manière "officielle", lisez la suite.
Ajoutez ces lignes à / etc / default / virtualbox:
Modifiez /etc/vbox/vboxautostart.cfg (cet exemple refuse l'autorisation de démarrage automatique pour tous les utilisateurs sauf l'utilisateur "Bob":
Ajoutez le groupe vboxusers à / etc / vbox et le sticky bit:
Ajoutez tous les utilisateurs qui utiliseront virtualbox au groupe "vboxusers", par exemple:
Chaque utilisateur qui souhaite activer le démarrage automatique pour des machines individuelles doit définir le chemin d'accès au répertoire de la base de données de démarrage automatique avec:
Les utilisateurs peuvent ensuite configurer les machines virtuelles pour démarrer automatiquement et configurer la façon dont elles s'arrêteront (par exemple, savestate, acpishutdown) avec:
Ce qui précède a fonctionné pour moi avec Virtualbox 5, installé à partir du référentiel virtualbox.org.
la source
on peut également vouloir définir directement le port lors de l'utilisation de vrdp .. commenter la réponse du haut, qui cloisonne bien pour utiliser différents scripts pour différentes vms
la source
Wow .. Je vois toutes ces solutions, qui semblent un peu complexes, mais c'est mon troisième ordinateur portable sur lequel j'ai fini par écrire simplement:
VBoxHeadless -s "Ubuntu Server"
dans mon fichier rc.local dans le répertoire / etc / et cela a plutôt bien fonctionné. Exécute la machine virtuelle automatiquement au redémarrage.
la source