SpinRite
From Wikipedia, the free encyclopedia
SpinRite is a commercial hard disk scanning and data recovery utility created by Steve Gibson of Gibson Research Corporation. The first version was released in 1988, version 5 around 1998 [1] and version 6 in 2004.
SpinRite is a program that tests the data surfaces of storage devices (including IDE, SATA, USB, floppy, ZIP and others) and analyzes their contents -- and aims to "refresh" and renew the hard drive. SpinRite is comparable to the Linux command badblocks and dd_rescue in that it does not examine non-DOS file system for errors. When using SpinRite with DOS FAT/FAT32 file systems, it will identify the filename of a file that is affected by unreadable bits. SpinRite can also differentiate between executable program files and data files, notifying the user when an executable file is corrupt and must be replaced.
SpinRite is much more thorough in its surface scans than basic utilities, being able to recover data from damaged portions of hard disks that might not otherwise be read by the operating system. SpinRite uses 'DynaStat' to perform statistical analysis of bad 512-byte sectors. When it encounters a sector with errors that exceed the disk drive ECC, it reads the sector up to 1000 times, and tries to determine the most probable value of each bit. The data is then saved onto the same disk using a new disk block.
The goal of SpinRite is to get the hard drive working as reliably as possible, for future use, in addition to recovering as much data as possible. In situations where data recovery is the over-riding goal, other tools that passively attempt to recover data and copy it elsewhere might be better. SpinRite is useful for diagnosing the quality of a disk drive, and must be used in conjunction with a separate program to transfer data from a failing hard drive. For example, in situations where Symantec GHOST cannot copy (clone) a failing hard drive, SpinRite can be used to relocate and recover data from bad sectors, allowing GHOST to completely copy to a new drive.
In addition to the data recovery capability, SpinRite is advertised to contain a number of features that some consider controversial (there has been a history of some tension and conflict between Gibson and the companies that make and sell hard drives). These include the 'Surface Defect Detection' mode of operation's use of "sophisticated magnetodynamic physics models"[1]. Claims are made to the absolute uniqueness of certain 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 itself is written in x86 assembly language and is limited to running on systems with an Intel x86 processor, but it can operate on any attached storage device. It can only be run under DOS on PCs, but version 6 is compatible with hard disks containing any volume management or file system since it only operates on the disk itself. Version 6 includes a Microsoft Windows utility to create a FreeDOS boot disk for the program. A bootable CD-ROM (containing the utility and FreeDOS) can also be created under either MS Windows or Wine on Unix.
The current cost is $89 (Feb. 2007). This is the cost for Version 6, and also includes access to a free copy of Version 5, which offers special features for older drives. Some free online documentation is available for the older versions, but no documentation for Version 6, which is rather different -- now offering full access to the entire disk surface regardless of partitioning, SMART parameters, and control of partial scanning within a specified percentage range. Version 5 is limited to ordinary IDE (PATA) hard drives. On suitable mainboards, version 6 may work on newer SATA and USB hard drives.
Contents |
[edit] Alternatives
Alternatives to SpinRite include dd_rescue and dd_rhelp, which work together, or GNU ddrescue. These Linux based utilities perform a slightly different task: rather than try to read every single byte accurately (which might yield perfect data recovery, but could take from hours to years depending on the damage), 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 dd_rescue can be used to copy data directly to a new disk if needed, just like Linux dd.
So, dd_rhelp or GNU ddrescue will yield a complete disk image, in reasonable time, but containing 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. As Linux tools, they are a little more complex 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.
SpinRite will also attempt to recover the entire disk contents if possible, but may take very much longer to do so since it performs repeated reads for each error it encounters. By rewriting sectors it can also make things worse if the write head on the disk is not operating properly. As for every data recovery procedure and program, with a failing disk, the data must be copied to a different disk, and not write any new data at all on the failing disk.
[edit] References & notes
- ^ SpinRite Defect Detection (2003). Retrieved on 2006-03-26.
- ^ SpinRite Exclusive Features (2003). Retrieved on 2006-03-26.
[edit] See also
- Self-Monitoring, Analysis, and Reporting Technology
- Security Now! - A Netcast co-hosted by Steve Gibson