2

I noticed that Big Sur 12.3 update notes mention that Hibernation support has been added for M1 Macs. I have an intel MacBook Pro and have never noticed an option to Hibernate.

In contrast to Windows machines, In Intel Macs the only available options are are Sleep, Shutdown, and Restart.

4 Answers 4

5

Except in the most general way it is better not to translate terms like 'hibernate' and 'shut down' from Windows to macOS. Macs does not 'hibernate' in the same way as older versions of Windows - it is better to think of macOS having stages of sleep. The final stage can be considered as hibernation.

Shutdown, too, is different on Macs and Windows. When you shut down Windows 10, it writes its state to disk (i.e. hibernates) ready for a rapid startup. On the other hand, macOS does a full shutdown, closing all applications, stopping system processes and halting.

Having got that out of the way:

On a MacBook there are these stages of sleep:

  • Sleep or memory sleep: This is what happens when you close the lid or let the computer idle for some time. Power to display, disk, and other systems is turned off;
  • Standby or Safe Sleep: Memory state is written to disk and after a certain period memory power is turned off (standard 3 hours);
  • Hibernation: All power is off, all state has been written to a disk image. You know this has happened if when you open the Mac you see the Mac icon, and then see a progress bar while it is loading state from disk.

Thus the macOS 'Sleep' action includes a hibernation phase as a final step. Mostly macOS avoids the final hibernation stage to ensure rapid start when opening the lid.

My Intel MacBook never hibernates - it probably would if I left it for many days with the lid shut (but not turned off).

Though I don't have an M1 MacBook, I suspect that allowing a hibernate state will not make a lot of difference in practice.

At this point the question is answered, but to continue a somewhat further:

The pmset command does have an option called hibernatemode which is just one parameter for controlling sleep. This can have 3 values (this is an extract from man pmset:

  • hibernatemode = 0 by default on desktops. The system will not back memory up to persistent storage. The system must wake from the contents of memory; the system will lose context on power loss. This is, historically, plain old sleep.

  • hibernatemode = 3 by default on portables. The system will store a copy of memory to persistent storage (the disk), and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from hibernate image.

  • hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to persistent storage (the disk), and will remove power to memory. The system will restore from disk image. If you want "hibernation" - slower sleeps, slower wakes, and better battery life, you should use this setting.

For MacBooks there are just the two values: 3 and 25.

My memory is that 25 was introduced about 15 years ago, but went out of favour for more recent Macs. It is strongly recommended not to use 25 as 1) it can cause issues when waking due to FileVault, and 2) makes for a slow restart.

To control the stages of sleep, it is best to leave hibernatemode as 3, and to modify other parameters of pmset. This is mostly to control the timing of sleep stages, but also whether the Mac wakes up for network activity whilst the lid is closed.

I am going to firmly consider tuning of sleep parameters as outside the scope of the question.

As a final point, you can investigate what macOS is doing while sleeping with one of these two similar commands:

pmset -g log | grep -e "Wake from" -e "DarkWake" -e "due to"

pmset -g log | egrep "\b(Sleep|Wake*|DarkWake|Start)\s{2,}"

You may be surprised at how much activity is going on whilst asleep.

2
  • Do these activities still go ono in hibernatemode? My reason for wanting to hibernate my 2017 MBP is, it wakes up from regular sleep and drains up the battery.
    – Qasim
    Commented Jan 31, 2022 at 14:26
  • 1
    @Qasim hibernatemode is just a parameter which controls the last stage of sleep. To speed up that rate of sleeping and depth of sleeping, read my reply to another question apple.stackexchange.com/questions/423593/… particularly the bit at the end where I suggest 4 parameters to tweak. I can leave my MacBook lid closed for a couple days and battery only loses 5% or so.
    – Gilby
    Commented Jan 31, 2022 at 21:41
0

Hibernation mode is activated when you fully close the laptop lid for a little bit. Hibernation mode is turned off when you open the lid.

Usually its seamless enough that you don't notice its happening. It's not always that smooth on windows due to the larger number of drivers and compabtability issues that windows has to deal with.

1
  • 1
    That is not hibernate mode. It is the just the first stage of 'sleep'.
    – Gilby
    Commented Apr 27, 2021 at 9:13
0

This behaviour is one of the options when you close the lid of your laptop. There are two modes:

hibernatemode = 3 by default on portables. The system will store a copy of memory to persistent storage (the disk),
         and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from
         hibernate image.

hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to persistent storage (the
     disk), and will remove power to memory. The system will restore from disk image. If you want "hibernation" - slower
     sleeps, slower wakes, and better battery life, you should use this setting.

Presumably, the latter optional mode is now available on M1 Macs. It has been on Intel Mac for many years. But it's not something you'd noticed in the GUI: it's a command line option for the pmset command.

3
  • hibernatemode=25 was the standard for old MacBooks. But is is risky with more recent Macs, as it leads to FileVault issues.
    – Gilby
    Commented Apr 27, 2021 at 9:15
  • @Gilby One wonders why Apple included it in the new Macs, then.
    – benwiggy
    Commented Apr 27, 2021 at 9:59
  • My answer attempts to include that. The hibernatemode in one of a few parameters which control the sleeping process. Hibernation can be the final stage.
    – Gilby
    Commented Apr 27, 2021 at 10:04
0

On Intel and M1 Mac, you can tell if it can hibernate ( within the clear Apple specification¹ ) with the command:

pmset -g cap | grep hibernate

this will answer you in most cases with:

$ pmset -g cap | grep hibernate
 hibernatemode
 hibernatefile
$

which means this Mac can manage hibernate mode and use a file to store the state of MacOS: the hibernatefile which is by default: /var/vm/sleepimage.


¹    see man pmset

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .