SpinRite

From Wikipedia, the free encyclopedia

Spinrite
SpinRite Logo
SpinRite 6.0
SpinRite 6.0
Developed by Gibson Research Corporation
Initial release June 7, 2004
Written in Assembly language
Genre Hard Disk Recovery
License proprietary and Commercial software
Website GRC.com Spinrite Website

SpinRite is a computer software program for scanning magnetic data storage devices such as hard disks, recovering data from them and refreshing their surfaces. It is proprietary and commercial software written by Steve Gibson of Gibson Research Corporation. The first version was released in 1988, with the latest, version 6, in 2004[1]. Spinrite can be run from a bootable floppy disk or CD-ROM on a computer with an x86 processor, independent of the operating system installed on the host computer.

Contents

[edit] Features

SpinRite tests the data surfaces of read-write magnetic disks including IDE, SATA, USB, floppy, ZIP and others, analyzes their contents and claims to refresh the surface to allow them to operate more reliably.

SpinRite attempts to recover data from damaged portions of hard disks that might not be readable via the operating system. When it encounters a sector with errors that cannot be corrected by the disk drive's error correcting code it tries to read the sector up to 2000 times, and tries to determine the most probable value of each bit by comparing the results. The data is then saved onto a new block of the same disk; it cannot be saved elsewhere.

SpinRite claims to diagnose the quality of a disk drive and to make it work as reliably as possible for future use. When data recovery is the main goal tools that attempt to read data and copy it elsewhere are more suitable. Standard disk imaging and cloning software is not ideally suited for data recovery, though some such programs can be configured to copy good sectors and ignore sectors not easily readable.

Claims are made to certain unique features[2], such as disabling disk write caching, 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.

The program is written in x86 assembly language and runs only on systems with an x86 processor, but it can operate on any attached storage device. It can only be run under MS-DOS on PCs, but Version 6 is compatible with hard disks containing any volume management or file system such as NTFS, Linux, Apple Macintosh, Tivo and others since it only operates on the disk itself. Drives attached to computers with other processors can be recovered by temporarily connecting the drive to a suitable computer. Version 6 includes a Microsoft Windows utility to create a FreeDOS boot floppy disk or CD-ROM for the program.

SpinRite 2.0, circa 1991.
SpinRite 2.0, circa 1991.

Version 6 is rather different from previous versions – it offers full access to the entire disk surface regardless of partitioning, Self-Monitoring, Analysis, and Reporting Technology (SMART) parameters and control of partial scanning within a specified percentage range. Version 5 is limited to ordinary AT Attachment (PATA, IDE) hard drives. On suitable mainboards, Version 6 may work on newer Serial ATA (SATA) and USB hard drives.

The price as of April 2008 is USD$89. Documentation can be downloaded free of charge from the Spinrite website.

[edit] Alternatives

Spinrite works entirely on the drive under investigation, trying to recover and write data to it. This approach is unsuitable if there are many errors, in which case the task would take an unreasonably long time, even many years (Spinrite attempts to read bad parts up to 2000 times); and for disks which are badly damaged and possibly worsening with use, as the data, even if successfully read, cannot be written anywhere. In these cases software which can recover as much data as possible and copy it to another drive is a more suitable alternative.

Roadkil's Unstoppable Copier runs under Windows and copies on a file, not sector, basis. It can be set to copy all undamaged files first, then to try to copy as much as possible of damaged files, though it is difficult to see which file is being copied so as to skip the copy of files not worth recovering.

Open Source unix-based alternatives include dd_rescue and dd_rhelp, which work together, or GNU ddrescue. dd_rhelp first extracts all the readable data, and saves it to a file, inserting zeros where bytes cannot be read. Then it tries to re-read the invalid data and update this file. GNU ddrescue can be used to copy data directly to a new disk if needed, just like Linux dd.

dd_rhelp or GNU ddrescue will yield a complete disk image, faster but possibly with some errors. GNU ddrescue is generally much faster, as it is written entirely in C++, whereas dd_rhelp is a shell script wrapper around dd_rescue. Both dd_rhelp and GNU ddrescue aim to copy data fast where there are no errors, then copy in smaller blocks and with retries where there are errors. They are more complicated to use than SpinRite, but GNU ddrescue is quite easy to use with default options, and can easily be downloaded and compiled on Linux-based Live CDs such as Knoppix, and can be used with SystemRescueCD.

Many files on a disk may be damaged. In practice most damaged files may be unimportant: temporary files, files which are easily replaced by reinstalling software, and so on. Executable program files are not worth rescuing unless they are guaranteed 100% correct. Some documents may be worth rescuing even incomplete. Any sector-based rescue system is bound to spend a lot of its time trying to read unwanted data. A file-based system which allows the user to skip files which are a waste of time (and lists files which could not be recovered) can be more practical. Ultimately a sector-based program which reads data in raw format and uses other tricks may recover more data.

[edit] References & notes

  1. ^ SpinRite Version History, <http://www.grc.com/srhistory.htm>. Retrieved on 16 February 2008 
  2. ^ SpinRite Exclusive Features, <http://www.grc.com/srdocs.htm>. Retrieved on 16 February 2008 

[edit] See also

[edit] External links