How to test hard drive - diskutility reports defective drive as perfectly fine

long story I have an USB drive to copy data between Mac, Windows (personally I don't own any) and PS4 - it is exfat formatted. Recently I noticed my Mac would freeze when I plug in this disc - also there is a directory in the top hierarchy that I could not open. Since this drive moves around a lot I suspected an unlucky disconnection caused corruption. Checked the drive and the only partition with disk-utility "first aid" - which report everything is fine. Despite this in the system log there are plenty of I/O errors. Looks like I need to trash it. But I sure had loved it if my mac gave me any warning that I was using a bad drive (I kinda forgive the PS4 that she didn't warn).

So for the future what check should I use?

I see that there are older questions discussing a similar questions, though they are 5 years old and also some of the link tools are dead now. Also this question is not about data recovery, but how to asses a drive.

tl;dr What program (on mac) can I trust to check my discs?


Solution 1:

I reccomend Disk Drill. Their diagnostic and monitoring tools are free, but the recovery functionality (if you need it) is what you will have to purchase.

There's also a very robust set of command line (CLI) tools available as open source: smartmontools. This is a available as a macOS binary package so you don't need to install via brew or MacPorts.

Important: One thing to keep in mind when diagnosing external drives is that you have two components:

  • the drive itself
  • the USB enclosure

I have had USB enclosure's fail (the USB to SATA portion) that looked like a drive failure. The best way to get around this is to remove the drive (if you can) and use a separate USB-SATA Adapter. What you are doing is eliminating one of the components from the diagnostic equation (the USB interface) with a "known working" component. They are cheap (approx $10) to keep for diagnostic purposes.

enter image description here

That said, a drive diagnostic is not a "quick status check." To find bad blocks you may need to do a "deep scan" because a bad block isn't reported until the drive encounters a bad block.