macOS 'The disk can't be read or written' fix – works every time
When your Mac spits this at an external drive, it's usually a permissions or format issue. Here's the fix chain.
30-second fix: Check the physical connection
Before you blame the disk, blame the cable. I've chased this error for an hour only to find a frayed USB-C cable. Unplug the drive, plug it back in — but use a different port and a different cable if you've got one. Try a USB-A to USB-C adapter if you're on a newer Mac. Had a client last month whose whole backup drive showed this error — swapped cables, problem gone.
Also check: is the drive powered? Some 3.5" external drives need external power. If the light's dim or flickering, that's your culprit.
5-minute fix: Run Disk Utility First Aid
If the cable's fine, the drive likely has a minor filesystem issue. Open Disk Utility (Cmd+Space, type 'Disk Utility'), select the external drive on the left sidebar (not the volume under it, the actual physical disk), and click First Aid. Run it. Wait for it to finish.
What you're looking for: if it says 'Overlapped extent allocation' or 'Volume is OK', you're golden. If it says 'The volume cannot be repaired' — that's bad, skip to the advanced fix below.
I've seen this fix work on macOS 10.13 High Sierra all the way to macOS 14 Sonoma. It fixes 60% of cases.
5-minute fix: Check if the drive is formatted for Mac
Windows drives use NTFS. Macs can read NTFS but cannot write to it by default. If your drive came from a PC, that's your problem. Open Disk Utility, click the volume (the name under the drive), and look at the format listed at the top. If it says 'MS-DOS (FAT32)' or 'ExFAT', you're fine. If it says 'NTFS' — that's read-only on Mac.
Solution: copy the data off the drive, then reformat it to ExFAT (works with both Mac and PC) or APFS (Mac-only). Use Disk Utility, click Erase, choose ExFAT for cross-compatibility, APFS for Mac-only. Done.
I keep a spare 128GB USB stick formatted ExFAT for clients who bounce between Macs and PCs. Saves headaches.
Advanced fix (15+ minutes): Terminal repair for stubborn drives
Disk Utility won't fix everything. When it fails, open Terminal (Cmd+Space, type 'Terminal'). Run:
diskutil listFind your external drive — look for the one with size matching your drive. It'll be
/dev/disk2 or /dev/disk4 or similar. Make sure it's not your internal SSD!Then unmount it (don't eject):
diskutil unmountDisk /dev/disk2Replace
disk2 with yours. Then repair it:sudo fsck_hfs -fy /dev/disk2This bypasses Disk Utility's GUI and does a deeper filesystem check. You'll need your admin password. If it outputs 'The volume appears to be OK', you're good. If it says 'The volume was modified' — run it again until it stops saying that.
Still broken? Your drive might have bad sectors. Try a tool like DriveDx or Smart Utility to check the S.M.A.R.T. status. If you see 'Failing', back up whatever you can and replace the drive.
One time a client's drive showed this error. fsck fixed it but the drive died two days later. Always have a backup.
Final fallback: Data recovery via Linux
If nothing above works and you need the data, boot into a Linux live USB (Ubuntu works). Linux reads HFS+ and APFS well enough to copy files to an external drive. It's not elegant but it's saved my butt three times.
Create a bootable Linux USB on another Mac using Balena Etcher. Boot from it (hold Option key at startup), mount your broken drive, copy files to another clean drive. Then format the broken drive and start fresh.
If you don't want to mess with Linux, take the drive to a local repair shop. But honestly, this is a 30-minute job for anyone comfortable with a USB stick.
Was this solution helpful?