Why Spinrite is not Data Recovery software. STATUS: DRAFT
I am not on a crusade against Spinrite. However every so often I get tangled up in discussions where I feel the need to explain that Spinrite is not data recovery software and that the perceived magic Spinrite performs is not magic. I often encounter fanatic resistance. It is not my intention to change the fanatic’s opinion but I hope you will think twice before using Spinrite for the purpose of data recovery.
Using Spinrite for the purpose of data recovery is bad practice. What it actually can do can be done faster and safer using other, sometimes free, software.
I am mainly interested in the data recovery portion of Spinrite. All over the web you will find people who unfortunately suggest to run Spinrite for the purpose of recovery of data from ‘dead’ disks. I decided to do this post after having a yet another discussion here: http://www.fact-reviews.com/info/Spinrite.aspx.
What the heck is Spinrite and what does it do?
If you understand how disk error management works, Spinrite’s miracles are easily explained by sector reallocation. Nothing Magical about that.
It is hard to get a quick and easy written description from the Gibson Research website what Spinrite actually is and does. On the main Spinrite page you will see a video that supposedly explains what Spinrite does, and also an URL to testimonials. In essence you could describe Spinrite, it’s use, and methodology in a few sentences.
Two minutes into the video and I still don’t know what it does (yeah, ‘magic’). The ‘word of mouth’ link to testimonials does not explain at any point what it is that Spinrite does. What it does remind me of is one of those ‘get rich in 3 easy steps’ type websites. Where they continue feeding you testimonials and drag you in bit by bit. Promise by promise. Miracle by miracle. Keep claims vague so you can easily claim success or dismiss criticism.
At the main Spinrite page (https://www.grc.com/sr/spinrite.htm) nowhere can I find the beginning of a description what it is that Spinrite does. Or what kind of problems I can use it for. The page header simply says ‘Spinrite, it works’. Nowhere is a list of issues or problems that you can supposedly fix using Spinrite. Also, there is no user guide for Spinrite 6.
The testimonials page lists lots of rather vague and diffuse problems that were ‘fixed’ after running Spinrite. Many of the fixes can be explained by ‘sector reallocation’ which I will explain later. Just the mere fact of software reading from and writing to a sector triggers this behavior in hard disks to replace defective sectors by spares. The vague, magic and miracle fixes are however attributed to Spinrite.
Data loss is not actually … data loss
Most testimonials do not mainly describe data loss, instead they describe some vague issue that is attributed to hard disk related problems by the user.
Because it is based on solid science and proven engineering, SpinRite routinely performs miracles of data recovery for 1/100th the cost of independent third-party data recovery services. You just run it and SpinRite fixes everything that’s wrong. Sometimes it will warn of more serious impending trouble.
Common reasoning among Spinrite believers appears to be: Disk is magically fixed from a rather vague, ill defined problem: Spinrite did it. Or, disk is not magically fixed: If Spinrite can’t fix it, nothing can. The latter is simply not true, however, the disk is simply given up on.
By keeping the claims vague, it easy to attribute any desired outcome to Spinrite. This is just a modest quote from the Spinrite 5 pages:
SpinRite is the most capable, thorough, and reliable utility that has ever been created for the long term maintenance, recovery, and repair of mass storage systems.
In my own words and simply put: Spinrite is a DOS utility for hard disk maintenance and ‘data recovery’. The data recovery portion is basically nothing more than a read/write disk surface scanner: Sectors are read from and written to.
What can Spinrite do to recover data
What happens inside a bad disk?
It has been documented that Spinrite ‘uses’ INT13h software interrupts to read from and write to hard disks. INT13h software interrupts are an API offered by the system BIOS to access individual sectors on a hard disk. To talk to the disk on an even lower level you’d need to issue ATA commands to the disk directly.
Even when ‘talking’ to a hard disk on low level, there is a lot of things you can not influence. For example, a disk’s internal software (the firmware) is equipped to deal with lot’s of different situations it might run into. Such as errors. If a disk runs into a sector it can not initially read it will employ a number of error recovery techniques to try to get the data from the sector. All that the software that requests the data can do is wait until the disk is done.
The disk then either delivers the data, or it reports and error. Up on error the requesting software can issue a new read command to force the disk to retry the whole procedure.
Bad, bad sector!
A sector that can not be read from is commonly referred to as a bad sector. Sometimes re-reading the sector multiple times results in a successful read. In some cases the disk may reallocate this sector immediately: The contents of the sector are stored in a spare sector, and the bad sector is taken out of service. The disk itself keeps track of these sectors.
If a sector can not be read at all, the sector will only be reallocated once the sector is written to. By using software, mostly specialized hard disk diagnostic and repair software, the sector is written to, signaling to the disk that it is okay to reallocate the sector and give up on the original sector data. And essentially, this is what Spinrite does when it repairs hard disks. And it accounts for many of the supposedly ‘magical’ disk repairs.
If you understand how disk error management works, Spinrite’s miracles are easily explained by sector reallocation. Nothing Magical about that.
Spinrite Data Recovery (Dynastat) and why it is a bad idea.
If a hard disk can not read a sector, basically all that the requesting software including Spinrite can do, is try to read the sector again. And it is exactly what Spinrite does when it switches to it’s data recovery mode: Dynastat mode. Spinrite will attempt to read the sector upto 1000 times (2000 even according to Wikepedia)! It will compare the successful reads and try to determine the correct, original data.
Why this is a bad idea when we need to recover data from the disk: Often the disks that start showing bad sectors show multiple bad sectors. Sometimes ‘grouped’ and sometimes multiple groups of them. Often these disks will start showing alarming SMART data. The occurrence of multiple bad sectors is a good indication that there may be a more structural underlying cause for those sectors to go bad.
On a disk that is going bad, you do not want to force the disk to do thousands of reads on bad sectors. So, you do not want it to do what Spinrite does. The stress from the re-reads may very well be the last push the disk needs.
Also, based on this article, re-reading sectors over and over, and doing long reads over and over, does not result in reliable data at all. It produces random bytes. There is zero point to it. 2000 times zero, is still zero.
Better alternatives to get data from a bad disk.
We need to get as much data, as quickly as we can from a possibly dying disk. Why waste time (you don’t know how much time you still have) on hard to read sectors rather than getting the easy to read sectors first?
And, why not, rather than ‘fixing’ data on a possibly dying disk, a disk that can never be actually be physically repaired, copy all data we can get to another disk?
This is why all people that are serious about data recovery, including data recovery labs will try to clone a hard disk first. They will employ software, or a combination of specialized hardware and software that first gets the easy to read data. This is often the bulk of the data. Areas that are hard to read will be processed last. If needed such combinations of specialized hardware/software can even avoid using a specific disk head or avoid using corrupt firmware.
For the hard to read areas re-reads can be tried. Also the bad areas can be approached from different angles: reverse cloning.
Specialized hardware is expensive. If data is not valuable enough to sent the bad disk to a data recovery lab, the end user can use specialized cloning software. In essence this software ignores read errors. Also, as bad sectors sometimes tend to group, the software typically skips a number of sectors after a read error. This to avoid bad sectors and lengthy error recovery procedures from the hard disk itself. After the software gets all the easy to read sectors, it can turn it’s attention to the sectors it initially skipped.
Examples of such software are Ddrescue (free) and my own tool DiskPatch (commercial).
There is only one bad sector anyway. Can I fix that?
Under circumstances it is actually safe to ‘fix’ a few bad sectors. I know I am on thin ice here, but I had a few of those disks myself which turned out to be okay: For example, I had a RAID controller flagging a array member as ‘bad’. I took the disk from the array and examined it’s SMART data. The disk looked healthy apart from two sectors pending reallocation.
Such sectors could not be read but since no data could be recovered from them they are pending reallocation until data is written to them. In such a case you can run a DiskPatch read/write surface scan after which the sectors will be reallocated. You can use Spinrite for that purpose as well. Run some more surface scans to make sure the disk is stable. Monitor the disk closely over the next few weeks (SMART). To do this automatically you can install a SMART monitor.
Sources:
https://articles.forensicfocus.com/2013/01/21/bad-sector-recovery/
https://www.grc.com/groups/spinrite.dev:379
https://www.grc.com/files/sr5_lit.pdf
https://www.grc.com/groups/spinrite:10501
https://www.grc.com/x/news.exe?cmd=article&group=grc.spinrite&item=12688&utag=
https://www.grc.com/sr/spinrite.htm (Spinrite)
https://www.grc.com/sr/testimonials.htm
https://en.wikipedia.org/wiki/INT_13H
http://www.diydatarecovery.nl (DiskPatch)
https://www.gnu.org/software/ddrescue/ (Ddrescue)
The post Spinrite is not Data Recovery software appeared first on DiskTuna Disk Utilities.