Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
macOS Monterey 12.1 on a new M1 MacBook Air with a WD Elements EasyStore 8TB USB 3 hard drive. I specifically turned off "Put Hard Disks to sleep when possible" in the Battery preference pane (on both battery and power adapter modes just to be sure). This worked fine on my previous iMac (running Catalina 10.15) and I never heard the drive spin down. This appears to be broken now, because the drive spins up and down constantly, every few minutes. Not only is it annoying, I'm sure this is terrible for the lifetime of the drive. It appears other people have been seeing this since Big Sur as well:

Anyone else seeing this? Anyone know of a fix?
 
Last edited:
  • Like
Reactions: QuickSilverLining

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
Try from Terminal to disable disk sleep for all states with
Code:
sudo pmset -a disksleep 0
 

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
Thanks, tried that, didn't have any effect. I've people suggest amphetamine (which has a "Disk Alive" option that keeps trying to write a small file to the disk) or just a tiny shell script that touches a file on the drive. Since its easy enough to try, I did the latter and it worked, but I had to touch the file every 30 seconds. Even at 60 seconds the drive would sleep then a few seconds later wake up, which makes it seems like whatever this bug is, it's putting the drive to sleep with less than a minute of timeout. Super obnoxious, but for now I'm just running my script every 30 seconds.
 

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
I had a similar problem with a hard drive enclosure that stopped connecting with the USB 3 cable, it powered up and then powered down almost immediately. At the same time, it worked perfectly with an USB 2.0 cable.
You could try to connect your WD Elements with an USB 2.0 cable, just to confirm that it’s nothing wrong with the drive/enclosure.
 

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
Extremely unlikely its a cable since the drive was just working fine on my iMac a couple days ago. Coupled with the fact that others are reporting this issue, I'm almost certain its software.

I want to try hideous cheese's suggestion of deleting plists, that sounds promising. Do you know which files specifically you deleted?
 

hideous cheese

macrumors regular
Feb 8, 2012
200
60
Mac/Library/preferences/

anything that looks like com.apple.PowerManagement.plist (I have two files, the second including a string of numbers)

They will be recreated after reboot, and then you need to adjust your energy saver/spin down preferences again.

In my instance it seemed to be a corruption of the plist following a point update of the OS. Since deleting the plists all has been fine for me on Big Sur
 
  • Like
Reactions: c.oberschneider

Fishrrman

macrumors Penryn
Feb 20, 2009
29,175
13,223
How often do you access this drive?
Many times daily?
Or... just a couple of times?

IF it's "just a couple of times", my advice is as "neanderthal" as I am:
DISCONNECT it from the Mac.
When you need to access it, connect it.
Then... when you know you're done for a while, disconnect it again.

This is 100% guaranteed to prevent it from spinning up at unwanted times...
 

svenmany

macrumors demi-god
Jun 19, 2011
2,275
1,518
I've had this problem since around Big Sur (I believe).

One thing I've certainly noticed is that some activity of my own prompt the OS to access the disks. I can't recall the details, but I'm always convinced at the time that what I'm doing should have nothing to do with those external disks. I had just chalked it up to OS inefficiency.

The real problem is that I experience delays as the disks spin up. If I remember correctly I did set my disks to not go to sleep but that didn't help. I will say that it occurs much less frequently these days, but I can't be certain my activities haven't changed. My disks are desktop class disks sitting exposed in a dock, so the spinning up is very easy to hear.

If I had some background process triggering the disk access in the same way my activities do, then I might expect the spin up/down to occur at regular intervals.
 

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
Extremely unlikely its a cable since the drive was just working fine on my iMac a couple days ago. Coupled with the fact that others are reporting this issue, I'm almost certain its software.
Sorry if I wasn’t clear. I was not saying that it might be something wrong with your cable. I would have suggested to try a different USB 3 cable in that case.
I think there might be a problem between recent macOS versions (11&12) and some USB 3 controllers used in hard drive enclosures. Possibly something to do with power management.
That would explain why the same hardware would work perfectly on USB 2.0, but not on USB 3.
 

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
Unplugging the drive isn't an option, despite being a MacBook Air this machine is more or less always plugged in (it was only a little bit more expensive than the M1 Mac mini) and is acting as a media server, time machine target, etc.

Tried the suggestion of deleting com.apple.PowerManagement.plist and com.apple.PowerManagement.<SOME_UUID>.plist and rebooting. Can't say for sure yet if it worked because the disk is busy with a time machine backup or something but I'm crossing my fingers.
 

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
Deleting the .plists didn't help. Just heard the drive spin down and up 3 times in the past few minutes.
 

svenmany

macrumors demi-god
Jun 19, 2011
2,275
1,518
You might try the console. It could give a hint as to why the disks are changing state.
 

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
One possible explanation would be that macOS tries to save energy by powering down (but not off) the USB port when it’s not actively used. That might make the USB controller of the enclosure to think it’s being disconnected and tell the hard drive to shut down.
The System Information.app gives some insight in the USB section about the Current available/necessary to the connected peripheral.
From Terminal the same information can be obtained with:
system_profiler SPUSBDataType
and for the current power state
pmset -g powerstate
The values in the plists are set by System Preferences or pmset.
 

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
You might try the console. It could give a hint as to why the disks are changing state.
Tried this, but didn't really see anything obvious correlated. There's some stuff about power but nothing about usb, mounting, unmounting, spin up/down, etc. Here's what I see that *might* be meaningful (snipped out irrelevant stuff about bluetooth, etc.) around the time the drive spins down:

Code:
default    18:17:37.556953-0500    powerd    stored ts 1642183848, current ts 1642202257
default    18:17:37.622484-0500    PowerUIAgent    Handling data dictionary: <private>
default    18:17:37.622874-0500    PowerUIAgent    Called for battery level=100, externalConnected=1
default    18:17:37.663109-0500    PerfPowerServices    NetworkUsage outcome has payload size: 151
default    18:17:37.770075-0500    powerd    posted 'com.apple.system.powermanagement.poweradapter'
default    18:17:37.770188-0500    powerd    stored ts 1642183848, current ts 1642202257
default    18:17:37.897136-0500    sharingd    Wi-Fi power changed (interface on: YES)
default    18:17:38.588849-0500    powerd    stored ts 1642183848, current ts 1642202258
default    18:17:38.591960-0500    PerfPowerServices    Flush cache start with Reason: Cache Size on Queue:<private>
default    18:17:38.594506-0500    PowerUIAgent    Handling data dictionary: <private>
default    18:17:38.594810-0500    PowerUIAgent    Called for battery level=100, externalConnected=1
default    18:17:38.996879-0500    mDNSResponder    mDNSPlatformSetAllowSleep Destroying NoIdleSleep power assertion
default    18:17:38.997313-0500    powerd    Process mDNSResponder.459 Released MaintenanceWake "mDNSResponder:maintenance" age:00:00:02  id:55834616828 [System: PrevIdle DeclUser kDisp]
default    18:17:38.997378-0500    powerd    updateAppSleepStates: Setting app nap state to false for 459 because all assertions are released

One possible explanation would be that macOS tries to save energy by powering down (but not off) the USB port when it’s not actively used. That might make the USB controller of the enclosure to think it’s being disconnected and tell the hard drive to shut down.
The System Information.app gives some insight in the USB section about the Current available/necessary to the connected peripheral.
From Terminal the same information can be obtained with:
system_profiler SPUSBDataType
and for the current power state
pmset -g powerstate
The values in the plists are set by System Preferences or pmset.
OK, tried this and the first command shows that the hard drive is plugged into USB ports using driver AppleUSBXHCIFL1100. Calling pmset -g powerstate | grep AppleUSBXHCIFL1100 in a loop and waiting for the drives to spin down, I see this:

Code:
18:13:23 ================================
AppleUSBXHCIFL1100          3          3  USEABLE
AppleUSBXHCIFL1100          3          3  USEABLE
AppleUSBXHCIFL1100          3          3  USEABLE
AppleUSBXHCIFL1100          3          3  USEABLE
18:13:32 ================================
AppleUSBXHCIFL1100          1          1  None
AppleUSBXHCIFL1100          1          1  None
AppleUSBXHCIFL1100          1          1  None
AppleUSBXHCIFL1100          1          1  None
18:13:35 ================================
AppleUSBXHCIFL1100          3          3  USEABLE
AppleUSBXHCIFL1100          3          3  USEABLE
AppleUSBXHCIFL1100          3          3  USEABLE
AppleUSBXHCIFL1100          3          3  USEABLE

So for whatever reason, those USB ports go from "USEABLE" to "None" state, causing the drive to spin down. Within seconds though, they return to normal. Hence me constantly hearing the drive spin down then back up almost immediately.

I had been running this with the drive plugged into a Thunderbolt dock, but I saw the same behavior with it plugged directly into a USB-C port on the MacBook. Just as a sanity check, I just tried it in the Mac's USB port again, and although the driver is different now (AppleT8103USBXHCI) I see the same behavior with my looping on pmset -g script, where the ports go from USEABLE to None briefly, then back to USEABLE, exactly when the drive spins down and back up.
 
Last edited:

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
So for whatever reason, those USB ports go from "USEABLE" to "None" state, causing the drive to spin down. Within seconds though, they return to normal. Hence me constantly hearing the drive spin down then back up almost immediately.
That seems worse than I suspected (low_power). ‘None’ probably means that the port is completely turned off.
I’m not sure if it works for WD Elements, but have you tried WD Drive Utilities for Mac?
https://support.wdc.com/downloads.aspx?p=157
Maybe it offers some firmware update or troubleshooting.
 

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
Already tried WD Drive Utilities. I used it to disable the drive's built in "sleep timer." Which I was pretty sure wasn't the culprit anyway because I recall reading that its fixed to 30 minutes. But with it turned off there's no difference in the constant sleep/wake behavior. I just ran it again and looked at the options, nothing really interesting in there besides a "Drive Status Check" which just reports SMART Status OK, and a quick and long drive test (which I assume are more about disk integrity and bad sectors than anything relating to power). I went ahead and ran the quick test anyway which returned "Passed" status.

BTW, if I completely unplug the drive the ports go to "Low Power" so the fact that they go to None when the drive spins down make me assume this has to be the MacBook and/or OS and not anything specific to the drive.
 

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
BTW, if I completely unplug the drive the ports go to "Low Power" so the fact that they go to None when the drive spins down make me assume this has to be the MacBook and/or OS and not anything specific to the drive.
I circle back to the previous suggestion. If you get hold of an USB 2.0 cable or have an USB 2.0 hub, try to connect it through it. It’s not a permanent or ideal solution, but at least it’s a starting point.
 
Last edited:

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
I circle back to the previous suggestion. If you get hold of an USB 2.0 cable or have an USB 2.0 hub, try to connect it through it. It’s not a permanent or ideal solution, but at least it’s a starting point.
Put a USB-2 extension cable on the drive's USB 3 cable. Showed up in system profiler as Speed: up to 480 Mb/s so I'm pretty sure it was doing the job of downgrading the connection to USB2. No change in behavior, including my script showing the change from USEABLE->None->USEABLE over the course of a few seconds.

BTW, doubt it matters but the drive is actually an 8TB WD EasyStore, not Elements like I originally indicated. I don't think the names that WD put on the USB drive have anything to do with its performance or characteristics though, just warranty, bundled software, and marketing.
 

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
I’m sorry it didn’t work, it was a small chance to trick it.
Taking a look at the differences between Catalina and Big Sur/Monterey, there is a new kext /System/Library/Extensions/AppleUSBXHCIARM.kext besides the old AppleUSBXHCI.kext included in /System/Library/Extensions/IOUSBHostFamily.kext
I’ve searched for them with
sudo find /System/Library/Extensions/ -type f -name "AppleUSBXHCI*"
You can try to unload the new AppleUSBXHCIARM kext and see if the old ones can handle the drive.
To display the loaded kexts
kmutil showloaded --list-only | grep 'AppleUSBXHCI'
To unload the kext
sudo kextunload /System/Library/Extensions/AppleUSBXHCIARM.kext
To load it again
sudo kextload /System/Library/Extensions/AppleUSBXHCIARM.kext
 

Auream

macrumors newbie
Original poster
Feb 13, 2017
21
9
Weird, my system doesn't have those drivers. Instead it has only /System/Library/Extensions/IOUSBHostFamily.kext, and inside that are:
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/MacOS/AppleUSBXHCIPCI
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCI.kext/Contents/MacOS/AppleUSBXHCI

I don't have any instance of AppleUSBXHCIARM.kext showing up either on disk or in the output of kmutil showloaded --list-only | grep 'AppleUSBXHCI'
 

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
My mistake, only in Big Sur is like that.
In Monterey there is this one /System/Library/Extensions//IOUSBDeviceFamily.kext/Contents/PlugIns/AppleUSBXDCIARM.kext
Another way to search
system_profiler SPExtensionsDataType | grep --include "Location" "AppleUSBX"
 

wiregen

macrumors member
Jun 10, 2004
64
7
I just want to chime in on this also. I've been dealing with this issue also. All my external drives have this behavior and its driving me bonkers. I'm a video editor and when editing on FCPX it would be fine. The moment say I go into a browser reading something for less than 10 seconds the drive goes to sleep and takes time for the drive to spin back up

  • I've disabled 'Put Hard Disks to sleep whenever possible'
  • Used terminal commands to disable drive sleep | sudo pmset -a disksleep 0
  • Used the Mac App Amphetamine and used their feature Drive-Alive which writes to the drive every 10 seconds or whatever time you put and that doesn't work
  • Used different USB-C cables, 2 different thunderbolt 3 hubs (anker 13-in-1 and elgato's) and same result
I'm leaning to more this is a bug or something in Monteray. Here are my system specs

14" M1 Max 24c GPU, 32gb ram, 1tb Storage
macOS Monterray 12.1
 

bogdanw

macrumors 603
Mar 10, 2009
6,099
3,010
Loading the AppleUSBXDCIARM kext
sudo kmutil load -p /System/Library/Extensions/IOUSBDeviceFamily.kext/Contents/PlugIns/AppleUSBXDCIARM.kext
unloading
sudo kmutil unload -p /System/Library/Extensions/IOUSBDeviceFamily.kext/Contents/PlugIns/AppleUSBXDCIARM.kext
 

wiregen

macrumors member
Jun 10, 2004
64
7
Loading the AppleUSBXDCIARM kext
sudo kmutil load -p /System/Library/Extensions/IOUSBDeviceFamily.kext/Contents/PlugIns/AppleUSBXDCIARM.kext
unloading
sudo kmutil unload -p /System/Library/Extensions/IOUSBDeviceFamily.kext/Contents/PlugIns/AppleUSBXDCIARM.kext
So I tried to unload the kext and I got this error
Error Domain=KMErrorDomain Code=71 "Kernel request failed: (libkern/kext) kext is in use or retained (cannot unload) (-603946984)" UserInfo={NSLocalizedDescription=Kernel request failed: (libkern/kext) kext is in use or retained (cannot unload) (-603946984)}

I was able to load kext fine it didn't come back with any errors
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.