Sto riscontrando una macchina virtuale Windows10 su OpenStack che si riavvia automaticamente in caso di accesso automatico riuscito. Lottare con questo per un po' e le ore trascorse a cercare questo argomento su Google sono andate invano. Segui la procedura dettagliata di seguito per trovare la causa principale e impedire il riavvio automatico di Windows10 VM su OpenStack!
Ti sei chiesto perché Windows si riavvia automaticamente? Per fortuna, Windows tiene traccia degli eventi e dei record nel registro di sistema. Con il Visualizzatore eventi di Windows integrato, puoi monitorare le attività che si verificano sul tuo computer prima, durante e dopo lo spegnimento o il riavvio. Questo articolo mi ha aiutato a visualizzare i log di sistema in Windows10 che hanno attivato il riavvio automatico.
Visualizza registro di arresto e riavvio dal Visualizzatore eventi
Apri l'app Visualizzatore eventi
Vai a Windows Logs -> System
nel riquadro di sinistra. Attendi il caricamento di tutti i log. Fare clic su Filter Current Log
nel riquadro di destra. Digita 41, 1074, 6006, 6008 nella casella di testo in include/esclude ID evento e quindi fai clic su OK per filtrare i registri eventi.
Dai registri filtrati, è stato trovato un registro sospetto che indica che Cloudbase-Init ha avviato il riavvio del computer come segue:
Ciò ha fornito un suggerimento per ulteriori ricerche e ha trovato un bug segnalato nel launchpad relativo a cloudbase-init. Di seguito è la mia comprensione del motivo per cui si stava verificando il riavvio automatico:
Dal nostro cloudbase-init unattend.xml
file (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\unattend.xml
) puoi notare che cloudbase-init tenta di impostare il nome host nelle impostazioni specialize. Ciò causa l'esecuzione di una funzione SetComputerName durante il passaggio di specializzazione, che modifica il nome del computer in DESKTOP-<random string>
. Un problema noto in Windows10 è che una modifica al nome del computer richiede un riavvio.
Come impedire il riavvio automatico di Windows10 VM su OpenStack!
Grazie a Curt Moore per la sua rapida soluzione. Lo stesso che ho cercato di spiegare in dettaglio di seguito:
Passaggio 1: Installa Cloudbase-init utilizzando l'MSI normalmente, tranne per il fatto che NON esegua un Sysprep automatico durante l'installazione automatica.
Passaggio 2: Al termine dell'installazione di Cloudbse-init, eseguire il comando seguente dal prompt dei comandi (Esegui come amministratore) per disabilitare l'avvio automatico della versione del servizio Windows di cloudbase-init.
sc config cloudbase-init start= disabled
Passaggio 3: Modifica il file unattend.xml e aggiungi un altro RunSynchronousC
nodo per riattivare l'avvio automatico del servizio Windows cloudbase-init. Questo comando _deve_ essere impostato come <Order>1</Order>
e il nodo cloudbase-init non presidiato esistente impostato su <Order>2</Order>
in modo che il comando re-enable venga eseguito prima dell'istanza automatica di cloudbase-init, che richiede un riavvio. L'idea è che se riabilitiamo il servizio cloudbase-init (ma non lo riavviamo in questo momento) al riavvio richiesto dal cloudbase-init non presidiato, l'istanza del servizio Windows si avvierà come desiderato e non sarà in conflitto con l'istanza automatica poiché sarà già stata eseguita. Di seguito è riportato il unattend.xml
modificato file:
Passaggio 4: Dopo aver modificato il unattend.xml
file, eseguire manualmente il comando sysprep dal prompt dei comandi (Esegui come amministratore) e fare riferimento all'XML modificato.
C:\Windows\system32>"%SYSTEMROOT%\system32\ sysprep\ sysprep. exe" /generalize /oobe /quit /unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\unattend.xml
Fare riferimento a unattend.xml
Fare riferimento al percorso del file unattend.xml correttamente rispetto all'installazione.
Passaggio 5: Rilascia la configurazione IP di Windows dopo il sysprep e quindi arresta immediatamente la VM.
Perché rilasciare IPCiò eviterà di riscoprire lo stesso indirizzo IP che aveva la macchina virtuale prima di essere sysprepped. Questo è problematico quando si avvia una VM in OpenStack poiché i segmenti di rete sono completamente diversi e Windows impiega circa 10-20 secondi per smettere di provare a SCOPRIRE nuovamente il vecchio indirizzo ed emettere semplicemente una nuova RICHIESTA DHCP.
ipconfig /release shutdown /s /f /t 1
Ora carica la VM Windows su OpenStack e avvia un'istanza. Ecco! la macchina virtuale Windows10 ha eseguito l'accesso automatico e non si è riavviata!