Jump to content

SpinRite: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Features: "file system controller" -> disk controller
Importing Wikidata short description: "Data recovery software"
 
(94 intermediate revisions by 53 users not shown)
Line 1: Line 1:
{{Short description|Data recovery software}}
{{Ad|date=January 2015}}
{{Primary sources|date=July 2008}}

{{Use mdy dates|date=November 2013}}
{{Use mdy dates|date=November 2013}}
{{Primary sources|date=July 2008}}


{{Infobox software
{{Infobox software
| name = SpinRite
| name = SpinRite
| logo = [[Image:Spinrite logo.jpg|100px|SpinRite Logo]]
| logo = [[Image:Spinrite logo.jpg|100px|SpinRite Logo]]
| screenshot = [[Image:Spinrite-6.0.png|250px|SpinRite 6.0]]
| screenshot = [[Image:Spinrite-6.0.png|250px|SpinRite 6.0]]
| caption = SpinRite 6.0
| caption = SpinRite 6.1
| developer = [[Gibson Research Corporation]]
| developer = [[Gibson Research Corporation]]
| released = {{Start date and age|1987}}
| released = {{Start date and age|1987}}
| latest release version = 6.1<ref name="sixpointone">{{cite web | last1 = Gibson | first1 = Steve | title = SpinRite v6.1 Final Release! | date = 2024-02-25 | url = https://forums.grc.com/threads/spinrite-v6-1-final-release.1493/ | language = en-us | website = Gibson Research Corporation | archive-url = https://web.archive.org/web/20240227175242/https://forums.grc.com/threads/spinrite-v6-1-final-release.1493/ | archive-date = 2024-02-27 | url-status = live | df = dmy-all}}</ref>
|| latest release version = 6.0
| latest release date = {{Start date and age|2004|06|7}}
| latest release date = {{Start date and age|2024|02|25}}{{r|sixpointone}}
| programming language = [[x86 assembly language]]
| frequently_updated = yes<!-- Release version update? Don't edit this page, just click on the version number! -->
| operating system = Included [[FreeDOS]] (doesn't use OS of host PC)
| programming language = [[x86 assembly language]]
| operating system = Included [[FreeDOS]] (doesn't use OS of host PC)
runnable from [[DOS]]
runnable from [[DOS]]
| platform = Any PC
| platform = Any PC with BIOS or UEFI+CSM
| size = 0.169&nbsp;MB executable, 1.40&nbsp;MB bootable disk image with FreeDOS OS
| size = 0.259&nbsp;MB executable, 1.40&nbsp;MB bootable disk image with FreeDOS OS
| language = English
| language = English
| genre = [[Hard disk recovery]]
| genre = [[Hard disk recovery]] and maintenance
| license = [[Proprietary software|Proprietary]]
| license = [[Proprietary software|Proprietary]]
| website = {{url|www.grc.com/sr/spinrite.htm}}
| website = {{url|www.grc.com/sr/spinrite.htm}}
}}
}}
'''SpinRite''' is a [[computer]] [[software program]] for scanning magnetic data storage devices such as [[hard disk]]s, recovering data from them and refreshing their surfaces. The first version was released in 1987. Version 6.0, still current {{As of|2015|3|lc=on}}, was released in 2004.<ref>{{cite web | title = SpinRite web page| url=http://www.grc.com/sr/spinrite.htm| accessdate = November 17, 2012}}</ref> SpinRite is run from a [[bootable]] medium (floppy disc, optical disc, bootable external storage device such as a USB stick) on a [[IBM PC compatible|PC-compatible]] computer. Spinrite uses its own [[operating system]] and ignores any boot loader or [[file system]] structure that may be on the drive being examined.
'''SpinRite''' is a [[computer program]] for scanning RAS Random Access Storage devices such as [[hard disk]]s, reading and rewriting data to resolve and retrieve data that is unreadable by DOS or Windows. The first version was released in 1987 by [[Steve Gibson (computer programmer)|Steve Gibson]]. The current version, 6.1, was released in 2024.<ref>{{cite web | title = Security Now #963| url=https://www.grc.com/sn/sn-963-notes.pdf#page=11| access-date = February 27, 2024 | archive-url = https://web.archive.org/web/20240227212629/https://www.grc.com/sn/sn-963-notes.pdf#page=11 | archive-date = 2024-02-27 | url-status = live}}</ref>

SpinRite is run from a [[bootable]] medium (such as a CD, DVD or USB flash drive) on a [[IBM PC compatible|PC-compatible]] computer, allowing it to scan a computer's storage medium. It does not depend on the operating system installed on the computer.


== History ==
== History ==
Line 33: Line 33:
|date=June 26, 2013
|date=June 26, 2013
|transcript=Transcript
|transcript=Transcript
|transcripturl=http://www.grc.com/sn/sn-410.txt
|transcript-url=http://www.grc.com/sn/sn-410.txt
|url=http://twit.tv/show/security-now/410
|url=http://twit.tv/show/security-now/410
|publisher=TWiT.tv
|publisher=TWiT.tv
|accessdate=November 21, 2013}}</ref> At the time SpinRite was designed, hard drives often had a defect list printed on the nameplate, listing known bad sectors discovered at the factory. In changing the drive's interleave, SpinRite needed to be able to remap these physical defects into different logical sectors. SpinRite therefore gained its data recovery and testing capabilities as a side-effect of its original purpose. Gibson states that today, drive interleave is no longer an issue, but the data recovery features of the tool proved to be so useful that it evolved into the data recovery tool that it is today.
|access-date=November 21, 2013}}</ref> At the time SpinRite was designed, hard drives often had a defect list printed on the nameplate, listing known bad sectors discovered at the factory. In changing the drive's interleave, SpinRite needed to be able to remap these physical defects into different logical sectors. SpinRite therefore gained its data recovery and testing capabilities as a side-effect of its original purpose. Drive interleave has long ceased to be an issue, but SpinRite continued to be developed, now using its remapping as a data recovery tool.


== Features ==
== Features ==
SpinRite tests the data surfaces of writeable magnetic disks, including IDE, [[SATA]], and floppy disks. It analyzes their contents and can refresh the magnetic disk surfaces to allow them to operate more reliably.
SpinRite tests the data surfaces of writeable magnetic disks, including IDE, [[SATA]], and floppy disks, plus SSD Solid State Drives. It analyzes their contents and can refresh the magnetic disk surfaces or flash memory storage to allow them to operate more reliably.{{citation needed|date=January 2021}}


SpinRite attempts to recover data from hard disks with damaged portions that may not be readable via the operating system. When the program encounters a sector with errors that cannot be corrected by the disk drive's [[error correcting code|error-correcting code]], it tries to read the sector up to 2000 times, in order to determine, by comparing the successive results, the most probable value of each [[bit]].<ref name="features"/> The data is then saved onto a new block on the same disk; it cannot be saved elsewhere. In this respect SpinRite differs from most [[data recovery]] software, which usually provides (and recommends) an option to save the recovered data onto another disk, or onto a separate partition on the same disk.
SpinRite attempts to recover data from drives that the operating system cannot read. When the program encounters errors reading data, it tries to read the sector up to 2000 times, in order to determine, by comparing the successive results, the most probable value of each [[bit]].<ref name="features"/> The data is then saved to the original location or to a location on the same disk; it does not save data elsewhere. In this respect, SpinRite differs from most [[data recovery]] software, which usually provides (and recommends) an option to save the recovered data onto another disk, or onto a separate partition on the same disk.


Gibson Research Corporation claims their SpinRite software will diagnose the quality of a disk drive, and make it work as reliably as possible with future use. Its developer, [[Steve Gibson (computer programmer)|Steve Gibson]], says his software was specifically designed to fix [[bad sector|sector problems]]. However, if a hard drive's circuit board, drive motors or other mechanical parts are defective, or there is systemic [[file system corruption]], SpinRite may be of little or no help.<ref>{{cite episode|transcript=Transcript| transcripturl=http://www.grc.com/sn/sn-155.txt |series=Security Now! |number=155 |title=BailiWicked Domain Attack |url=http://twit.tv/show/security-now/155 |date= July 31, 2008 |accessdate=November 21, 2013}}</ref> In fact, regarding mechanical issues ''no'' purely software-based solution would be sufficient to overcome the problem. When a hard drive has begun to develop mechanical faults, a program like SpinRite may sometimes be able to extend its usable life for long enough to carry out successful file recovery with other specialized software.
[[Steve Gibson (computer programmer)|Gibson]] says he designed SpinRite to fix [[bad sector|sector problems]], not failures of circuit boards, motors, or other mechanical parts.<ref>{{cite episode|transcript=Transcript| transcript-url=http://www.grc.com/sn/sn-155.txt |series=Security Now! |number=155 |title=BailiWicked Domain Attack |url=http://twit.tv/show/security-now/155 |date= July 31, 2008 |access-date=November 21, 2013}}</ref> When a hard drive's ability to read data slows and or begins unreliable, SpinRite may recover data that then can be copied to another drive.


SpinRite is declared by its developer to have certain unique features,<ref name="features">{{cite web | title = SpinRite Exclusive Features |publisher=grc.com| url=http://www.grc.com/srdocs.htm | accessdate = November 21, 2013}}</ref> such as disabling of disk write caching, disabling of auto-relocation, compatibility with disk compression, identification of the "data-to-flux-reversal encoder-decoder" used in a drive, and separate testing of [[Data buffer|buffered]] and unbuffered disk read performance. Another important feature is direct hardware-level access,<ref>{{cite web|last=Mainelli |first=Tom |url=http://www.pcworld.com/article/117080/spinrite_6_to_the_rescue.html |title=SpinRite 6 to the Rescue |work=[[PCWorld]] |date=August 2, 2004 |accessdate=November 21, 2013}}</ref> whereby the drive's internal controller interacts directly with the program, rather than through the operating system. This, in turn, allows dynamic head repositioning, whereby, when reading a faulty sector, the reading head is deliberately moved backwards and forwards many times, by varying amounts, in the hope that each time it returns to the sector, it may come to rest in a slightly different position. By performing [[statistical analysis]] on the succession of results thus obtained, SpinRite is, according to its maker, often able to "reconstruct" data from damaged sectors; and even in those cases in which complete reconstruction proves impossible, SpinRite is able to extract all intact bits from a partially damaged sector, and to copy them to a new block, thereby minimizing the amount of data lost.<ref>{{cite web | title = Anticipate Drive Problems Early with SpinRite v6.0 | publisher = sysopt.com |date=August 10, 2005 |first=Jay S. |last=Zeltzer |url = http://www.sysopt.com/tutorials/article.php/12034_3549006_1 |archiveurl =http://web.archive.org/web/20051125210241/http://www.sysopt.com/tutorials/article.php/12034_3549006_1 |archivedate=2005-11-25 |accessdate = November 21, 2013}}</ref>
SpinRite is claimed by its developer to have certain unique features,<ref name="features">{{cite web | title = SpinRite Exclusive Features |publisher=grc.com| url=http://www.grc.com/srdocs.htm | access-date = August 8, 2019}}</ref> such as disabling of disk write caching, disabling of auto-relocation, compatibility with disk compression, identification of the "data-to-flux-reversal encoder-decoder" used in a drive, and separate testing of [[Data buffer|buffered]] and unbuffered disk read performance, and direct hardware-level access,<ref>{{cite web|last=Mainelli |first=Tom |url=http://www.pcworld.com/article/117080/spinrite_6_to_the_rescue.html |title=SpinRite 6 to the Rescue |work=[[PCWorld]] |date=August 2, 2004 |access-date=November 21, 2013}}</ref> whereby the drive's internal controller interacts directly with the program, rather than through the operating system. This, in turn, allows dynamic head repositioning, whereby, when reading a faulty sector, the reading head is deliberately moved backwards and forwards many times, by varying amounts, in the hope that each time it returns to the sector, it may come to rest in a slightly different position. By performing [[statistical analysis]] on the succession of results thus obtained, SpinRite is, according to its maker, often able to "reconstruct" data from damaged sectors, and even in those cases in which complete reconstruction proves impossible, SpinRite is able to extract all intact bits from a partially unreadable, and write them back, or copy them to a new block, thereby minimizing the amount of data lost.<ref>{{cite web | title = Anticipate Drive Problems Early with SpinRite v6.0 | publisher = sysopt.com |date=August 10, 2005 |first=Jay S. |last=Zeltzer |url = http://www.sysopt.com/tutorials/article.php/12034_3549006_1 |archive-url =https://web.archive.org/web/20051125210241/http://www.sysopt.com/tutorials/article.php/12034_3549006_1 |archive-date=2005-11-25 |access-date = November 21, 2013}}</ref>


SpinRite is written in [[x86]] [[assembly language]], and runs on any [[IBM PC compatible|PC-compatible]] computer, regardless of the operating system installed. It can operate on any attached storage device with a compatible interface.<ref>{{cite web | title = PCNet File Catch - SpinRite 6.0 |publisher=PCNet Online |first=Don |last= Watkins |date=May 2005<!-- approximate: from archive.org --> |url=http://www.pcnet-online.com/picks/spinrite.htm | access-date = November 21, 2013}}</ref>
Certain claims made by SpinRite's makers have proved controversial. The program's claimed ability to "refresh" aging drives has been met with particular scepticism, while its "recovery" of sectors marked as damaged by the disk controller is considered by some to be undesirable and ultimately counter-productive.<ref>{{cite newsgroup |url=http://groups.google.com/group/comp.dcom.xdsl/msg/9aeee32323c2978e?dmode=source&hl=en <!-- alternate URL: http://www.radsoft.net/news/roundups/grc/20060123,00.shtml --> |first=John |last=Navas |title=Re: NEW PPPOE protocol for WIN 2000, works great" |newsgroup=comp.dcom.xdsl |date=February 26, 2000}} ''(Criticism in 2000 of SpinRite's stated operating principles)''</ref>
Drives in computers with incompatible processors can be tested by attaching the drive to a compatible computer.<ref name="LinuxUsers">{{cite magazine |url= http://www.linuxjournal.com/article/7684 |title = SpinRite 6.0 for Linux Users |date=July 19, 2004 |first=Leon A. |last=Goldstein | magazine = [[Linux Journal]] |access-date = November 21, 2013 }}</ref> Spinrite is distributed as a [[Microsoft Windows]] executable program which can create a bootable drive containing both the [[FreeDOS]] MS-DOS-compatible operating system and the Spinrite program itself.

Version 6 is compatible with hard disks containing any [[logical volume management]] or file system such as [[FAT16]] or 32, [[NTFS]], [[Ext3]] as well as other [[File system#Linux|Linux file systems]], [[HFS Plus|HFS+ For Mac OS X]], [[TiVo]] and others.
SpinRite is written in [[x86]] [[assembly language]], and runs on any [[IBM PC compatible|PC-compatible]] computer (as long as it is capable of running [[MS-DOS]]—virtually all can), regardless of the operating system installed. It can operate on any attached storage device with a compatible interface.<ref>{{cite web | title = PCNet File Catch - SpinRite 6.0 |publisher=PCNet Online |first=Don |last= Watkins |date=May 2005<!-- approximate: from archive.org --> |url=http://www.pcnet-online.com/picks/spinrite.htm | accessdate = November 21, 2013}}</ref>
Drives in computers with incompatible processors can be tested by attaching the drive to a compatible computer.<ref name="LinuxUsers">{{cite web |url= http://www.linuxjournal.com/article/7684 |title = SpinRite 6.0 for Linux Users |date=July 19, 2004 |first=Leon A. |last=Goldstein | publisher = [[Linux Journal]] |accessdate = November 21, 2013 }}</ref> Spinrite is distributed as a [[Microsoft Windows]] executable program which can create a bootable [[floppy disk]], [[CD-ROM]], or [[USB flash drive]] containing both the [[FreeDOS]] MS-DOS-compatible operating system and the Spinrite program itself.
Version 6 is compatible with hard disks containing any [[logical volume management]] or file system such as [[FAT16]] or 32, [[NTFS]], [[Ext3]] as well as other [[File system#File systems under Linux|Linux file systems]], [[HFS Plus|HFS+ For Mac OS X]], [[TiVo]] and others, as it operates only on the disk itself.


[[Image:Spinrite-2.0.png|thumb|250px|SpinRite 2.0, circa 1991.]]
[[Image:Spinrite-2.0.png|thumb|250px|SpinRite 2.0, circa 1991.]]


Version 6 is different from previous versions. It offers full access to the entire disk surface regardless of [[Disk partitioning|partitioning]], [[S.M.A.R.T.|Self-Monitoring, Analysis, and Reporting Technology (S.M.A.R.T.)]] parameters and control of partial scanning within a specified percentage range. Version 5 was limited to [[AT Attachment]] (PATA, IDE) hard drives; version 6 may, on suitable motherboards, work on newer [[Serial ATA]] (SATA) and [[USB mass storage device class|USB]] hard drives, and with any other type of drive&mdash;[[SCSI]], 1394/[[Firewire]]&mdash;that can be made visible to MS-DOS through the addition of controller [[BIOS]] or add-on DOS [[device driver|drivers]].<ref name="LinuxUsers" />
Version 6 offers full access to the entire disk surface regardless of [[Disk partitioning|partitioning]], [[Self-Monitoring, Analysis, and Reporting Technology]] (S.M.A.R.T.) parameters and control of partial scanning within a specified percentage range. Version 5 was limited to [[AT Attachment]] (PATA, IDE) hard drives; version 6 may, on suitable motherboards, work on newer [[Serial ATA]] (SATA) and [[USB mass storage device class|USB]] hard drives, and with any other type of drive&mdash;[[SCSI]], 1394/[[FireWire]]&mdash;that can be made visible to MS-DOS through the addition of controller [[BIOS]] or add-on DOS [[device driver|drivers]].<ref name="LinuxUsers" />


In May 2013 Steve Gibson announced the start of work on Spinrite 6.1 and 7.{{r|sixpointone}}<ref>{{cite web|title=It's time for some more work on SpinRite|last=Gibson|first=Steve|url=https://www.grc.com/x/news.exe?cmd=article&group=grc.spinrite&item=10500&utag=|publisher=Gibson Research Corporation Internet Newsgroup Discussion Forums|date=9 May 2013|access-date=16 February 2023}}</ref>
The price {{As of|2015|03|lc=on}} was [[US$]]89. Documentation may be downloaded free of charge from the SpinRite website.


== Issues ==
== Issues ==


=== Solid state drives ===
=== Solid state drives ===
Spinrite can be run and can be effective on [[SSD]]s, but running in a higher-level mode than 1 or 2 is detrimental, as it wears the SSD by writing to it unnecessarily. In episode 194 of the podcast [[Security Now!]] Gibson said that he could "see absolutely no possible benefit to running SpinRite on a solid-state drive" and later "SpinRite is all about mechanics and magnetics, neither of which exist, by design, in an SSD".<ref>{{cite episode |title=Listener Feedback #65 |series=Security Now! |number=194 | date=April 30, 2009 |publisher=grc.com |url=http://twit.tv/show/security-now/194 |transcript=Transcript |transcripturl=http://www.grc.com/sn/sn-194.txt |accessdate=November 21, 2013}}</ref> In episode 338 Gibson clarified "it is actually detrimental because [solid-state drives] don't like to be written", but also pointing out that a read-only run could be beneficial: "SpinRite's Level 1 is a read-only scan, and doing that on an SSD makes a lot of sense. Do a read-only scan of an SSD, it'll show the SSD's controller that it's got a problem reading a sector, and then it'll map that out or rewrite it in order to strengthen that sector, if possible. So that ends up being a value for SpinRite on solid-state drives." <ref>{{cite episode |title=Listener Feedback #136 |series=Security Now! |number=338 |date=February 2, 2012 |url=http://twit.tv/show/security-now/338 |transcript=Transcript |transcripturl=http://www.grc.com/sn/sn-338.txt |publisher=grc.com |accessdate=November 30, 2012}}</ref> Also, Gibson posted on his website that "SpinRite is seeing many successes [...] with non-spinning solid-state (thumb) drives!".<ref>{{cite web |title=SpinRite Testimonials |url=http://www.grc.com/sr/testimonials.htm |publisher=GRC.com |accessdate=November 29, 2012}}</ref>
Spinrite can be run and can be effective on [[SSD]]s, but running in a higher-level mode than 1 or 2 is detrimental, as it wears the SSD by writing to it unnecessarily. In episode #387 of the podcast [[Security Now!]] Gibson said "Run Level 2 because Level 1 is not permitted to fix anything" "The difference is both Level 1 and 2 are read-only, and that's the key. You don't want to run Level 4" <ref>{{Cite web|url=https://www.grc.com/sn/sn-387.htm|title=Security Now! Transcript of Episode #387|last=Gibson|first=Steve|website=www.grc.com|date=16 January 2013}}</ref> In episode 194 of the podcast [[Security Now!]] Gibson said that he could "see absolutely no possible benefit to running SpinRite on a solid-state drive" and later "SpinRite is all about mechanics and magnetics, neither of which exist, by design, in an SSD".<ref>{{cite episode |title=Listener Feedback #65 |series=Security Now! |number=194 | date=April 30, 2009 |publisher=grc.com |url=http://twit.tv/show/security-now/194 |transcript=Transcript |transcript-url=http://www.grc.com/sn/sn-194.txt}}</ref> In episode 338 Gibson clarified "it is actually detrimental because [solid-state drives] don't like to be written", but also pointing out that a read-only run could be beneficial: "SpinRite's Level 1 is a read-only scan, and doing that on an SSD makes a lot of sense. Do a read-only scan of an SSD, it'll show the SSD's controller that it's got a problem reading a sector, and then it'll map that out or rewrite it in order to strengthen that sector, if possible. So that ends up being a value for SpinRite on solid-state drives."<ref>{{cite episode |title=Listener Feedback #136 |series=Security Now! |number=338 |date=February 2, 2012 |url=http://twit.tv/show/security-now/338 |transcript=Transcript |transcript-url=http://www.grc.com/sn/sn-338.txt |publisher=grc.com}}</ref> Also, Gibson responded to a question on his website that "SpinRite works on thumb drives and on all other solid state drives".<ref>{{cite web |title=Does SpinRite TRULY work? - selected feedback and responses|url=http://www.grc.com/sr/testimonials.htm |publisher=GRC.com}} Cumulative, last entry as of June 2022 dated 2 July 2019.</ref>


=== S.M.A.R.T. on SATA drives ===
=== S.M.A.R.T. on SATA drives ===
While [[SATA]] drives are supported, SATA controllers that include a processor and diagnostic software can limit SpinRite's ability to obtain and display [[S.M.A.R.T.]] data ("thin controller" SATA controllers do not have this limitation). This data monitor does not affect SpinRite's recovery and diagnostics ability; S.M.A.R.T. data when available helps long-term disk maintenance and failure prediction.<ref name="SATAOperation">{{cite web | title = SATA Operation with SpinRite | publisher=grc.com | url=http://www.grc.com/sr/kb/sata.htm |year=2006| accessdate = January 29, 2010}}</ref> GRC said in 2006 that this issue would be resolved in version 6.1, anticipated to be a free-of-charge upgrade for SpinRite 6.0 users.<ref name="SATAOperation" /> {{As of|2015|07}} version 6.0 is the current version.<ref>On May 26, 2012 v6.0 was the only version offered for sale on the GRC Web site</ref><ref>{{cite episode |title=Listener Feedback #137 |series=Security Now! |serieslink=Security Now |number=340 |airdate=February 16, 2012 |url=https://www.youtube.com/watch?v=bMYutZGbhY4 |transcript=Transcript |transcripturl=https://www.grc.com/sn/sn-340.txt|accessdate=February 27, 2012|quote=STEVE: And SpinRite 6.1 timing, I have no idea. It is, however, the next major thing I'm going to do. It will be a free upgrade for everyone who has 6.0, oh these many years. And the target is to catch it up with things that have happened since.... And then we'll see where we are. I would love to move on to 7.0 and add a bunch of new features, as well.}}</ref>
While [[SATA]] drives are supported, SATA controllers that include a processor and diagnostic software can limit SpinRite's ability to obtain and display S.M.A.R.T. data ("thin controller" SATA controllers do not have this limitation). This data monitor does not affect SpinRite's recovery and diagnostics ability; S.M.A.R.T. data when available helps long-term disk maintenance and failure prediction.<ref name="SATAOperation">{{cite web | title = SATA Operation with SpinRite | publisher=grc.com | url=http://www.grc.com/sr/kb/sata.htm |year=2006| access-date = January 29, 2010}}</ref> GRC said in 2006 that this issue would be resolved in version 6.1, anticipated to be a free-of-charge upgrade for SpinRite 6.0 users.<ref name="SATAOperation" /> {{As of|2022|06}}, SpinRite version 6.0 continued to be current, unable to function with systems that utilize EFI bios, with unchanged price.<ref>On June 6, 2022, v6.0 was the only version offered for sale on the GRC Web site</ref><ref>{{cite episode |title=Listener Feedback #137 |series=Security Now! |series-link=Security Now |number=340 |airdate=February 16, 2012 |url=https://www.youtube.com/watch?v=bMYutZGbhY4 |archive-url=https://ghostarchive.org/varchive/youtube/20211222/bMYutZGbhY4 |archive-date=2021-12-22 |url-status=live|transcript=Transcript |transcript-url=https://www.grc.com/sn/sn-340.txt|access-date=February 27, 2012|quote=STEVE: And SpinRite 6.1 timing, I have no idea. It is, however, the next major thing I'm going to do. It will be a free upgrade for everyone who has 6.0, oh these many years. And the target is to catch it up with things that have happened since.... And then we'll see where we are. I would love to move on to 7.0 and add a bunch of new features, as well.}}{{cbignore}}</ref>


=== Large drives ===
=== Large drives ===
Line 78: Line 76:
# Sector (8-bits): 0–255
# Sector (8-bits): 0–255


This limits SpinRite to access a maximum of 268,435,456 sectors. Once SpinRite reaches track number 65,535 it will experience a [[Division by zero|division-by-zero]] error and halt with an error message. This appears to be due to a restriction of the FreeDOS operating system (an MS-DOS clone) supplied with Spinrite; it has been reported that it has problems with very large drives, and that using, say, the Microsoft version of MS-DOS known as Windows 98 DOS 7, Spinrite will test the entire drive.<ref>{{cite web|title=How to fix Spinrite’s Division Overflow Error when scanning larger drives|url=http://www.neowin.net/forum/topic/1033651-how-to-fix-spinrite%E2%80%99s-division-overflow-error-when-scanning-larger-drives/|publisher=Neowin Forums: A Collection of Essential Guides|accessdate=December 11, 2012}}</ref>
This limits SpinRite to access a maximum of 268,435,456 sectors. Once SpinRite reaches track number 65,535 it will experience a [[Division by zero|division-by-zero]] error and halt with an error message. This appears to be due to a restriction of the FreeDOS operating system (an MS-DOS clone) supplied with Spinrite. Some users have reported that Spinrite has problems with very large drives, and that using, say, MS-DOS boot disk created from Windows 95 or 98 (which refers to itself as MS-DOS version 7, which is otherwise not sold separately), Spinrite will test the entire drive without software error; other users report that this did not resolve the Division Overflow error.<ref>{{cite web|title=How to fix Spinrite's Division Overflow Error when scanning larger drives|url=http://www.neowin.net/forum/topic/1033651-how-to-fix-spinrite%E2%80%99s-division-overflow-error-when-scanning-larger-drives/|publisher=Neowin Forums: A Collection of Essential Guides|date=October 20, 2011}}</ref>

A December 2011 page on the Spinrite Web site says that an anomaly, which was named the "Roger anomaly" after its discoverer, is due to an error in the BIOS of some motherboards which does not affect normal use and hence may not be discovered.<ref name=badbios>{{cite web|url=http://www.grc.com/sr/kb/badbios.htm |title=Bad BIOS Motherboards |publisher=grc.com |date=December 20, 2011 |access-date=November 21, 2013}}</ref> A motherboard with this problem will not work with Spinrite, although it is sometimes resolved in a later BIOS update. In case of a motherboard compatibility issue, Spinrite say that drives can always be temporarily connected to another motherboard where "SpinRite will almost certainly agree to operate without trouble".<ref name=badbios/> Drive size is not mentioned as a factor.

== Reception ==
''[[BYTE]]'' magazine in 1989 listed SpinRite as among the "Distinction" winners of the BYTE Awards, stating that while alternatives had appeared, "for now, SpinRite is our pick".<ref name="byte198901">{{Cite magazine |date=January 1989 |title=The BYTE Awards |url=https://archive.org/stream/byte-magazine-1989-01/1989_01_BYTE_14-01_PC_Communications_and_Annual_Awards_and_Digitizing_Tablets#page/n371/mode/2up |magazine=BYTE |page=327}}</ref>

== Controversy ==


Some public reviewers doubt SpinRite's ability to "refresh" aging drives, and "recovery" of sectors marked as "damaged" is considered by some to be undesirable and counter-productive.<ref>{{cite newsgroup |url=http://groups.google.com/group/comp.dcom.xdsl/msg/9aeee32323c2978e?dmode=source&hl=en <!-- alternate URL: http://www.radsoft.net/news/roundups/grc/20060123,00.shtml --> |first=John |last=Navas |title=Re: NEW PPPOE protocol for WIN 2000, works great" |newsgroup=comp.dcom.xdsl |date=February 26, 2000}} ''(Criticism in 2000 of SpinRite's stated operating principles)''</ref><ref>{{Cite web |title=The HDD Oracle. • View topic - Deconstructing SpinRite |url=https://www.hddoracle.com/viewtopic.php?f=181&t=2929 |access-date=2024-04-16 |website=www.hddoracle.com}}</ref>
A December 2011 page on the Spinrite Web site says that an anomaly, which was named the "Roger anomaly" after its discoverer, is due to an error in the BIOS of some motherboards which does not affect normal use and hence may not be discovered.<ref name=badbios>{{cite web|url=http://www.grc.com/sr/kb/badbios.htm |title=Bad BIOS Motherboards |publisher=grc.com |date=December 20, 2011 |accessdate=November 21, 2013}}</ref> A motherboard with this problem will not work with Spinrite, although it is sometimes resolved in a later BIOS update. (However, if there is any motherboard compatibility issue, drives can always be temporarily connected to another motherboard where "SpinRite will almost certainly agree to operate without trouble".<ref name=badbios/> Drive size is not mentioned as a factor.


== See also ==
== See also ==
* [[List of data recovery software]]
* [[List of data recovery software]]
* [[S.M.A.R.T.]]


== References ==
== References ==
{{reflist}}
{{reflist|30em}}


{{DEFAULTSORT:Spinrite}}
{{DEFAULTSORT:Spinrite}}
[[Category:DOS software]]
[[Category:DOS software]]
[[Category:Data recovery]]
[[Category:Data recovery software]]
[[Category:Hard disk software]]
[[Category:Hard disk software]]
[[Category:Software written primarily in assembly language]]
[[Category:Assembly language software]]
[[Category:1988 software]]
[[Category:1987 software]]

Latest revision as of 22:46, 1 December 2024

SpinRite
Developer(s)Gibson Research Corporation
Initial release1987; 37 years ago (1987)
Stable release
6.1[1] / February 25, 2024; 9 months ago (2024-02-25)[1]
Preview releasenone (none) [±]
Written inx86 assembly language
Operating systemIncluded FreeDOS (doesn't use OS of host PC) runnable from DOS
PlatformAny PC with BIOS or UEFI+CSM
Size0.259 MB executable, 1.40 MB bootable disk image with FreeDOS OS
Available inEnglish
TypeHard disk recovery and maintenance
LicenseProprietary
Websitewww.grc.com/sr/spinrite.htm

SpinRite is a computer program for scanning RAS Random Access Storage devices such as hard disks, reading and rewriting data to resolve and retrieve data that is unreadable by DOS or Windows. The first version was released in 1987 by Steve Gibson. The current version, 6.1, was released in 2024.[2]

SpinRite is run from a bootable medium (such as a CD, DVD or USB flash drive) on a PC-compatible computer, allowing it to scan a computer's storage medium. It does not depend on the operating system installed on the computer.

History

[edit]

SpinRite was originally written as a hard drive interleave tool.[3] At the time SpinRite was designed, hard drives often had a defect list printed on the nameplate, listing known bad sectors discovered at the factory. In changing the drive's interleave, SpinRite needed to be able to remap these physical defects into different logical sectors. SpinRite therefore gained its data recovery and testing capabilities as a side-effect of its original purpose. Drive interleave has long ceased to be an issue, but SpinRite continued to be developed, now using its remapping as a data recovery tool.

Features

[edit]

SpinRite tests the data surfaces of writeable magnetic disks, including IDE, SATA, and floppy disks, plus SSD Solid State Drives. It analyzes their contents and can refresh the magnetic disk surfaces or flash memory storage to allow them to operate more reliably.[citation needed]

SpinRite attempts to recover data from drives that the operating system cannot read. When the program encounters errors reading data, it tries to read the sector up to 2000 times, in order to determine, by comparing the successive results, the most probable value of each bit.[4] The data is then saved to the original location or to a location on the same disk; it does not save data elsewhere. In this respect, SpinRite differs from most data recovery software, which usually provides (and recommends) an option to save the recovered data onto another disk, or onto a separate partition on the same disk.

Gibson says he designed SpinRite to fix sector problems, not failures of circuit boards, motors, or other mechanical parts.[5] When a hard drive's ability to read data slows and or begins unreliable, SpinRite may recover data that then can be copied to another drive.

SpinRite is claimed by its developer to have certain unique features,[4] such as disabling of disk write caching, disabling of auto-relocation, compatibility with disk compression, identification of the "data-to-flux-reversal encoder-decoder" used in a drive, and separate testing of buffered and unbuffered disk read performance, and direct hardware-level access,[6] whereby the drive's internal controller interacts directly with the program, rather than through the operating system. This, in turn, allows dynamic head repositioning, whereby, when reading a faulty sector, the reading head is deliberately moved backwards and forwards many times, by varying amounts, in the hope that each time it returns to the sector, it may come to rest in a slightly different position. By performing statistical analysis on the succession of results thus obtained, SpinRite is, according to its maker, often able to "reconstruct" data from damaged sectors, and even in those cases in which complete reconstruction proves impossible, SpinRite is able to extract all intact bits from a partially unreadable, and write them back, or copy them to a new block, thereby minimizing the amount of data lost.[7]

SpinRite is written in x86 assembly language, and runs on any PC-compatible computer, regardless of the operating system installed. It can operate on any attached storage device with a compatible interface.[8] Drives in computers with incompatible processors can be tested by attaching the drive to a compatible computer.[9] Spinrite is distributed as a Microsoft Windows executable program which can create a bootable drive containing both the FreeDOS MS-DOS-compatible operating system and the Spinrite program itself. Version 6 is compatible with hard disks containing any logical volume management or file system such as FAT16 or 32, NTFS, Ext3 as well as other Linux file systems, HFS+ For Mac OS X, TiVo and others.

SpinRite 2.0, circa 1991.

Version 6 offers full access to the entire disk surface regardless of partitioning, Self-Monitoring, Analysis, and Reporting Technology (S.M.A.R.T.) parameters and control of partial scanning within a specified percentage range. Version 5 was limited to AT Attachment (PATA, IDE) hard drives; version 6 may, on suitable motherboards, work on newer Serial ATA (SATA) and USB hard drives, and with any other type of drive—SCSI, 1394/FireWire—that can be made visible to MS-DOS through the addition of controller BIOS or add-on DOS drivers.[9]

In May 2013 Steve Gibson announced the start of work on Spinrite 6.1 and 7.[1][10]

Issues

[edit]

Solid state drives

[edit]

Spinrite can be run and can be effective on SSDs, but running in a higher-level mode than 1 or 2 is detrimental, as it wears the SSD by writing to it unnecessarily. In episode #387 of the podcast Security Now! Gibson said "Run Level 2 because Level 1 is not permitted to fix anything" "The difference is both Level 1 and 2 are read-only, and that's the key. You don't want to run Level 4" [11] In episode 194 of the podcast Security Now! Gibson said that he could "see absolutely no possible benefit to running SpinRite on a solid-state drive" and later "SpinRite is all about mechanics and magnetics, neither of which exist, by design, in an SSD".[12] In episode 338 Gibson clarified "it is actually detrimental because [solid-state drives] don't like to be written", but also pointing out that a read-only run could be beneficial: "SpinRite's Level 1 is a read-only scan, and doing that on an SSD makes a lot of sense. Do a read-only scan of an SSD, it'll show the SSD's controller that it's got a problem reading a sector, and then it'll map that out or rewrite it in order to strengthen that sector, if possible. So that ends up being a value for SpinRite on solid-state drives."[13] Also, Gibson responded to a question on his website that "SpinRite works on thumb drives and on all other solid state drives".[14]

S.M.A.R.T. on SATA drives

[edit]

While SATA drives are supported, SATA controllers that include a processor and diagnostic software can limit SpinRite's ability to obtain and display S.M.A.R.T. data ("thin controller" SATA controllers do not have this limitation). This data monitor does not affect SpinRite's recovery and diagnostics ability; S.M.A.R.T. data when available helps long-term disk maintenance and failure prediction.[15] GRC said in 2006 that this issue would be resolved in version 6.1, anticipated to be a free-of-charge upgrade for SpinRite 6.0 users.[15] As of June 2022, SpinRite version 6.0 continued to be current, unable to function with systems that utilize EFI bios, with unchanged price.[16][17]

Large drives

[edit]
SpinRite error on large drives

In certain cases, Spinrite can only analyze somewhere between the first 128 gigabytes and 1024 gigabytes of a drive depending on whether the drive has 512 bytes per sector or 4096 bytes per sector, and depending on the BIOS in use.

SpinRite uses cylinder-head-sector method when addressing the hard drive. This 28-bit addressing scheme is broken down as:

  1. Cylinder (16-bits): 0–65535
  2. Head (4-bits): 0–15
  3. Sector (8-bits): 0–255

This limits SpinRite to access a maximum of 268,435,456 sectors. Once SpinRite reaches track number 65,535 it will experience a division-by-zero error and halt with an error message. This appears to be due to a restriction of the FreeDOS operating system (an MS-DOS clone) supplied with Spinrite. Some users have reported that Spinrite has problems with very large drives, and that using, say, MS-DOS boot disk created from Windows 95 or 98 (which refers to itself as MS-DOS version 7, which is otherwise not sold separately), Spinrite will test the entire drive without software error; other users report that this did not resolve the Division Overflow error.[18]

A December 2011 page on the Spinrite Web site says that an anomaly, which was named the "Roger anomaly" after its discoverer, is due to an error in the BIOS of some motherboards which does not affect normal use and hence may not be discovered.[19] A motherboard with this problem will not work with Spinrite, although it is sometimes resolved in a later BIOS update. In case of a motherboard compatibility issue, Spinrite say that drives can always be temporarily connected to another motherboard where "SpinRite will almost certainly agree to operate without trouble".[19] Drive size is not mentioned as a factor.

Reception

[edit]

BYTE magazine in 1989 listed SpinRite as among the "Distinction" winners of the BYTE Awards, stating that while alternatives had appeared, "for now, SpinRite is our pick".[20]

Controversy

[edit]

Some public reviewers doubt SpinRite's ability to "refresh" aging drives, and "recovery" of sectors marked as "damaged" is considered by some to be undesirable and counter-productive.[21][22]

See also

[edit]

References

[edit]
  1. ^ a b c Gibson, Steve (25 February 2024). "SpinRite v6.1 Final Release!". Gibson Research Corporation. Archived from the original on 27 February 2024.
  2. ^ "Security Now #963" (PDF). Archived (PDF) from the original on February 27, 2024. Retrieved February 27, 2024.
  3. ^ "Interesting Intel History". Security Now!. Episode 410. TWiT.tv. June 26, 2013. Transcript. Retrieved November 21, 2013.
  4. ^ a b "SpinRite Exclusive Features". grc.com. Retrieved August 8, 2019.
  5. ^ "BailiWicked Domain Attack". Security Now!. Episode 155. July 31, 2008. Transcript. Retrieved November 21, 2013.
  6. ^ Mainelli, Tom (August 2, 2004). "SpinRite 6 to the Rescue". PCWorld. Retrieved November 21, 2013.
  7. ^ Zeltzer, Jay S. (August 10, 2005). "Anticipate Drive Problems Early with SpinRite v6.0". sysopt.com. Archived from the original on November 25, 2005. Retrieved November 21, 2013.
  8. ^ Watkins, Don (May 2005). "PCNet File Catch - SpinRite 6.0". PCNet Online. Retrieved November 21, 2013.
  9. ^ a b Goldstein, Leon A. (July 19, 2004). "SpinRite 6.0 for Linux Users". Linux Journal. Retrieved November 21, 2013.
  10. ^ Gibson, Steve (May 9, 2013). "It's time for some more work on SpinRite". Gibson Research Corporation Internet Newsgroup Discussion Forums. Retrieved February 16, 2023.
  11. ^ Gibson, Steve (January 16, 2013). "Security Now! Transcript of Episode #387". www.grc.com.
  12. ^ "Listener Feedback #65". Security Now!. Episode 194. grc.com. April 30, 2009. Transcript.
  13. ^ "Listener Feedback #136". Security Now!. Episode 338. grc.com. February 2, 2012. Transcript.
  14. ^ "Does SpinRite TRULY work? - selected feedback and responses". GRC.com. Cumulative, last entry as of June 2022 dated 2 July 2019.
  15. ^ a b "SATA Operation with SpinRite". grc.com. 2006. Retrieved January 29, 2010.
  16. ^ On June 6, 2022, v6.0 was the only version offered for sale on the GRC Web site
  17. ^ "Listener Feedback #137". Security Now!. Episode 340. February 16, 2012. Archived from the original on December 22, 2021. Transcript. Retrieved February 27, 2012. STEVE: And SpinRite 6.1 timing, I have no idea. It is, however, the next major thing I'm going to do. It will be a free upgrade for everyone who has 6.0, oh these many years. And the target is to catch it up with things that have happened since.... And then we'll see where we are. I would love to move on to 7.0 and add a bunch of new features, as well.
  18. ^ "How to fix Spinrite's Division Overflow Error when scanning larger drives". Neowin Forums: A Collection of Essential Guides. October 20, 2011.
  19. ^ a b "Bad BIOS Motherboards". grc.com. December 20, 2011. Retrieved November 21, 2013.
  20. ^ "The BYTE Awards". BYTE. January 1989. p. 327.
  21. ^ Navas, John (February 26, 2000). "Re: NEW PPPOE protocol for WIN 2000, works great"". Newsgroupcomp.dcom.xdsl. (Criticism in 2000 of SpinRite's stated operating principles)
  22. ^ "The HDD Oracle. • View topic - Deconstructing SpinRite". www.hddoracle.com. Retrieved April 16, 2024.