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:

  1. The percentage of people who run Windows Server 2008 on a laptop compared to those that run it on 'server' hardware is tiny.
  2. 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.

Comments

  • Anonymous
    November 28, 2008
    Just bought a new notebook with 8 GB of RAM specifically to run Hyper-V, and now I find these posts that rather ruin my plans. While I can understand Microsoft's reasoning that the market wanting Hyper-V on a laptop today is small, it certainly seems short-sighted to me. So anyone have any comments on using the VMware workstation product instead? So far that seems viable to run VMs on a laptop from what I hear.

  • Anonymous
    December 03, 2008
    I also use hyper-v on my laptop that has 4GB of memory. I find it annoying that I have to shutdown my laptop each time I want to leave, especially if I need to leave in a hurry. And since Hyper-V is so useful for many people who debug drivers and applications, how can they not see the need to have it on a laptop? I find this annoying as well. Now, if you could provide us with some type of system where we could only stop hyper-v, then hibernate, (possibly "sleeping" the vms), that would at least reduce some of the time I need to spend on shutdown/restart

  • Anonymous
    December 05, 2008
    I have tries VMware Hyper-V and Virtual PC, I liked Hyper-V the best, but VMware was quite good also.  I'll be switching to it.  Atleast it is nce to know that I don't hav to reinstall my OS, thanks for the information