BootAble – FreeDOS boot testing freeware
To obtain direct, low-level access to a system's mass storage drives, SpinRite runs under a GRC-customized version of FreeDOS which has been modified to add compatibility with all file systems. In order to run SpinRite it must first be possible to boot FreeDOS.
GRC's “BootAble” freeware allows anyone to easily create BIOS-bootable media in order to workout and confirm the details of getting a machine to boot FreeDOS through a BIOS. Once the means of doing that has been determined, the media created by SpinRite can be booted and run in the same way.
The participants here, who have taken the time to share their knowledge and experience, their successes and some frustrations with booting their computers into FreeDOS, have created a valuable knowledgebase which will benefit everyone who follows.
You may click on the image to the right to obtain your own copy of BootAble. Then use the knowledge and experience documented here to boot your computer(s) into FreeDOS. And please do not hesitate to ask questions – nowhere else can better answers be found.
(You may permanently close this reminder with the 'X' in the upper right.)
SPINRITE NORAMTEST LEVEL 5 DYNASTAT 1 NOREWRITE DYNASTAT 0 recovers nothing, good for blankable drives to 'quickly' DYNASTAT 1 prevents SpinRite from wasting 4 extra minutes NOREWRITE prevents SpinRite from writing zeros in unrecoverable NORAMTEST bypasses a quirk where drive enumeration produces SKIPVERIFY bypasses pre-test before actual Level testing, not your Personally I would run aif I want to recover no data at all, but repair and refresh a drive, what are the options I should be using?
spinrite /dynastat 0
That's a statistics problem hiding in sheep's clothinghow do you know when a drive is no good anymore?
Unfortunately, there is no good/bad black/white yes/no answer. It comes down to a combination of judgement, common sense, and experience.If there is no threshold or standard, and it is all governed by The Force, then I am asking any SpinRite Jedis out there for your own personal sense of it when you run SpinRite: what criteria do you use to determine a drive can be saved and continued to be used vs. it is dead?
Adding to what the others have said, if the SMART info is accessible - Reallocated Sectors and Pending Reallocated Sectors are usually the beginning of something that doesn't get better. The rest of the SMART stuff is vendor specific on whether or not the numbers mean what it looks like they mean - large numbers don't necessarily mean bad things.how do you know when a drive is no good anymore?
I like to take them apart and pull the magnets out but I'm not allowed to do that anymore because "You have too many that's taking up too much space and they're all stuck in a jumbled ball." - my wife.Dare I ask the logical follow-up -- to what lengths is everyone going to destroy bad hard drives, just the trash can, sledgehammer, drilling holes, or thermite? LOL....can't wait to hear...Thanks!
From the model # on your screen cap: https://en.wikipedia.org/wiki/ST3000DM001Seagate Barracuda 3TB
Backblaze, a remote backup service company, observed that its ST3000DM001 drives have failed at rates far higher than the average of other hard drives. Only 251 of the 4,190 ST3000DM001 hard drives placed in service in 2012 were still in service as of 31 March 2015.
command timeout: 0 command aborted: 0 comm/cable errs: 0 not recoverable: 0 minor troubles: 0 sect neverfound: 0 dynastat recovr: 0 defective sectr: 0 I would say the drive may be bad.@DanR (or anyone), what’s your take on this drive? If the estimates are right, 95 hours is ~4 days — if this is your hard drive, what do you conclude and do? Is this drive likely salvageable and worth completing, or does this drive belong alongside the lost Atari 2600 E.T. cartridges in a New Mexico landfill? What say you?
Sure, in a manner of speaking. You should have the logs, which should give you LBA #'s (or more likely a suitable range) and you can specify the range on the command line or in the UI. (On the screen just before final confirmation, there should be a note on what to press to edit the range.. it used to be Shift-Enter, but it changed in 6.1 toward the end of the development, and I forget the new sequence... might be TAB.) See the FAQ on the site for the command line options if you want to go that route. https://www.grc.com/sr/faq.htm Search for "What are SpinRite’s command line options?"is it possible to rerun SpinRite on only the specific problem areas only as indicated by these results
Yes! One way is via the command line as pholder noted.One last question about SpinRite usage: is it possible to rerun SpinRite on only the specific problem areas only as indicated by these results, and ignore the rest of the drive which tested fine?
DYNASTAT 1 to reduce SpinRite spending SPINRITE NORAMTEST DYNASTAT 1 DYNASTAT 0 to eliminate data SPINRITE NORAMTEST DYNASTAT 0 Personally I would take note of the slow area then re-run SR over the same area a few times on level 3-5 to see if it's still slow or if working the platters helped in cleaning it up. Then decide.I got to thinking about it — what does it mean when you have a drive that’s processing very slowly (relatively speaking), but you aren’t getting any (or many) errors? Is it possible that such a drive will be cleaned up and returned to normal use? Or is it garbage regardless of lack of errors?
In this case, Level 3 has been selected (via the command line) and will show at the very top center of the Level Selection screen.Thought this does bring up another question I have. Why when specifying the “LEVEL 3” on the command line, does SpinRite still ask you to select the Level you want to run? It appears specifying the Level on the command line has no effect….
Best I can tell, there’s no area that’s been slower or faster than the others. All processing of the drive has been slow. The original estimate for drive processing time was around 400 hours, and the rate of processing hasn’t changed substantially after 50 hours. That’s really the question, what does it mean if processing of the entire drive is slow, but there isn’t much in the way of errors?Personally I would take note of the slow area then re-run SR over the same area a few times on level 3-5 to see if it's still slow or if working the platters helped in cleaning it up. Then decide.
If this is the drive in the pictures above, which shows a number of cabling errors, and it is consistently slow in SR, perhaps there are REAL cabling errors ( bad contacts or damaged traces). Have the SMART stats changed significantly during the run?Best I can tell, there’s no area that’s been slower or faster than the others. All processing of the drive has been slow. The original estimate for drive processing time was around 400 hours, and the rate of processing hasn’t changed substantially after 50 hours. That’s really the question, what does it mean if processing of the entire drive is slow, but there isn’t much in the way of errors?
This is not that same drive. This is one of the other “iffy” drives that either had moderate errors or were processing extremely slowly in my first pass through the 13 drives I had, so I exited SpinRite processing and set it aside for a second pass with different parameters. This is where my question is arising from — basically it is a drive that is processing extremely slowly — original estimate ~400 hours, and several days in, that rate has proven consistently true. However, there are almost no errors that have arisen. I am attaching the screenshots of the current status, and you can see:If this is the drive in the pictures above, which shows a number of cabling errors, and it is consistently slow in SR, perhaps there are REAL cabling errors ( bad contacts or damaged traces). Have the SMART stats changed significantly during the run?
As you say, no errors are showing, although I do notice that you are only using 4096 bytes blocks. That will slow SR down, the AHCI driver should be able to process 32k blocks which should be 8 times faster.This is not that same drive.
Hence, the question — what should be concluded when the drive processing is agonizingly slow, but comes up with no (or few) errors?
- Graphic Status Display: no problems
- Real-Time Activities: no errors
- SMART System Monitor: ECC corrected - one red square (but notice that has decreased from three as SpinRite processing has proceeded)
My original run on all of my hard drives used 32k blocks. After that first pass, I had 7 good drives, 3 bad drives, and 3 “iffy” drives which either had moderate errors or were processing so slowly they were either bad or needed different parameters. So taking the guidance of another (@DanR) earlier in this thread, I switched to 4k blocks for a second run only on the 3 “iffy” drives.As you say, no errors are showing, although I do notice that you are only using 4096 bytes blocks. That will slow SR down, the AHCI driver should be able to process 32k blocks which should be 8 times faster.
Your understanding may be a little off. The request size is always a multiple of 512 bytes, as that is the size of a LBA. So really what is changing is the number of LBAs that are being requested from the drive at once. Assuming all of them succeed, this just means SpinRite can go faster because the overhead per LBA is lower. (The drive's internal code presumably handles optimizations like knowing it needs more sequential blocks, so it arranges to optimize the reading and communicating with the PC.)what that 32k -> 4k change actually does.
Some questions:dog-slow SpinRite processing, but the drive is still good
Thanks for the great reply! That is really interesting. If the XFER block size parameter was added to address the behavior which varied based on block size, then I suppose the actual net effect of that parameter value (beyond # of LBAs requested) lies in what the actual varied behavior you observed was. Do you mind expounding on that a little more, I’m really curious as to what it was. From a career doing software development, my blind guess would be something to do with optimizing I/O buffering and optimizations and possibly managing caching. I don’t know the internals, but those things absolutely can cause behavioral variances in systems. Fascinating stuff, if you can share more, would really welcome it.Your understanding may be a little off. The request size is always a multiple of 512 bytes, as that is the size of a LBA. So really what is changing is the number of LBAs that are being requested from the drive at once. Assuming all of them succeed, this just means SpinRite can go faster because the overhead per LBA is lower. (The drive's internal code presumably handles optimizations like knowing it needs more sequential blocks, so it arranges to optimize the reading and communicating with the PC.)
However, once a problem occurs, SpinRite has to abandon all of the big block work and get down to work on that specific LBA. It's going to keep retrying it. At this point, it's all up to the drive and its internal processes, and speed is no longer the main concern. So, while it may affect drive behaviour, because many things can, and we don't know what the firmware is coded like, changing the size of reads shouldn't affect drive reliability... but during my beta testing of SpinRite, I found a drive that did vary its behaviour based on block size, and I think that was the genesis of Steve providing the command line option to override SpinRite's automatic logic.
Thanks for the reply! Yeah, the most recent screenshots I posted apply. Every run I have done has been Level 3. The first run on all the drives restarted SpinRite fresh for each drive using this command:Some questions:
Is the current 4K run the first pass Level 3 run? That is, you have not re-started SpinRite from the beginning for a second pass? And the Graphic Status Display (GSD) screen shows no blocks with R's, U's, or B's?
If the drive has not been used for a long time, the bit patterns on the platter surfaces will weaken over time and become progressively harder to read. SpinRite can be very patient and persistent in trying to read the sectors, taking lots of time if necessary.
A clean GSD screen suggests that the blocks were read successfully (no U's), DynaStat likely not needed (no R's), and the data was rewritten successfully (no B's).
A second pass Level 2 run should then proceed at normal speed on a now refreshed., now good drive. If the second pass is still dog-slow, however, then the drive is bad.
NOREWRITE is intended for the situation where data recovery is paramount. Only a 100% successfully read sector will be rewritten. Partially read sectors, with read errors, will NOT be rewritten, thus preserving the data . If data is of no concern here then NOREWRITE is pointless.Every run I have done has been Level 3. The first run on all the drives restarted SpinRite fresh for each drive using this command:
SPINRITE NORAMTEST LEVEL 3 DYNASTAT 0 NOREWRITE
This second run on just the 3 “iffy” drives is using this command:
SPINRITE NORAMTEST LEVEL 3 DYNASTAT 0 NOREWRITE XFER 4096
On this current drive in question, the one currently running (same one associated with the most recent screenshots I posted), the GSD screen is totally clean. Also, the drive has not been used for a long time (years). The run is not even half-way done yet, it will take several more days to complete. But I gather from your post above, that once it does complete, that the implication is that if the GSD screen completes clean, that if SpinRite is run again on the drive (using the first command above), that it should be much faster (hours for the entire drive to be processed) and should be good?
@DanR — thanks for a great reply — good to know about NOREWRITE. Somewhere along the line I gathered that option was part of eliminating data recovery if not necessary. I also had gathered from some comments, and it appears I misunderstood, that the way to do a complete refresh of drives which required no data recovery (I have zero need for any data recovery on any drive) was to do a Level 3 with Dynastat 0. It appears I was mistaken.NOREWRITE is intended for the situation where data recovery is paramount. Only a 100% successfully read sector will be rewritten. Partially read sectors, with read errors, will NOT be rewritten, thus preserving the data . If data is of no concern here then NOREWRITE is pointless.
DYNASTAT 0 does no data recovery (DynaStat is disabled). Just one normal read is done. If the read is successful the sector is rewritten. Partially read sectors would be rewritten with zeros for the unreadable data, thus losing data.
Level 3 rewrites every sector.
I do not understand why either of the above command lines would be so slow, unless the drive is inherently slow. If Level 3 is not speeding up the drive then the drive is suspect.
I would suggest starting a normal scan at level 2 on this drive. No need for level 3 to to rewrite everything yet again. No need for DynaStat 0 since theh entire drive has been successfully rewritten. What speed does an unfettered level 2 run at?
It's been a long time, and my memory is about as reliable as one of those HDDs that's been well used, but as I recall, the issue was the drive would hit certain problem sectors, and if the XFER size was large (the default initially, because Steve was trying to make SpinRite as fast as possible) the drive would basically just crash (as in firmware, not the heads impacting the surface.) This meant the drive became partially non-responsive, and the only recovery was a full power cycle. (A simple system reset did not recover the HDD function.) I tried all sorts of different XFER sizes, and in the end, pretty much anything at or over 10Kbytes caused this bad behaviour. Anything under that size and it never happened at all. I presume it's a firmware design defect in that specific drive... something to do with how it doesn't properly complete a large block request when it needs to attempt internal error recovery. Presumably its state machine gets out of whack, and it doesn't have any sort of a software watch dog to catch and reset it.Fascinating stuff, if you can share more, would really welcome it.
XFER option for edge-cases, but changed XFER value dependent on the situation, where if a read and XFER value will automatically drop down to whatever is XFER 1 . XFER LEVEL 1 , which is a read-only task, happens AFTER a SKIPVERIFY command SPINRITE SKIPVERIFY LEVEL 1 LEVEL 5 DYNASTAT 0 , see if