SpinRite is not a defrag tool, but it is one of the best ways of keeping hard drives alive and working, and of recovering data from faulty drives.
SpinRite Product Overview
Spinrite is run from a boot diskette, CD or USB memory stick, and uses FreeDOS as its operating system. It connects directly with any hard drives connected to the motherboard, and with some devices that use USB or other connectors. These drives can be from PVR, Tivo or iPod devices; or Mac, Linux or PC hard drives. SpinRite takes very little notice of the operating system on the drive. It looks at the data on a purely sector-by-sector basis, and can examine areas of the drive not allocated to any operating system at all.
In (Level 4) "maintenance mode" SpinRite reads each sector, inverts all the bits, writes them to the sector, inverts them again (i.e. back to the original bit pattern) and then writes them again. In each case it verifies that the bits were correctly written, and goes into "recovery mode" if not. The effect of this bit inversion process is that every bit on the drive is re-written, giving it a new magnetic signal. Since the analog signal on a magnetic medium decays over time, this process "rejuvenates" the signal to its peak strength, ensuring no data loss. On large drives this can take a very long time.
During "data recovery" mode SpinRite attempts to read and reconstruct all the bits in a given (faulty) sector, even if the sector is reporting an ECC error. This uses "dynastat mode", where the drive attempts to read the sector form different approaches, and the analog signal is analysed until the most likely bit pattern is determined. Once the bit pattern has been determined, it is written to a new location, and the drive can then "retire" the faulty sector so it is no longer used. Often the recovered data is accurate enough to allow the computer to work normally again.
During either mode, the drive reads all sectors, and the drive controller may determine that a given sector is faulty, and relocate the data to a working sector, before the data is lost. The software will also warn you if the drive is running too hot, or is in imminent danger of failing completely. The result of this is that the drive controller may never report any faults, but may have fixed them behind the scenes anyway.
The only "hassle" with using SpinRite is that you can't use the computer for anything else while it is busy, and the larger the drive the longer it takes to scan the drive. But the bigger the drive, the higher the data density, and the greater the chance of some data getting lost. So it is worth spending the time running SpinRite overnight once every 3 to 4 months, just to make sure that the drive is still working properly.
Not every motherboard and/or hard drive combination is supported. Certain HP laptops don't allow the drive to be detected correctly. When I reported this to GRC they offered me a complete refund. I refused, because I use it on other machines at home. That's why you will not find many bad reviews of SpinRite because it is not a gimmick and they offer no-questions-asked refund if you aren't satisified.
SpinRite wasn't able to help me recover data from a drive that had overheated badly, but since the heat had destroyed the magnetic signal, it wasn't surprising either, since the data was already destroyed. In most cases SpinRite is able to warn you if the drive is running too hot, and will stop working if the drive is overheated, in order to give the drive a chance to cool down rather than destroy any data.
SpinRite does not attempt to fix any corrupted data or defrag files. It only attempts to ensure that the data is stored reliably on a hard drive. If you attempt to use it on USB Flash drives, SSD drives, or any other form of storage that does not use a magnetic medium, be warned: don't use level 3 or 4 because you will shorten the life of the flash drive. Level 1 or 2 is fine.
If you use it on a RAID drive, run it on the individual drives, not via the RAID controller, since you need to connect with the actual drive, not a "virtual" drive that RAID controllers provide. If you must run it on the RAID controller, only use Level 2.
The cost of $89 may be more than the cost of a drive, but often the data on the drive may be worth a lot more, and so the investment is worth it. It's certainly cheaper than paying for data recovery from a data recovery service. Many data recovery services use SpinRite to do the recovery anyway.
Update: It is no longer necessary to use SpinRite for maintenance purposes on Windows machines: DiskFresh can do the maintenance part while Windows is running. See the separate DiskFresh review page. This is particularly useful since SpinRite took 330 hours (nearly 2 weeks) to do a full Level 4 scan of a healthy 2TB drive. During that time the entire machine was offline. In contrast, DiskFresh refreshed the same drive while it was in use in 22 hours.
Wikipedia SpinRite page
Most episodes of the "Security Now!" podcast have a SpinRite testimonial or story.
Kickstart News review, published ugust 2004, updated January 2007:
The opportunity for the first test appeared only one day after we received our copy of version 6. An 80GB hard drive on one of our busy storage servers decided to pack it in. Prior to trying SpinRite we were still able to access the drive intermittently but it was impossible to copy data or run a file undelete utility. A handful of important files had been written to the drive subsequent to the last backup the previous night; files which we needed within about 48 hours, which meant that a professional data recovery service (with its three week backlog) was out of the question. We removed the drive and installed it in an identical hardware configuration, then booted SpinRite 6 from CD and did a Level 2 recovery (see above for recovery level definitions). After 22 hours, SpinRite completed its work and pronounced the drive fully recovered. We reinstalled the drive in the original server. It ran perfectly, the research assistant who had created the required files copied them off the drive and that was that. Nice job SpinRite 6. The drive was still running fine as we went to publication with this review two weeks after the incident. We used a level 2 setting in SpinRite: Recover Unreadable Data.
SysOpt tutorial by Jay S. Zeltzer, published August 10, 2005
Linux Journal review and tutorial, published July 19, 2004, written by Leon A. Goldstein
See the HD Tune review page for information on hard drive performance data, temperature monitoring and basic drive health.
See the DiskFresh review page for information on hard drive maintenance.