Come si configura Virtualbox VM per l'avvio automatico dopo il riavvio di Windows-10?


37

Nel 2013 ho scoperto come avviare / arrestare automaticamente una VM Virtualbox quando l'host è Linux. Il processo è stato ufficialmente documentato e ha richiesto alcuni passaggi.

In questo momento mi interessa, come si configura Virtualbox VM per l'avvio automatico dopo il riavvio di Windows-10?

Esiste un processo ufficialmente documentato? In caso contrario, quali sono le soluzioni testate di alcune persone?

Il mio ingenuo tentativo sarebbe stato qualcosa del tipo:

  • fatto: imposta Windows per il login automatico al riavvio

  • TODO: crea script batch con: sleep 120 && vboxmanage startvm my_vm_name

  • TODO: inserisci lo script batch nella directory di avvio del mio utente. (Non ho visto alcuna directory di "avvio" in Windows 10 però ...)


non ero sicuro di usare il menu di avvio ... perché è molto windows-9x-ish (forse è più vecchio). In linux ho usato sysvinit / systemd ma non ho familiarità con Windows (forse task-scheduler o alcuni di questi).
Trevor Boyd Smith,

Potrebbe essere utile se aggiungi un link a The process was officially documentedsu Linux ;-)
Philippe Gachoud,

@PhilippeGachoud secondo la tua richiesta, ho modificato la domanda e aggiunto un link alla documentazione
Trevor Boyd Smith

Grazie! Ho trovato questo più adeguato perché meno sensato ai cambiamenti della configurazione della gestione dei pacchetti come sembra essere il caso, qual è la tua esperienza con quello? medium.com/@bharatman/…
Philippe Gachoud,

Risposte:


35

La directory di avvio esiste ancora, sebbene in un luogo ben nascosto ...

Accedilo aprendo la casella "Esegui" (Win + R) ed entrando

shell:startup

Riduci al minimo questo per ora.

Apri VirtualBox e fai clic con il pulsante destro del mouse sulla VM che desideri avviare automaticamente, fai clic sull'opzione per creare un collegamento sul desktop e chiudi VirtualBox.

Basta tagliare il collegamento dal desktop e incollarlo nella cartella precedentemente aperta e dovrebbe andare perfettamente bene.


4
shell: l'avvio è all'accesso, non all'avvio del sistema, giusto? Come fare questo all'avvio del sistema?
alexei,

1
Devi eseguirlo come servizio
AKi

1
Non necessariamente. Puoi sempre configurare l'autologon, Apri un cmd e digita control userpasswords2. Troverai la tua strada attraverso il resto.
Eduardo,

13

Puoi effettivamente avviare una VM senza testa senza ricorrere a un VBoxVmService di terze parti ora. Basta creare un collegamento <VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headlesse inserirlo nella cartella di avvio.

Dal manuale di VirtualBox .


5
Questo non ha ancora lo svantaggio di richiedere l'accesso invece di essere eseguito solo all'avvio?
HorusKol,

Ovviamente. Un servizio è ancora necessario se si desidera eseguire qualcosa senza effettuare l'accesso.
Rustyx,

2
Utilizzare un'attività pianificata per tale invece di collegamento nella cartella di avvio.
Bruno Finger,

11

Prova VBoxVmService

Assicurati di leggere Howto.txt e modificare VBoxVmService.ini


1
Grazie mille! questo sembra molto promettente. Su Windows, la mancanza di integrazione di Virtualbox con l'avvio / arresto del sistema è sempre stata un grande aspetto negativo quando si voleva confrontare windows-virtualbox vs linux-virtualbox (anche se l'integrazione di virtualbox di Linux è solo sysvinit ... ed IMO non è molto robusto ( l'arresto delle macchine virtuali non attende l'arresto della macchina virtuale prima che il sistema emetta SIGKILL e quindi esegue l'arresto del sistema)).
Trevor Boyd Smith,

1
Ci ho provato circa un anno fa. Questa soluzione richiede l'aggiornamento di virtualbox in lockstep con il codice wrapper che esegue il servizio Windows. E quindi devi stare attento. Anche un aggiornamento di Windows penso che abbia rotto questa funzionalità per me. E così ho finito per disinstallare questo codice di servizio vbox.
Trevor Boyd Smith,

Ho guardato questo progetto. L'enorme volume di errori di ortografia mi fa preoccupare di problemi simili nel codice. Mineshaft + canarino.
user2066657,

@utente2066657 bene puoi leggere i miei commenti e vedere che l'ho provato e ha funzionato per un po 'poi si è rotto. le tue preoccupazioni sugli errori di ortografia che indicano la qualità del codice sono probabilmente fondate. non ci tornerei ancora oggi.
Trevor Boyd Smith,

7

Avere un servizio è bello, puoi farlo con un'attività pianificata. Prendi l'avvio del sistema come trigger, seleziona l'opzione per eseguire l'attività senza un utente connesso e imposta l'azione su <VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headless. Assicurati di rimuovere il segno di spunta dall'opzione incomprensibilmente di default "uccidi l'attività se in esecuzione per più di 3 giorni". Srsly, MS, cosa stavi pensando, che nessun computer Windows sarebbe mai durato così a lungo senza riavviare?

C'è un avvertimento: se una VM viene avviata in questo modo, la vedrai nel VirtualBox Manager come "spenta", quindi non c'è nessun pulsante per mostrare il display della VM. C'è solo il pulsante "start" e probabilmente rovinerai tutto quando provi a avviarlo due volte.

È possibile definire una porta di visualizzazione remota in modo da poter accedere alla console della VM tramite RDC (mstsc.exe), senza VirtualBox Manager, ma è comunque necessario ricordare di non credere alle informazioni "spente". Non so se funziona meglio con un servizio reale.


1
re "avere un servizio è bello". sfortunatamente il servizio VirtualBox viene interrotto ogni volta che si verifica un aggiornamento minore di virtualbox. così ho finito per disinstallare il servizio e in questo momento la mia VM non si avvia più all'avvio.
Trevor Boyd Smith,

re "[la VM appare come] spenta [in VirtualBox Manager]" credo che ciò sia causato dal modo in cui si avvia la VM. sospetto che tu stia avviando la VM come utente root. se dovessi provare ad avviare la VM con "runas" il tuo utente ... il tuo gestore VirtualBox potrebbe funzionare.
Trevor Boyd Smith,

1
ora che ci penso ... il servizio VirtualBox ... si presenta ANCHE come "spento" quando lo si avvia tramite il servizio.
Trevor Boyd Smith,

1
Sembra molto promettente, ma non riesco a farlo funzionare ... Ho creato il lavoro, con due comandi: per avviare anche le mie VM "principali". Lo vedo nello scheduler. Posso fare clic su di esso selezionando "Esegui" - lo stato passa da "Pronto" a "In esecuzione", ma le macchine virtuali non si avviano. Né iniziano all'avvio ... Ci deve essere qualcos'altro ...
Mikhail T.

FUNZIONA , testato su Windows 10 + Virtualbox 6.0.2. Ricetta: tasto Windows, digita SCHED e avvia l'utilità di pianificazione, Crea attività di base, Trigger: all'avvio del computer, Azione: avvia un programma, Programma (passa a VBoxManage.exe), argomenti: startvm "vmname" --type headless, spunta "Apri la finestra di dialogo delle proprietà per questa attività ... e termina, spunta Esegui indipendentemente dal fatto che l'utente abbia effettuato l'accesso o meno , rimuovi le condizioni / Avvia solo se il computer è alimentato a corrente alternata e Impostazioni / Interrompi l'attività se dura più a lungo. (anche se in realtà qui non importa nulla dal momento che il lancio è veloce)
fgrieu il

2

Come precedentemente affermato da chad e gonesoft, è possibile utilizzare VboxManage.exe per avviare la macchina virtuale all'avvio, tuttavia, se non si specifica "--type headless" verrà effettivamente visualizzato in VirtualBox Manager come in esecuzione ecc., Proprio come se l'avessi iniziato normalmente, la testa è ciò che lo rende nascosto, non qualcosa che probabilmente vorresti fare in tutti i casi ...

Pubblicazione come risposta in quanto non ho abbastanza reputazione per scrivere un commento alle risposte precedenti


2

Prova VBoxHeadlessTray .
È davvero facile da usare, che ripristina automaticamente lo stato della VM all'avvio di Windows e salva lo stato all'arresto o al riavvio di Windows. Qual è il più fantastico che puoi usare VBoxHeadlessTray per configurare ognuna delle tue VM.


sembra fantastico. dovrò provarlo quando avrò tempo. Grazie.
Trevor Boyd Smith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.