Correct technique for forcing hard drives in Mac OS X to sleep

The energy saver preference panel in Mac OS X offers a simplistic approach to managing energy saving settings, such as sleep time for the computer and disks. A user might think that by deselecting “Put the hard disk(s) to sleep when possible”, the drives would be prevented from spinning down. This is not, however, true.

Mac OS X Energy Saver preference pane

As everyone with an external FireWire, USB or internal RAID array knows, these disks will spin down after 5 minutes of being idle, regardless of whether the aforementioned check box is deselected.

What is a computer user to do when confronted by this wholly unexpected (and dare I say, ‘illogical’) situation? We’ll use Mac OS X’s UNIX underpinnings to change this behavior, using the pmset command to set all drives to never spin down (no, that’s not ecologically friendly).

From the terminal application, issue the following command:

pmset -g

This will output the current settings of the power management subsystem:

Active Profiles:
UPS Power               -1
AC Power                -1*
Currently in use:
 disksleep      10
 hibernatemode  0
 displaysleep   15
 powerbutton    1
 womp           1
 sleep          30
 autorestart    0
 hibernatefile  /var/vm/sleepimage

Notice that with the “Put the hard drive(s) to sleep…” option checked, the “disksleep” value in AC Power profile (which is active, as denoted with the asterics), is set to 10 minutes.

However, after deselecting the “Put the hard drive(s) to sleep…” option, the disksleep value changes to 180 minutes (3 hours).

Active Profiles:
UPS Power               -1
AC Power                -1*
Currently in use:
 disksleep      180
 hibernatemode  0
 displaysleep   15
 powerbutton    1
 womp           1
 sleep          30
 autorestart    0
 hibernatefile  /var/vm/sleepimage

I can attest, however, that my external drives and my internal RAID array will spin down after a far shorter interval than 3 hours! So, apparently, they are managed somewhat differently.

The “-c” option indicates our changes will be made to the profile used when connected to a charger:

sudo pmset -c disksleep 0

Then, run pmset -g to verify the settings have changed.

Active Profiles:
UPS Power               -1
AC Power                -1*
Currently in use:
 disksleep      0
 hibernatemode  0
 displaysleep   15
 powerbutton    1
 womp           1
 sleep          30
 autorestart    0
 hibernatefile  /var/vm/sleepimage

Enjoy that UNIX goodness.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.