SpinRite (was: FYI)
Mike Bilow
mikebw at colossus.bilow.com
Wed May 1 18:04:53 EDT 2013
On 2013-04-28 11:19 ET, Ben Scott wrote:
> On Sun, Apr 28, 2013 at 12:27 AM, Bill Ricker <bill.n1vux at gmail.com> wrote:
>> If the disk is failing, perhaps what it needs in SpinRight to recover the
>> iffy blocks. Not Free, not Open, but good stuff and not expensive.
> Oh boy. This is going to get into religious territory.
Conceded. I should disclaim that I am the author of the BruteForce(TM)
Hard Drive Utilities from the same era.
> I am of the opinion that while SpinRite is not a total scam, it's
> highly overrated, mostly obsolete, and all of it's useful
> functionality is now available in free programs elsewhere. SpinRite
> *may* have had some relevance back in the days of MFM, when hard
> drives were powered by steam and people still thought MS-DOS was a
> good idea, but it's not worth paying for these days. And some of the
> claims made by the author are bunk and always have been.
SpinRite was originally designed for one primary purpose: it was the
only software that was capable of turning off ECC when test-reading
older technology drives. Admittedly this was of value only a very long
time ago in the MFM/RLL era and was quickly rendered much less useful as
the amount of abstraction increased with the ATA interface. It was still
possible to request that ECC be disabled with ATA and SCSI, and
presumably this could give a decent indication of the health of the
media in ways that were substantially hidden in ordinary operation, but
eventually there were standardized methods built into interface
technology that provided that kind of information obtained from logging
in normal operation, such as SMART for ATA.
Steve Gibson's theory behind SpinRite was that the principal cause of
partial (as opposed to catastrophic) data loss was dimensional
instability, most of which resulted from thermal migration beyond the
tiny mechanical tolerances of cylinder position, and this was an
expected consequence of normal aging. Therefore, he reasoned, he could
test-read every sector on the media with ECC disabled, and if it was bad
then he could re-enable ECC to recover the data and rewrite it more
emphatically, thereby compensating for the dimensional changes inside
the drive. A significant piece of evidence in support of his theory was
the information-theoretic phenomenon that degradation occurred faster
with RLL encoding despite its being physically identical to MFM
encoding, implying a tighter tolerance.
Although I believe Gibson was correct, as a practical matter SpinRite
ceased to be really useful once similar functionality was built into
intelligent drive controllers necessary for zone-bit recording -- which
was sometime around when drive sizes started to exceed 32MB. The last
drive that I had in operation where SpinRite was truly valuable was a
5.25-inch full-height 120MB Maxtor than had been formatted out to 180MB
using RLL; in those days, Maxtor was a very high-end, extremely
well-engineered independent brand rather than the bargain subsidiary of
Seagate that it is today. That Maxtor drive had triple-redundant spindle
sensors so that despite becoming noisy it continued in operation with no
data loss when one failed, and that was why it was retired from service
in operating condition.
> SpinRite will read every block on the disk, to make sure they still
> can be read. This is useful. But even CHKDSK/SCANDISK will do that,
> and have since DOS 6, circa 1993.
As explained, SpinRite went directly to the hardware, which was the only
way to bypass ECC. By the way, CHKDSK does not by default read every
sector: the "/R" switch is required to enable that behavior, and it
certainly could never disable ECC.
> SpinRite will read-and-rewrite blocks. There are scenarios where
> this may be a plausible benefit, such as allowing the drive's built-in
> relocation mechanism to relocate a marginal sector. But "badblocks
> -n" will do the same thing, for free.
SpinRite was not looking for bad blocks, which are easy enough to find,
but for "gray area" blocks that were good enough to be readable with ECC
enabled but not good enough to be readable with ECC disabled. It was the
first implementation of "early warning" technology, such as SMART, that
is now built into every drive. In the SpinRite era, only SCSI drives had
sector relocation mechanisms and these usually had to be specifically
enabled by setting the particular Mode Page that controlled Read-Write
Error Recovery; SpinRite simply copied the file.
> SpinRite will read blocks over and over again. If a read fails, it
> will keep trying until it succeeds, which is useful on a failing but
> not dead drive. But dd_rhelp will do the same thing, for free.
>
> To read a bad block, SpinRite will try tricks like seeking to
> adjacent cylinders/heads/sectors and back again, in various
> directions. This was plausible for ancient drives, but everything
> made in the past 20 years or so has abstracted the real disk geometry
> away from the host, even when presenting "CHS". So these tricks are
> meaningless on anything that isn't old enough to run for congress.
This is largely true, but even so simple an action as explicitly
flushing the cache can help. SpinRite was, again, originally intended as
a preventative maintenance tool and took off into feature creep where it
was marketed as a recovery tool and began to be regarded as a magic
panacea. Its underlying theory of operation was certainly plausible and
in my opinion correct, but it continued to be sold on its reputation
long after it was no longer useful. Even so, in the modern era you are
probably better off using something like "smartmontools" to initiate a
long self-test on the device.rather than manually test-reading every
block on a regular basis.
> And, of course, SpinRite is from Steve Gibson, who always talks like
> an infomercial host. Billy Mays could have taken lessons from Gibson.
>
> Gibson claims SpinRite "interfaces directly to the hard disk
> system's hardware", which somehow gives it magical abilities.
> Everything I've seen suggests this is an outright lie. SpinRite
> flat-out won't work if the drive isn't presented using BIOS interrupt
> 0x13.
Gibson has a personality, but he walks the walk as well as talks the
talk. I've had occasion to ask him very detailed technical questions and
he knew his stuff. Gibson's claim about interfacing directly to hardware
with register-level awareness was absolutely true in the days of
proprietary controllers: keep in mind that companies such as Miniscribe
placed their API under NDA, which was manifestly stupid. Several drive
controllers just used off-the-shelf chipsets for which data sheets were
publicly available, but they still put their API under NDA even though
it was little more than that of the chipset. Well into the ATA era, all
controllers continued to have proprietary registers and so forth that
were often subject to NDA. Eventually these functions were subsumed
under vendor-independent parts of later revisions of ATA, for which
Linux and open source were major driving forces, and this nonsense is a
thing of the past.
> He claims things like "hardware register level awareness of IDE and
> SCSI drives". SCSI drives *don't have hardware registers*. The SCSI
> spec is quite abstract and hides all that stuff. Further, you don't
> talk to a SCSI drive, you talk to a host adapter. You literally
> *cannot* talk directly to the drive.
>
> You can, however, request additional sense data and mode pages,
> which provide a wealth of useful information about the drive. In the
> DOS environment under which SpinRite runes, this is done through the
> ASPI interrupt calls. It's a useful capability, and I expect it's
> what SpinRite does, but it isn't the Amazing Scientific
> Breakthrough!!!1! Gibson claims it is. He just Read The Fscking
> Manual and learned how to use ASPI.
It's not that simple. First, SpinRite dates to an era when there were
actually SCSI 1.0 devices before all of this confusion was cleaned up in
SCSI 2.0. Second, even in SCSI 2.0, it was common for drives to ship in
a default configuration that was very stripped down on the assumption
that SCSI drives were being sold to OEMs who intended them to be
integrated into very expensive systems. While it was possible for an end
user to just buy a SCSI drive and plug it into a controller, much of the
supply of drives consisted of particular models that had been given a
"personality profile" to work with AIX, HP/UX, Ultrix, or whatever else.
Drive manufacturers simply had no expectation until much later that some
random administrator would buy SCSI drives and build a custom server to
run Novell NetWare or something like that, and there was a need for
software to fill that niche. As late as the 1990s, Linux had very
primitive tools that would at least allow manual inspection and
modification of SCSI Mode Pages, but this was literally on the level of
bit-twiddling and demanded expertise not only in storage technology but
hexadecimal arithmetic. This was very exacting and tedious work, hardly
a matter of looking in a book and filling in blanks, especially since
writing a bad value to a SCSI Mode Page could turn an expensive drive
into a brick.
> I do think SpinRite did things other software wasn't doing, at the
> time and place it was introduced in. Even something as simple as
> pattern testing wasn't common in the dark ages of DOS. (Other
> platforms had it, but the IBM-PC was the ghetto of the computer
> world.) I acknowledge that. It was valuable at the time, and even
> today, I suppose a nicely-presented, integrated package might still
> have value.
SpinRite used pattern testing specifically to trigger worst-case
scenarios with the (2,7) RLL encoding that became the de facto standard.
Technically, the physical drive is identical whether the encoding is
relatively sophisticated such as (2,7) RLL or relatively unsophisticated
such as (1,3) RLL (which is a special case known as "MFM"), and Gibson
realized that the bandwidth requirements of such encoding methods would
translate directly into tolerance constraints for dimensional stability
and timing. This was by no means obvious in the 1980s, and it must be
remembered that SpinRite emerged in an era contemporaneous with music CD
technology that was driving cutting-edge research into (2,10) RLL and
the first commercial use of Reed-Solomon ECC.
> But that doesn't mean Gibson's bullshit doesn't stink.
Yes, SpinRite was misunderstood and overhyped, and it stuck around as a
magic elixir for far longer than it should have, but 25 years ago it was
a remarkably effective and prescient utilization of stone knives and
bear skins.
>> (And it makes possible the Security Now! podcast.)
> Regardless of the efficacy of SpinRite, Steve Gibson is in way over
> his head when it comes to security. His habit of being uninformed and
> making stuff up has burned him more then once.
I cannot defend Gibson on security.
-- Mike
More information about the gnhlug-discuss
mailing list