macOS 'The disk can't be read by this computer' fix
Your Mac can't read an external drive. It's usually a corrupted partition table or bad cable. Here's how to fix it fast.
30-Second Fix: Reseat the Cable and Try Another Port
I've seen this error more times than I can count. The first thing — and I mean first — is to unplug the drive, wait 5 seconds, and plug it back in. Use a different USB or Thunderbolt port if you can. USB-C hubs are notorious for flaky connections. Pull the cable out of the hub and go direct to the Mac.
If that doesn't do it, grab a different cable. USB 3.0 cables go bad after a year or two. I keep a spare in my bag just for this. Half the time, that's all it is.
Still no luck? Move on.
5-Minute Fix: Run Disk Utility First Aid
Open Disk Utility (Finder > Applications > Utilities > Disk Utility). Find your external drive in the left sidebar — it'll usually be under External. Don't click the volume name (the indented one). Click the physical disk entry, the top-level one that shows the manufacturer and size.
Click First Aid and then Run. Let it finish. This checks the partition table and file system structure. If it reports errors, it'll try to repair them. Most single-volume drives will be fixed after this.
Pro tip: If First Aid fails, look at the exact error. If it says “The underlying task reported failure” or “Invalid B-tree node”, you're looking at a corrupted directory structure. Don't reformat yet — there's still hope.
15-Minute Fix: Force Mount via Terminal (When Disk Utility Gives Up)
When Disk Utility can't fix it, the partition table might just need a kick. Open Terminal (Finder > Applications > Utilities > Terminal).
First, list all disks:
diskutil listFind your external drive. It'll look like /dev/disk2. Look for the IDENTIFIER column. You want the whole disk, something like disk2, not disk2s1 (that's a partition).
Now try forcing a mount by partition identifier:
diskutil mountDisk /dev/disk2If that returns “The disk can't be read by this computer” again, we need to bypass the automatic check. Some drives have a bogus partition map. Try this:
sudo gpt -r show /dev/disk2Enter your admin password. Look at the output. If you see GPT partition with a valid MBR at the start, but the partitions look wrong (like only one entry when there should be more), you can try a direct mount using the partition itself:
diskutil mount /dev/disk2s1Replace disk2s1 with the actual slice number from the list output. If it mounts, your data is there. Immediately copy it off to another drive. Then reformat the external drive using Disk Utility — choose ExFAT for cross-platform or APFS for Mac-only.
Still no? The partition table is likely hosed. You'll need data recovery software or a Linux live USB to pull the files off raw. That's a separate fight for another day.
Why This Happens (The Real Culprits)
Most of the time it's a bad connection or a corrupted volume header. Unplugging the drive without ejecting it first — I know we all do it — can corrupt the partition table. So can a power surge through a cheap USB hub. The worst I've seen is a failing drive controller that intermittently corrupts writes. If you get this error repeatedly with the same drive, replace it. Don't trust it with backups.
What NOT to Do
- Don't run First Aid more than once in a row. If it fails twice, move to Terminal.
- Don't reformat the drive until you've tried everything above. Once you reformat, the data is gone.
- Don't bother with third-party repair apps for this specific error. The built-in tools are solid. You'll waste money.
If you got this far and nothing worked, your drive is in rough shape. Pull the data with a Linux live USB using ddrescue — that's the nuclear option. Or take it to a pro if the data's worth more than $300.
Was this solution helpful?