100% full USB stick un-mountable after forced eject

disk-utilitydiskutilmountpartitionusb

During an rsync my USB stick became 100% full without me noticing it.
When I tried to eject it, I got a message that it was in use, but no application was named and I could not see anything that was using it, so I took the option to "force-eject" it.

After unplugging and replugging the USB stick it silently failed to mount.

Here's my diskutil list:

(stable) └─❱❱❱ diskutil list                                          1 ⏎  +6150 22:06 ❰─┘
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS MacL2938                250.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *124.2 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                  Apple_HFS USB128GB                123.9 GB   disk1s2

The culprit is disk1.

Mounting it fails:

(stable) └─❱❱❱ diskutil mount readOnly USB128GB                       1 ⏎  +6160 22:17 ❰─┘
Volume on disk1s2 failed to mount
If the volume is damaged, try the "readOnly" option

and the volume info indicates the 0 Bytes available space (possibly the reason for the problems?)

(stable) └─❱❱❱ diskutil info USB128GB    +6130 20:45 ❰─┘
   Device Identifier:        disk1s2
   Device Node:              /dev/disk1s2
   Whole:                    No
   Part of Whole:            disk1
   Device / Media Name:      USB128GB

   Volume Name:              USB128GB

   Mounted:                  No

   File System Personality:  HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended
   Journal:                  Unknown (not mounted)
   Owners:                   Disabled

   Partition Type:           Apple_HFS
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 USB
   SMART Status:             Not Supported
   Volume UUID:              D41ECDE8-6BEF-300F-B654-F1DB70D5425B
   Disk / Partition UUID:    6233D470-4709-4BE6-9DD9-1AD6997F5013

   Total Size:               123.9 GB (123874533376 Bytes) (exactly 241942448 512-Byte-Units)
   Volume Free Space:        0 B (0 Bytes) (exactly 0 512-Byte-Units)
   Device Block Size:        512 Bytes

   Read-Only Media:          Yes
   Read-Only Volume:         Not applicable (not mounted)

   Device Location:          External
   Removable Media:          Yes
   Media Removal:            Software-Activated

The verifyDisk fails:

(stable) └─❱❱❱ diskutil verifyDisk disk1                                   +6151 22:07 ❰─┘
Started partition map verification on disk1
Checking prerequisites
Checking the partition list
Checking the partition map size
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 found with the partition map which might prevent booting
Error: -69842: Couldn't mount disk

while the volume USB128GB seems to be okay:

(stable) └─❱❱❱ diskutil verifyVolume USB128GB                         1 ⏎  +6152 22:08 ❰─┘
Started file system verification on disk1s2 USB128GB
Verifying file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume USB128GB appears to be OK
File system check exit code is 0
Finished file system verification on disk1s2 USB128GB

repairDisk fails as well:

(stable) └─❱❱❱ diskutil repairDisk disk1                                   +6158 22:15 ❰─┘
Unable to repair this whole disk: A writable disk is required (-69772)

Does a device need remaining space to be repairable? I'm confused why a diskrepair would fail with this message or how it even gets un-writeable, while the volume isn't even mounted (so it's not a mount-RO vs mount-RW question).

Here's some gpt info, not sure it will help:

(stable) └─❱❱❱ sudo gpt -r -vvv show -l /dev/disk1                         +6153 22:09 ❰─┘
Password:
gpt show: /dev/disk1: mediasize=124218507264; sectorsize=512; blocks=242614272
gpt show: /dev/disk1: PMBR at sector 0
gpt show: /dev/disk1: Pri GPT at sector 1
gpt show: /dev/disk1: GPT partition: type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, start=40, size=409600
gpt show: /dev/disk1: GPT partition: type=48465300-0000-11AA-AA11-00306543ECAC, start=409640, size=241942448
gpt show: /dev/disk1: Sec GPT at sector 242614271
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6
         40     409600      1  GPT part - "EFI System Partition"
     409640  241942448      2  GPT part - "USB128GB"
  242352088     262151
  242614239         32         Sec GPT table
  242614271          1         Sec GPT header

The Google-FU is strong in this one, but so far I failed to make any sense of this, any tips would be highly appreciated.

Note that I'd like to salvage the data if possible, which is why I haven't tried to rewrite the partition map or anything else drastic yet. It's a very long time since I did such debugging back in the days when I compiled my own Linux kernels and harddrive drivers, so please forgive me when I omitted something obvious.

Update: For whatever reason, Disk Utility thinks the medium is not journaled, while I'm pretty sure that it was active (not 100% though).

Best Answer

Keep the USB connected and leave it for a while, walk away. It should eventually connect. Try over night?

I had a problem with my external hard drive behaving this way on MacOSX. Leaving it connected over night made it mount.