SpinRite 6.0 |
|
Developer(s) | Gibson Research Corporation |
Initial release | 1988 |
Stable release | 6.0 / June 7, 2004 |
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 |
Size | 0.169 MB executable, 1.40MB bootable disk image with FreeDOS OS |
Available in | English |
Type | 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. Version 6.0, still current as of November 2011[update], was released in 2004.[1] SpinRite may be run from a bootable floppy disk, USB flash drive or CD-ROM on a PC-compatible computer, independent of the operating system installed on the host computer.
Contents |
SpinRite tests the data surfaces of writeable magnetic disks, including IDE, SATA, and USB-interfaced hard disks, and floppy disks. It analyzes their contents and is claimed to be able to refresh the magnetic disk surfaces to allow them to operate more reliably.
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, 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. 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.[2]
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, says his software was specifically designed to fix 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.[3] In fact, in such circumstances 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.
SpinRite is declared 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. Another important feature is direct hardware-level access,[5] 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.[6]
Certain claims made by SpinRite's makers have proved controversial. The program's claimed ability to "refresh" aging drives has been met with particular skepticism, while its "recovery" of sectors marked as damaged by the file system controller is considered by some to be undesirable and ultimately counter-productive.[7]
SpinRite is written in x86 assembly language, and runs only on PC-compatible computers with 32-bit Intel or AMD x86 processor, but it can operate on any attached storage device with a compatible interface.[8] It can be run only under MS-DOS or a compatible operating system, but the operating system installed on the machine is irrelevant, as Spinrite is distributed in bootable version with the FreeDOS operating system. 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, as it operates only on the disk itself. Drives attached to computers with other processors can be recovered by temporarily connecting the drive to a suitable computer.[9] Version 6 includes a Microsoft Windows utility to create a FreeDOS boot floppy disk or CD-ROM for the program.
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 (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.[10]
The price as of January 2011[update] was US$89. Documentation may be downloaded free of charge from the SpinRite website.
While SATA drives are supported, SATA controllers that include a processor and diagnostic software can limit SpinRite's ability to obtain and display SMART data ("thin controller" SATA controllers do not have this limitation). This data monitor does not affect SpinRite's recovery and diagnostics ability; SMART data when available helps long-term disk maintenance and failure prediction.[11] GRC said in 2006 that this issue would be resolved in version 6.1, a free-of-charge upgrade for SpinRite 6.0 users.[12]
SpinRite works entirely on the drive under investigation, attempting to recover partially damaged data by rewriting it to an undamaged part of the disk. This approach can cause irreversible data loss and may be unsuitable if there are many errors, as the task may take an unreasonably long time to complete (literally years for a large, badly damaged disc, attempting to read each sector 2000 times). The program may also be unsuitable for disks that are badly damaged and possibly worsening with use, as the data, even if successfully read, cannot be re-written securely on the disk.[13] Also, if little free space remains on a faulty disk, there may be insufficient room to transfer all of the recovered data. In these cases, software that can recover as much data as possible and copy it to another drive will generally be a more suitable alternative. However, standard disk imaging and cloning software is not ideally suited for data recovery, even if some such software may be configured to copy only good sectors, ignoring sectors that are not easily readable.
Though there are many commercial and freeware file recovery programs available, besides SpinRite only the HDD Regenerator offers direct hardware-level access to the disk, while others are more suitable for recovery of deleted and corrupted files and formatted drives. Some are intended to recover only accidentally deleted files (e.g., OfficeRecovery's FreeUndelete). Others will recover files of certain types, using knowledge of the file structure (e.g., GetData's Recover My Files).
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, and then to try to copy as much as possible of damaged files (although, during extraction, it is difficult to see which file is being copied, and thus to avoid copying 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 whereas dd_rhelp is a shell script wrapper around dd_rescue. Both dd_rhelp and GNU ddrescue aim to copy data quickly from sectors that are free of errors, then copy in smaller blocks, with retries when necessary, where errors are found. These programs are more complicated to use than SpinRite, although GNU ddrescue is fairly easy to use with default options, and can easily be downloaded and compiled on Linux-based Live CDs such as Knoppix. It can also be used with SystemRescueCD.
On some disks, many files may be damaged. In practice, though, in most cases, most damaged files will be unimportant: temporary files, files which may easily be replaced by reinstalling software, and so on. Executable program files are generally not worth rescuing unless they are guaranteed 100% intact. Moreover, fully recovered program folders will often not give rise to working software, as corresponding registry entries will no longer be associated with them correctly. By contrast, some documents may be worth rescuing even if incomplete. For example, a document created by a given word-processing program may become corrupted, thus rendering it unreadable by the program normally associated with it, yet much of the text contained in the document may still be read, and perhaps extracted, by making use of a more generic text editor (although, in such a case, program-specific formatting characters will usually be dispersed throughout the text, making both reading and extraction laborious).
Any sector-based rescue system is bound to spend a lot of its time trying to read unwanted data. File-based systems, by contrast, will often allow the user to ignore files that are a waste of time, and will also often identify and list files that are not intact, so long as the file system is not so damaged as to be unable to identify files. Such systems can, therefore, sometimes prove more practical for the purposes of useful file recovery. However, a sector-based program, which reads data in raw format, sometimes using specialized techniques to recover partially damaged information, may ultimately recover more useful data.