Letting Hyper-V get some sleep
I blogged a few months ago about how activating Hyper-V on a laptop that is running Windows Server 2008 will disable all hibernation and sleep functionality. It seems that most people had not known this because I got quite a few comments on the post about it. The comments varied from simple complaints to the usual boring rants where the author used a dollar sign instead of the letter S when they wrote the word Microsoft.
I still stand by what I said about the reasoning for the decision to disable this functionality as it makes good sense, and frankly hibernation/sleep is something that I can live without because Hyper-V is so good. Basically, the functionality is disabled for 2 reasons:
- The percentage of people who run Windows Server 2008 on a laptop compared to those that run it on 'server' hardware is tiny.
- Nearly everyone who will be using Hyper-V will be using it on hardware that will never need to be put into hibernation/sleep (when was the last time you wanted to put one of the servers to sleep in your data centre?).
So, to make the best product possible the Hyper-V team devoted their time to getting a great product shipped that had the right features, was stable and reliable; without trying to cater for every possible scenario by cramming in features that a very small percentage of people would use. What we have today is hypervisor technology that is small, fast and rock solid; those facts to most people are more important that anything else.
However, it seems that some people still think that the above reasons are not valid, and that hibernation/sleep should be available. Well there is a way to get that functionality back without having to uninstall Hyper-V, however it is almost certainly not a supported method by Microsoft so you are on your own.
During system boot the file hvboot.sys loads, and it is this file that disables the hibernation/sleep functionality on laptops. So, by changing the following registry keys you can enable/disable the loading of this file. By doing this you'll get back the hibernation/sleep functionality, but at the cost of losing Hyper-V. Also, to make the change requires a system reboot which can be a pain.
Gain hibernation/sleep - lose Hyper-V:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hvboot]
"Start"=dword:00000003
Lose hibernation/sleep - gain Hyper-V:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hvboot]
"Start"=dword:00000000
Having Windows Server 2008 with Hyper-V on a laptop is a great combination, I myself have it on my company laptop. Perhaps the solution offered here can help out those people that have been previously frustrated with Hyper-V because of the lose of hibernation/sleep.