External HDs spontaneously unmount themselves, now one won’t remount

diskutilexternal-diskhard drive

I have a short stack of WD bus-powered external drives connected to my mid-2010 17" MBP through a 10-port powered hub. (According to specs, the hub supplies more than enough amperage to power all of them at once, but I've never actually tested the amperage.)

Over the last six months or so, I have seen irregularly recurring episodes of one or more of these drives spontaneously ejecting (not clean unmounts, but simply disconnecting). Usually, I've been able to trace the problem to the hub's power brick getting stepped on by a cat. (For some unfathomable reason, companies keep making wall warts that are not fully supported against the wall or the power strip, so that pressure on the end of the brick opposite the plug end pulls the plug out partially. Bad, bad design.)

Sometimes, though, there's no apparent cause for the disconnect. In these cases, most of the time the vanished drive will remount itself without intervention. Every so often, I'll have to unplug and replug the affected drive to get it to remount.

Today, one of these drives did the unmount trick and wouldn't remount. I've tried rebooting. I've tried plugging it directly into the MBP. I've read several questions and answers here that seem related, and tried the solutions that seemed applicable. Still no mount.

Disk Utility.app sees the drive, but cannot do anything with it. The volume name does not show up in the list. If I try Repair, it churns for a moment and then reports either "Couldn't mount disk" or "A disk with a mount point is required".

Terminal can see the disk also. Prior to reboot, ls -@aehlFGO (my aliased custom ls options) of /Volumes showed the volume name, but with way wrong permissions:

d--x--x--x+  2 root    admin  -       102B Mar 29 00:20 Raptor/
 0: group:everyone inherited deny add_file,add_subdirectory,directory_inherit

My other external drives show correct permissions of drwxrwxr-x@ with owner/group of either me/staff or root/wheel, with no ACL. Since reboot, of course, the affected drive is not listed in /Volumes at all.

diskutil list shows the affected drive as disk6. Everything there appears normal, except that there's no volume name:

/dev/disk6
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk6
   1:                        EFI                         209.7 MB   disk6s1
   2:                  Apple_HFS                         999.8 GB   disk6s2

Per advice given in another question, I ran sudo gpt -r show disk6 and got the following output (which I don't quite know how to interpret):

       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34           6         
          40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      409640  1952786352      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  1953195992      262151         
  1953458143          32         Sec GPT table
  1953458175           1         Sec GPT header

Running the same command on one of the other external drives of the same capacity produced identical output, so I'm guessing that this means the partition table is normal.

Trying the suggestions from another answer got me nowhere:

Wed 2017-03-29 04:37:54 PM qpanda in ~ -bash 4.4.5
$ diskutil mountDisk /dev/disk6
One or more volume(s) failed to mount
Wed 2017-03-29 04:46:35 PM qpanda in ~ -bash 4.4.5
$ diskutil mountDisk readOnly /dev/disk6
One or more volume(s) failed to mount
Wed 2017-03-29 04:47:21 PM qpanda in ~ -bash 4.4.5
$ diskutil mountDisk /dev/disk6s1
One or more volume(s) failed to mount
Wed 2017-03-29 04:48:41 PM qpanda in ~ -bash 4.4.5
$ diskutil mountDisk /dev/disk6s2
One or more volume(s) failed to mount
Wed 2017-03-29 04:49:16 PM qpanda in ~ -bash 4.4.5
$ diskutil unmountDisk /dev/disk6
Unmount of disk6 failed: at least one volume could not be unmounted
Wed 2017-03-29 04:55:22 PM qpanda in ~ -bash 4.4.5
$ diskutil unmountDisk force /dev/disk6
Forced unmount of disk6 failed: at least one volume could not be unmounted
Wed 2017-03-29 04:57:01 PM qpanda in ~ -bash 4.4.5
$ diskutil eject /dev/disk6
Volume timed out while waiting to eject
Wed 2017-03-29 04:57:48 PM qpanda in ~ -bash 4.4.5
$ diskutil eject force /dev/disk6
Unable to find disk for force

So now I'm not sure what to do. The drive spins when I plug it in, and the activity light shines normally, but nothing I have seems able to do anything at all with the drive except get a small amount of basic info from it.

I keep this drive backed up on Time Machine, and there's a current backup from shortly before the unmount, so I'm not overly concerned about data loss. My question is whether there's any point in continuing to try to access this drive so I can reformat it and restore the data, or should I just go ahead and replace it?

I'm not sure if this drive is still under warranty, but I'm going to check that with WD later tonight (all my WD drives are actively registered, thankfully). Whether it is or not, though, replacing the drive means either spending too much money (either for a local in-store purchase or for overnight shipping on an online purchase) or being without it for a few days. Since this drive's contents are all personal use, not business, it's not an expense I can write off. So if it's reasonably possible to get this drive working, even just in the short term, that would be my preference.

So, do I have any hope of salvaging this drive? Or should I just give it the Viking funeral?

Best Answer

My drive is functioning again!

I had to reboot into Safe Mode with the drive unplugged, and then plug it in after login, to get diskutil to allow me to do anything to the disk. The volume appeared to mount correctly, but I wanted to run a check on the disk itself (not just the volume) to be sure. This was the returned error:

Thu 2017-03-30 07:03:48 PM qpanda in ~ -bash 4.4.5
$ diskutil repairDisk disk7
Repairing the partition map might erase disk7s1, proceed? (y/N) y
Started partition map repair on disk7
Checking prerequisites
Checking the partition list
Adjusting partition map to fit whole disk as required
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Checking the EFI system partition's folder content
Problems were encountered during repair of the partition map
Error: -69842: Couldn't mount disk

At which point I decided not to take unnecessary chances and just reformatted it as new. Time Machine is now repopulating the drive from the backup, which I expect to take a while (800 GB doesn't copy in an instant).

I checked my records, and of course, of the three of these drives I'm currently using, this is the only one that's out of warranty. Figures. So I'll be looking for a good deal on a replacement. It was starting to get crowded anyway.

So, my problem is solved for now. I think the Safe Boot was the key thing that allowed me to get it working again. Time to check my third-party kexts and daemons again to see if one of them was interfering.