SpinRite
Developer(s) | Gibson Research Corporation |
---|---|
Initial release | June 7, 2004 |
Preview release | none (none) [±] |
Written in | Assembly language |
Type | Hard Disk Recovery |
License | proprietary and Commercial software |
Website | GRC.com Spinrite Website |
SpinRite is a 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 and was created by Steve Gibson of Gibson Research Corporation. The first version was released in 1988, with the latest, version 6, in 2004[1] .
Features
SpinRite tests the data surfaces of magnetic storage devices including IDE, SATA, USB, floppy, ZIP and others, analyzes their contents and refreshes the surface to allow them to operate more reliably.
SpinRite attempts to recover data from damaged portions of hard disks that might not be read by the operating system. When it encounters a sector with errors that exceed the disk drive error correcting code, it reads the sector up to 2000 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.
SpinRite also aims to get the device working as reliably as possible for future use. When data recovery is the main 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's 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.
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 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. Non PC drives can be recovered by temporarily installing the device into a PC as a slave drive and then running SpinRite from the master drive or a boot disk under DOS. 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 MS Windows or Wine on Unix.
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.
A first time purchase of SpinRite is $89 (current as of January 2008). Version 6 is available at discounted prices for owners of previous version of SpinRite. All of SpinRite's documentation is available for free download in Adobe Acrobat format.[3]
Alternatives
An alternative freeware disk diagnosis and repair utility that runs on DOS and Windows is called Victoria (utility), from Sergei Kazansky in Minsk, Belarus, and www.hdd-911.com. Although functions in the interface have English labels, documentation is only in Russian so far. HD Tach from Simplisoftware is a low level hardware benchmark for random access read/write storage devices such as hard drives, removable drives (ZIP/JAZZ), flash devices, and RAID arrays. This program does not attempt repair or data recovery. Open Source unix-based alternatives include dd_rescue and dd_rhelp, which work together, or GNU ddrescue. These Linux utilities perform a slightly different task. Rather than try to read every byte accurately (which may yield perfect data recovery but may 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 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 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 also attempts to recover the entire disk contents if possible, but may take 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.
References & notes
- ^ SpinRite Version History, retrieved 2008-02-16
- ^ SpinRite Exclusive Features, retrieved 2008-02-16
- ^ SpinRite Exclusive Features, retrieved 2008-02-16