SpinRite

Last updated

SpinRite
Developer(s) Gibson Research Corporation
Initial release1987;37 years ago (1987)
Stable release
6.1 [1] / February 25, 2024;5 months ago (2024-02-25) [1]
Preview release none (none) [±]
Written in x86 assembly language
Operating system Included FreeDOS (doesn't use OS of host PC) runnable from DOS
Platform Any PC with BIOS or UEFI+CSM
Size 0.259 MB executable, 1.40 MB bootable disk image with FreeDOS OS
Available inEnglish
Type Hard disk recovery and maintenance
License Proprietary
Website www.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]

Contents

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

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

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. Spinrite-2.0.png
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

Solid state drives

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

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

SpinRite error on large drives SpinRite 6 Division by Zero Error on large drives, screenshot.jpg
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

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

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

Related Research Articles

<span class="mw-page-title-main">Parallel ATA</span> Computer storage interface standard

Parallel ATA (PATA), originally AT Attachment, also known as Integrated Drive Electronics (IDE), is a standard interface designed for IBM PC-compatible computers. It was first developed by Western Digital and Compaq in 1986 for compatible hard drives and CD or DVD drives. The connection is used for storage devices such as hard disk drives, floppy disk drives, optical disc drives, and tape drives in computers.

<span class="mw-page-title-main">BIOS</span> Firmware for hardware initialization and OS runtime services

In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The BIOS firmware comes pre-installed on an IBM PC or IBM PC compatible's system board and exists in some UEFI-based systems to maintain compatibility with operating systems that do not support UEFI native operation. The name originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS originally proprietary to the IBM PC has been reverse engineered by some companies looking to create compatible systems. The interface of that original system serves as a de facto standard.

<span class="mw-page-title-main">Floppy disk</span> Removable disk storage medium

A floppy disk or floppy diskette is a type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined with a fabric that removes dust particles from the spinning disk. The three most popular floppy disks are the 8-inch, 5¼-inch, and 3½-inch floppy disks. Floppy disks store digital data which can be read and written when the disk is inserted into a floppy disk drive (FDD) connected to or inside a computer or other device.

<span class="mw-page-title-main">Hard disk drive</span> Electro-mechanical data storage device

A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with magnetic material. The platters are paired with magnetic heads, usually arranged on a moving actuator arm, which read and write data to the platter surfaces. Data is accessed in a random-access manner, meaning that individual blocks of data can be stored and retrieved in any order. HDDs are a type of non-volatile storage, retaining stored data when powered off. Modern HDDs are typically in the form of a small rectangular box.

<span class="mw-page-title-main">Booting</span> Process of starting a computer

In computing, booting is the process of starting a computer as initiated via hardware such as a button on the computer or by a software command. After it is switched on, a computer's central processing unit (CPU) has no software in its main memory, so some process must load software into memory before it can be executed. This may be done by hardware or firmware in the CPU, or by a separate processor in the computer system.

RAID is a data storage virtualization technology that combines multiple physical disk drive components into one or more logical units for the purposes of data redundancy, performance improvement, or both. This is in contrast to the previous concept of highly reliable mainframe disk drives referred to as "single large expensive disk" (SLED).

<span class="mw-page-title-main">SATA</span> Computer bus interface for storage devices

SATA is a computer bus interface that connects host bus adapters to mass storage devices such as hard disk drives, optical drives, and solid-state drives. Serial ATA succeeded the earlier Parallel ATA (PATA) standard to become the predominant interface for storage devices.

<span class="mw-page-title-main">Apple ProDOS</span> Operating system on Apple II series computers

ProDOS is the name of two similar operating systems for the Apple II series of personal computers. The original ProDOS, renamed ProDOS 8 in version 1.2, is the last official operating system usable by all 8-bit Apple II series computers, and was distributed from 1983 to 1993. The other, ProDOS 16, was a stop-gap solution for the 16-bit Apple IIGS that was replaced by GS/OS within two years.

Disk formatting is the process of preparing a data storage device such as a hard disk drive, solid-state drive, floppy disk, memory card or USB flash drive for initial use. In some cases, the formatting operation may also create one or more new file systems. The first part of the formatting process that performs basic medium preparation is often referred to as "low-level formatting". Partitioning is the common term for the second part of the process, dividing the device into several sub-devices and, in some cases, writing information to the device allowing an operating system to be booted from it. The third part of the process, usually termed "high-level formatting" most often refers to the process of generating a new file system. In some operating systems all or parts of these three processes can be combined or repeated at different levels and the term "format" is understood to mean an operation in which a new disk medium is fully prepared to store files. Some formatting utilities allow distinguishing between a quick format, which does not erase all existing data and a long option that does erase all existing data.

<span class="mw-page-title-main">Self-Monitoring, Analysis and Reporting Technology</span> Monitoring system in computer drives

Self-Monitoring, Analysis, and Reporting Technology is a monitoring system included in computer hard disk drives (HDDs) and solid-state drives (SSDs). Its primary function is to detect and report various indicators of drive reliability with the intent of anticipating imminent hardware failures.

<span class="mw-page-title-main">Steve Gibson (computer programmer)</span> Computer enthusiast, software engineer and security researcher

Steven M. Gibson is an American software engineer, security researcher, and IT security proponent. In the early 1980s, he worked on light pen technology for use with Apple and Atari systems, and in 1985, founded Gibson Research Corporation, best known for its SpinRite software.

<span class="mw-page-title-main">Atari DOS</span> Operating system

Atari DOS is the disk operating system used with the Atari 8-bit computers. Operating system extensions loaded into memory were required in order for an Atari computer to manage files stored on a disk drive. These extensions to the operating system added the disk handler and other file management features.

<span class="mw-page-title-main">Cylinder-head-sector</span> Historical method for giving addresses to physical data blocks on hard disk drives

Cylinder-head-sector (CHS) is an early method for giving addresses to each physical block of data on a hard disk drive.

<span class="mw-page-title-main">Solid-state drive</span> Computer storage device with no moving parts

A solid-state drive (SSD) is a solid-state storage device. It provides persistent data storage using no moving parts. It is sometimes called semiconductor storage device or solid-state device. It is also called solid-state disk because it is frequently interfaced to a host system in the same manner as a hard disk drive (HDD).

In computing, error recovery control (ERC) is a feature of hard disks which allow a system administrator to configure the amount of time a drive's firmware is allowed to spend recovering from a read or write error. Limiting the recovery time allows for improved error handling in hardware or software RAID environments. In some cases, there is a conflict as to whether error handling should be undertaken by the hard drive or by the RAID implementation, which leads to drives being marked as unusable and significant performance degradation, when this could otherwise have been avoided.

<span class="mw-page-title-main">Intel Rapid Storage Technology</span> Computer storage device

Intel Rapid Storage Technology (RST) is a driver SATA AHCI and a firmware-based RAID solution built into a wide range of Intel chipsets. Currently also is installed as a driver for Intel Optane temporary storage units.

A trim command allows an operating system to inform a solid-state drive (SSD) which blocks of data are no longer considered to be "in use" and therefore can be erased internally.

<span class="mw-page-title-main">Floppy disk variants</span> Types of floppy disk formats

The floppy disk is a data storage and transfer medium that was ubiquitous from the mid-1970s well into the 2000s. Besides the 3½-inch and 5¼-inch formats used in IBM PC compatible systems, or the 8-inch format that preceded them, many proprietary floppy disk formats were developed, either using a different disk design or special layout and encoding methods for the data held on the disk.

Higher performance in hard disk drives comes from devices which have better performance characteristics. These performance characteristics can be grouped into two categories: access time and data transfer time .

<span class="mw-page-title-main">SATA Express</span> Computer device interface

SATA Express is a computer bus interface that supports both Serial ATA (SATA) and PCI Express (PCIe) storage devices, initially standardized in the SATA 3.2 specification. The SATA Express connector used on the host side is backward compatible with the standard SATA data connector, while it also provides two PCI Express lanes as a pure PCI Express connection to the storage device.

References

  1. 1 2 3 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. 1 2 "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. 1 2 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. 1 2 "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. 1 2 "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"". Newsgroup:  comp.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.