Thursday, April 30, 2015

Why can't I boot off another drive or change BIOS options after hibernating?



I hear that many people running Windows are able to hibernate their computer,
temporarily boot some other operating system,
then shutdown that other OS and resume Windows right where they left off.




How do I make sure that the next computer I get has this ability?



Is there some way I can get my laptop to do that, or is my laptop simply incapable of doing that?



If this laptop is incapable of doing that, is there a name for
"the kind of PC that has the ability to let me hibernate Windows, and boot some other OS, and then later resume Windows where I left off"
to distinguish them from
"the kind of PC that won't let me do that" (such as my current laptop)
?




details



On some computers (such as my HP Pavilion dm1 laptop),
after I tell Windows to hibernate and I wait for all the lights to go dark, after I press the power button, the computer boots up directly into windows without ever giving me the option to select some other boot disk or to change bios options.



I thought "hibernate" turned the computer completely off.
I thought turning on a computer always gave the "press ESC for BIOS options" (or some similar message) every time it was turned on after being completely off.
But that doesn't seem to be the case with some computers, such as my laptop.




(I can tell "hibernate" is different from "sleep".
When I tell Windows to "sleep", the light on the power button blinks, and then when I press any key on the keyboard, it quickly wakes up directly into windows.
When I tell Windows to "hibernate", all the lights go dark, and none of the keyboard buttons do anything except for the power button.)



Out of all the options "sleep", "hybrid sleep", "hibernate", and "shutdown",
only when I tell Windows to "shutdown" do I later get the "press ESC for BIOS options" message the next time it starts up -- only then can I choose to boot this laptop off the flash drive with my other OS.
All the other options boot directly into windows, completely bypassing the "press ESC for BIOS options" message.


Answer



What you need to do is drain all power from the machine, by unplugging it and either waiting for a while (at least 5 mins) or pressing the power button a couple of times (this attempts to start it, which will drain any capacitors in the PSU - typically, fans might spin up or LEDs might light for a bit).







This is an interesting quirk of how different motherboards (specifically, the BIOS/UEFI firmware) handle displaying the menu when hibernating. ACPI defines a special power state for hibernation, S4 (under G1, as are all other standby modes), which the BIOS can decide to handle differently. for example by booting from the same device without displaying a menu.



What you need to do is put the machine into the powered off state, S5 (under G2, normally entered when 'shut down'). The easiest way is by going to G3 first, by removing all power.



There does not appear to be an option within Windows to tell it to use S5 for hibernation - but then, that's what S4 was designed for anyway. Windows is not doing anything wrong. It may be useful to take a look at your BIOS/UEFI options/manual, since there may be an option to change which state the computer enters when an S4 signal is received.



The only real way to ensure that your next motherboard has this option or always displays the boot menu is through experience, whether yours or others'. This is not usually an advertised feature.




One thing to note is that the BIOS (I'm not familiar with the UEFI booting process) might load a certain device (e.g. a hard drive), but it is up to the bootloader on that device to resume from hibernation or provide additional options. The Windows bootloader will always resume when hibernated, as far as I know. I believe GRUB may be configurable to provide the boot menu every time.



(source)


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...