Hyper-V on Laptop: a new way
Buona giornata a tutti!
La mia attività consiste nel presentare le tecnologie Microsoft ai professionisti IT e fare delle dimostrazioni di come funzionano; spesso devo usare prodotti a 64 bit e diverse macchine virtuali: mi è quindi indispensabile usare Hyper-V.
Sempre per lavoro mi sposto frequentemente con treni ed aerei, e voglio quindi ridurre al minimo peso e volume del bagaglio che porto con me. Portarmi due PC uno con Windows Server 2008 R2 + Hyper-V e uno con Windows 7 non è una strada percorribile.
Uso quindi un unico portatile con installato Windows Server 2008 R2 + Hyper-V, configurato in modo da “assomigliare” a Windows 7 e con un dual boot
- la prima opzione (default) avvia Windows Server 2008 R2 senza Hyper-V e consente di usare Hybernation e Sleep (solo su Windows Server 2008 R2 non su Windows Server 2008),
- la opzione seconda avvia Windows Server 2008 R2 con Hyper-V, ma senza Hybernation e Sleep
Potete leggere questo mio vecchio post per configurare Windows Server in modo che assomigli a Windows 7 e questo post di Ben Armstrong per sapere come creare le due opzioni di boot.
Questa in realtà è la vecchia via e ha il difetto di richiedere un riavvio del portatile tutte le volte che si vuole abilitare o disabilitare Hyper-V.
Da qualche giorno ho scoperto una nuova via più comoda e, a mio avviso, più elegante anche se direi sicuramente non supportata.
La nuova via consente di eliminare le due opzioni di boot e avere Hyper-V disabilitato per default all’avvio (e quindi poter usare Hybernation e Sleep), ma ABILITABILE AL VOLO ALLA BISOGNA!!
Una volta abilitato Hyper-V, per disabilitarlo dovrete riavviare il portatile (ma abbiamo ridotto a metà i riavvi).
Dopo aver installato il vostro portatile con Windows Server 2008 R2, averlo configurato come vi piace/serve e abilitato il ruolo di Hyper-V, ad ogni avvio viene caricato il driver hvboot. Tra le altre cose questo driver si occupa di disabilitare le funzionalità di Hybernation e Sleep.
L’uovo di colombo è disabilitare l’avvio automatico di questo driver.
Per farlo dovete avviare regedit e impostare in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hvboot la dword Start a 00000003 (avvio manuale).
Al successivo riavvio avrete la possibilità di usare hybernation e sleep.
Quando dovete avviare una macchina virtuale non dovrete far altro che avviare il driver:
- da cmd: net start hvboot
- da PowerShell: start-service hvboot
Una volta avviato il driver è disattivabile solo spegnendo il computer: stop-service hvboot e net stop hvboot NON FUNZIONANO
Io in realtà avvio manualmente anche i servizi “Hyper-V Image Management Service”, “Hyper-V Networking Management Service” e “Hyper-V Virtual Machine Management” e per comodità nel mio profilo PoweShell ho definito la funzione:
function start-hyperv
{ start-service hvboot
get-service | ? {$_.DisplayName -like "Hyper-V *"} | start-service
}
che mi consente con un unico comando di avviare tutti I servizi legati ad Hyper-V
Buona giornata
Giorgio
Comments
Anonymous
January 11, 2011
Ce ne insegni sempre una più del diavolo :D grazie. -mrAnonymous
January 25, 2011
Vorrei solo aggiungere che su alcuni portatili, se non installi il SP1 ( in RC) non puoi attivare Hyper-V per conflitti con le schede video HD (a me è capitato su un Dell Vostro 3500 con scheda video Nvidia 310M + Intel HD)