Windows Losing Drives After Sleep (Solved)

My main desktop PC dual-boots Windows 10 and Fedora Linux. I have an SSD drive for each OS, and recently added an HDD for larger shared storage. It’s worked out pretty well except for a recurring problem: Sometimes the shared drive just disappears from Windows after I wake it up from sleep mode.

I don’t mean Windows just unmounts the filesystem. I mean Windows stops seeing the hardware at all.

When that happens, it sometimes reconnects after a few minutes…and sometimes doesn’t. Which means it’s not only invisible in Windows, it doesn’t get cleaned up properly on reboot, so Linux will only access it read-only the next time I fire that up, until I get back into Windows and shut it down cleanly.

Time to get to the bottom of it. Most of what I found online boiled down to:

  • Update the SATA controller driver.
  • Update the motherboard firmware.
  • Make sure the cable connection is solid.
  • Move the cable to another connector.
  • Replace the cable.
  • Get a better drive, [brand the OP mentioned] is terrible.

Weird Symptoms

Some of the specific oddities I was seeing:

  • The storage drive, despite being an internal hard drive on the SATA controller, always appears as a removable drive in Windows.
  • When it disappears, so does the DVD drive. I haven’t used the DVD drive in ages, so I didn’t notice at first.
  • Linux doesn’t seem to lose the drive.
  • When the drives go missing, a storage controller shows an error in Device Manager.
  • The BIOS settings for the SATA controller showed only the SSDs on #3 and #4, and nothing on #1, #2, and #5.
  • The BIOS firmware updater, however, can see the filesystem on the shared drive. There are a lot of search results for a drive showing up in the BIOS but not in Windows. Not so many for the reverse!
  • In Linux, running lsscsi --verbose shows the SSDs on ports 2 and 3 (counting from 0, presumably), and the HDD and DVD on ports….6 and 7. Wait, what?

Fixed!

It turns out this motherboard has two SATA controllers, each with a different chipset: One AMD with 5 connectors, and one ASMedia with 2 connectors. I’d connected the SSDs to the AMD, and the HDD and DVD to the ASMedia.

I moved both cables to the AMD controller.

Now all the drives show up in the BIOS, Linux still sees them all, Windows doesn’t show the HDD as a removable drive…and most importantly, it’s been accessible immediately every time I’ve woken up Windows for a week.

Apparently something is broken about the ASMedia controller or its driver, but the AMD controller is fine. Good thing I had three free connectors on that one!

Leave a Reply

Your email address will not be published.

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