52 votes

Comment configurer Virtualbox VM pour qu'il démarre automatiquement après le redémarrage de Windows-10 ?

En 2013, j'ai retrouvé comment démarrer/arrêter automatiquement une VM Virtualbox lorsque l'hôte est Linux. La procédure était officiellement documentée et nécessitait quelques étapes.

Pour l'instant, je suis intéressé par la question suivante : comment configurer Virtualbox VM pour qu'il démarre automatiquement après le redémarrage de Windows-10 ?

Existe-t-il un processus officiellement documenté ? Si ce n'est pas le cas, quelles sont les solutions testées par certaines personnes ?

Ma tentative naïve allait ressembler à quelque chose comme :

  • fait : Configurer Windows pour qu'il s'identifie automatiquement au redémarrage

  • TODO : Créer un script par lot avec : sleep 120 && vboxmanage startvm my_vm_name

  • TODO : Mettre le batch script dans le répertoire de démarrage de mon utilisateur. (Je n'ai pas vu de répertoire "startup" dans Windows 10 cependant...)

42voto

Unencoded Points 3290

Le répertoire de démarrage existe toujours, mais dans un endroit bien caché...

Pour y accéder, ouvrez la boîte "Exécuter" (Win+R) et entrez

shell:startup

Réduire au minimum cet aspect pour l'instant.

Ouvrez VirtualBox et faites un clic droit sur la VM que vous souhaitez démarrer automatiquement, cliquez sur l'option de création d'un raccourci sur le bureau et fermez VirtualBox.

Il suffit de couper le raccourci depuis le bureau et de le coller dans le dossier précédemment ouvert. devrait est tout à fait correct.

19voto

Josien Points 1631

Il est désormais possible de démarrer une VM sans avoir recours à un service VBoxVmService tiers. Il suffit de créer un raccourci vers <VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headless et placez-le dans votre dossier de démarrage.

Desde el Manuel VirtualBox .

12voto

Nathanbwsc Points 1

Pruebe VBoxVmService

Veillez à lire le Howto.txt et modifier VBoxVmService.ini

10voto

Jacob Phillips Points 3074

Bien qu'il soit intéressant de disposer d'un service, vous pouvez le faire au moyen d'une tâche programmée. Prenez le démarrage du système comme déclencheur, cochez l'option permettant d'exécuter la tâche sans utilisateur connecté et définissez l'action à <VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headless . Veillez à supprimer la vérification de l'incompréhensible option par défaut "tuer la tâche si elle est en cours d'exécution depuis plus de 3 jours". Franchement, MS, à quoi pensiez-vous, qu'aucun ordinateur Windows ne tiendrait aussi longtemps sans redémarrage ?

Il y a une mise en garde : si une VM est démarrée au démarrage de cette manière, vous la verrez dans le VirtualBox Manager comme étant "éteinte", il n'y a donc pas de bouton pour afficher l'écran de la VM. Il n'y a que le bouton "start" et vous risquez de tout gâcher si vous essayez de la démarrer deux fois.

Vous pouvez définir un port d'affichage à distance afin d'accéder à la console de la VM via RDC (mstsc.exe), sans le gestionnaire VirtualBox, mais vous devez toujours vous rappeler de ne pas croire l'information "powered off". Je ne sais pas si cela fonctionne mieux avec un vrai service.

9voto

DeeJayh Points 246

L'option la plus cohérente consiste à utiliser le planificateur de tâches.

Mise en œuvre de la solution

Cela nécessite quelques étapes assez simples, mais je vais les expliquer en détail afin de m'assurer que n'importe qui, quel que soit son bagage technique, puisse les mettre en place :

  1. Identifiez le nom de votre machine virtuelle
  2. Créer une tâche dans le planificateur de tâches

1. Identifiez le nom de votre machine virtuelle

Naviguez jusqu'à C:\Users\YourUserNameHere\VirtualBox VMs

VirtualBox VMs Folder

Le nom du dossier ci-dessus correspond généralement au nom de la machine virtuelle. Vous pouvez le confirmer en consultant le gestionnaire VirtualBox lui-même :

VirtualBox GUI

Le nom de la machine est WindowsXPSP3 .

2. Créer une tâche dans le planificateur de tâches

Cliquez d'abord sur le bouton Démarrer et tapez "planificateur de tâches" sans les guillemets. Ouvrez ensuite le planificateur de tâches :

Task Scheduler Search

À l'intérieur du planificateur de tâches, nous allons voir un arbre de structure sur le côté gauche. Cliquez avec le bouton droit de la souris sur Task Scheduler Library . Cliquez avec le bouton gauche de la souris sur New Folder... :

Task Scheduler New Folder

Donnez au dossier un nom mémorable, par exemple User Custom et cliquez sur OK (si vous avez déjà un dossier existant que vous préférez utiliser, ce n'est pas grave non plus, passez plutôt au paragraphe suivant) :

Name New Folder

Cliquez sur votre dossier nouvellement créé, dans mon cas User Custom pour le mettre en évidence. Cliquez avec le bouton droit de la souris dans la liste vide à droite et cliquez avec le bouton gauche de la souris sur Create New Task... :

Create New Task

C'est maintenant que les choses se compliquent. Suivez mes instructions à la lettre. Si vous avez envie de "downvoter" parce que ça n'a pas marché, ou de dire "ça n'a pas marché pour moi" dans les commentaires, je parie que vous avez sauté une étape. Revenez et réessayez.

En Name y Description peut être ce que vous voulez, c'est simplement esthétique et cela n'affectera pas la fonctionnalité. Je vais donner au mien le nom de ma machine virtuelle et y ajouter une brève description. Ce qui EST important, c'est que vous choisissiez Run whether user is logged on or not y Run with highest privileges :

Create Task: General

Passez à l'option Triggers en haut et cliquez avec le bouton gauche de la souris sur New... . Intervertir les Begin the task: la boîte combinée pour At Startup puis cliquez sur OK avec le bouton gauche de la souris :

New Trigger

Passez à l'option Actions en haut et cliquez avec le bouton gauche de la souris sur New... . Cliquez sur parcourir (faites pas essayez de taper cela manuellement, vous vous causerez des maux de tête) et naviguez jusqu'à C:\Program Files\Oracle\VirtualBox . Faits marquants VBoxManage.exe et cliquez avec le bouton gauche de la souris Open :

Browse to VBoxManage

Copier tout sauf l'exécutable et les guillemets de Program/script: en Start in (optional): :

Copy Directory Path

Enfin, insérez la ligne suivante dans Add arguments (optional): et cliquez sur OK :

startvm "YourVirtualMachineNameFromStep1" --type headless

dans mon cas, j'utiliserai :

startvm "WindowsXPSP3" --type headless

Enter Arguments

Mon Conditions est généralement défini comme suit :

Conditions Tab

Assurez-vous que votre Settings ressemble à ce qui suit, mais garantir absolument vous avez réglé les éléments marqués en jaune pour qu'ils correspondent aux miens. Cela permettra de s'assurer que si certains pré-requis n'étaient pas encore prêts, il y aura plusieurs tentatives de démarrage de la machine virtuelle et que la machine virtuelle ne sera pas arrêtée après 3 jours. Je laisserais tout le reste par défaut à moins que vous ne sachiez ce que vous faites. Si vous ne faites pas ce que je vous montre ici et que cela ne fonctionne pas, c'est votre problème :

Settings Tab

Enfin, cliquez sur OK au bas de la fenêtre Create Task fenêtre. Vous avez terminé !

Test de la solution

Test de mon faux scénario ci-dessus (et comment vous pouvez tester le vôtre)

Lorsque je redémarre mon ordinateur, je peux me connecter et ouvrir le gestionnaire VirtualBox et voir que ma VM est en cours d'exécution :

Running VM

Je peux également rouvrir le planificateur de tâches et vérifier qu'il s'est bien exécuté, ou voir quelle était l'erreur s'il ne s'est pas exécuté (la plupart des erreurs sont des erreurs de répertoire dues à des personnes qui essaient d'entrer manuellement là où je leur ai dit de ne pas le faire) :

Task Scheduler Success

Test de mon cas d'utilisation réel

Sur une autre machine, j'ai configuré mon serveur Linux en tant que machine virtuelle avec son propre disque dur à semi-conducteurs. Je voulais que ce serveur redémarre automatiquement si la machine était redémarrée (crash, mise à jour de Windows, etc.), sans que l'utilisateur n'ait à se connecter. J'ai configuré ce serveur exactement comme je l'ai décrit ci-dessus et j'ai redémarré la machine. Je sais que cela a fonctionné parce que j'ai pu accéder à mon partage Samba (laymens : un dossier avec des choses dedans que je partage sur mon réseau avec mes autres ordinateurs) depuis un autre ordinateur. SANS après avoir ouvert une session sur la machine qui exécute la VM du serveur. Cela confirme à 100 % qu'il démarre bien au démarrage du système et non après la connexion de l'utilisateur.

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