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.)
Could you provide a reference to this???I recently discovered that one of Steve's often stated assertions about how drives detect and correct errors is **incorrect.**
What he has often said:
- A level one scan to read an entire drive...
- Will help the drive discover any weak areas
- And when necessary, it will map out a bad spot and move the data to a good area
SpinRite Level 3 would have done precisely that.- I attempted to rebuild the GPT and partition map, since that was the only real problem
- And I got a HUGE surprise: suddenly the drive had no bad spots and was perfect according to all diagnostics!
Right. This is well known. It is called Read Fatigue. This is why periodically re-writing read only areas of an SSD is considered good normal procedure (SR Level 3).- SSD's can degrade in areas where they are only read and not written
Agreed!- Current firmware does NOT necessarily detect nor fix-on-read
- HOWEVER, it immediately detects and fixes-on-write!
SpinRite does this. It is Level 3. However, it does require some knowledgeable manual effort by the user. When combined with a benchmark (e.g. GRC's ReadSpeed), SpinRite Level 3 can be confined to just those areas of the drive that need it while not subjecting other areas of the drive to unnecessary write activity.I am thinking that a cheap/free little utility could be written, perhaps part of SpinRite?
With proper care and maintenance SSD's will be fine for long term storage.do NOT count on SSD's as long term storage!
|--------------------------------------------------------------------------|
| Sector 3,031,506,936 (77.5911%) Trouble was encountered writing |
| inverted data block. |
|--------------------------------------------------------------------------|
| Sector 3,031,506,936 (77.5911%) Retrying write to restore original |
| data. |
|--------------------------------------------------------------------------|
| Sector 3,031,506,936 (77.5911%) Rewriting original sector |
| sector-by-sector. |
|--------------------------------------------------------------------------|
| Sector 3,031,506,936 (77.5911%) A media defect was located within this |
| sector. |
|--------------------------------------------------------------------------|
Permit me to provide a practical real world example that breaks the red-highlighted assertion by @peterblaise@peterblaise "... an SSD drive will ONLY reallocate on a WRITE request, not on a READ request ..."@Alice "... SSDs reallocate all .. the .. time .. Only prerequisite being they can read / recover the data. SSDs function by reallocation, it's a core feature ..."
...
Make that: "... In response to external read and write requests, such as from SpinRite, an SSD will ONLY reallocate on a WRITE request, not on a READ request, but, an SSD may reallocate on its own whenever the original manufacturer's programmer's whimsical internal calls decide ..."
Is that more accurate and appropriate?
In other words, on an SSD, an external read request that may experience internal errors does not in and of itself trigger a drive to perform internal LBA reallocation.
Or, on an SSD, does an external read request possibly initiate a reallocation if the drive itself 'thinks' that reallocation is appropriate in response to the read attempt?
In other words, in response to repeated read requests, if the drive detects sufficient internal (ECC) errors, it will refresh the data block....a firmware that periodically refreshes old data
We've got to be very careful with our mental models of what happens when we interact with a storage device.It's not that the sector was read successfully but had inaccurate content.
It's that the sector could not be read at all.
But the sector could be rewritten.
And rewriting the sector then made the drive able to write and read that LBA logical block address from then on.
I have no way of knowing if the successful write, and subsequent re-read, were to a reallocated location, not at the original 'sticky' sector.
Not sure what you are saying here.@Papa Pete "... a practical real world example that breaks the ... assertion by @peterblaise ... Samsung Releases Second 840 EVO Performance Fix ... a firmware that periodically refreshes old data In other words, in response to repeated read requests, if the drive detects sufficient internal (ECC) errors, it will refresh the data block ..."...
And that reinforces our precision, identifying that a
failed or ecc-corrected external read request resulting
in failure to read or ecc-correction in and of itself is
not the source of an internal LBA reallocation - the
drive's own algorithm is responsible for the rewrite.
Then it's high time to update your understanding.@Papa Pete "... As @peterblaise noted above, pretty much every time a[n SSD ] sector/block is rewritten, it is "reallocated" ..."
No, I was not aware of that or presuming that.
I actually thought a rewrite request got at least an entire cluster rewritten IN PLACE, and considering SSDs having 'pages' or 'blocks of pages' or whatnot, entire 'pages' or 'blocks of pages' being rewritten IN PLACE.
"... reallocating ...", not so much.
Especially when SpinRite 6.1 Level 5 is marching...
Because that would be a lot slower than writing it elsewhereSo a 16 MB rewrite request, sure, why can that not be rewritten IN PLACE?
Once the cache is full... we're stuck with a type of wait loop: blocks are being erased as quickly as possible, then written to, making room in the cache for more requests.Something must be happening during all that rewriting and waiting.
I'm not sure where "resolvability of data" comes from. Simply put, flash storage consists of a (leaky) pile of electrons. Various things cause the leakage, including time, read operations, etc. And some things actually improve the leakage! A surprise from the new papers I referenced.I think what you are saying is that SSDs lose peak
resolvability of data when in use and when not in use.
Not necessarily. No reconstruction is needed if only a few errors. That's the whole idea: essentially instant correction of a small number of bit errors, and reliable detection of more errors. Of course, one doesn't ever want to get to the point where you're missing data.That's why SSD slow down - they are spending inordinate time reconstructing missing data.
In a sense, that's 100% true. SSD data is never permanent.Once successfully read, a rewrite will start the cascade all over again from the top, from peak readability, as the SSD then degrades once more.
An endless cycle.
No prob! More to comeGood discussion.
Excellent references.
More to read for a deeper understanding of other people's experience, especially in well-measured environments.
Thanks.
No prob! Briefly back... got a shot in my spine Friday... and now prepping for offsite travel. Three significant trips coming up although I may have time while on the road to get more fun stuff doneThank you for hanging in there, exploring, and sharing.
We're probably in a semantic spin regarding external read
requests causing a rewrite - if some reads do, and some
read's don't, then the read doesn't cause the rewrite,
something else does, and you suggest, an internal
algorithm, threshold, firmware savvy, but not anything
the outside world has any control over to cause
intentionally on purpose just by reading.
In a sense, YES. and completely understandable: the firmware built into today's drives (of all kinds) is highly proprietary. I don't expect any vendor to reveal exactly how/why they do what they do!When an SSD is slow to access and retrieve data, I have
no idea why, and apparently, others have only theories.
What promise do you feel is going unmet? I am guessing the performance promise...And that is my point, no matter how we got here:
SSDs fail to deliver as promised.
Naaah. Much simpler. The reason for 3x a year is to generally avoid the slowdown in the first place. To the extent we can refresh charge (bits) in all stored data, without having to do a ton of multi-read attempts, we keep the data fresh, and in the realm of high-performance reading.- - - - -
@Papa Pete "... For consumer SSD's I recommend a rewrite 3x a year to be safe ..."
Oh?
By doing what?
Clone, then secure erase, then re-clone back?
EXACTLY. If I understand SpinRite levels correctly, the following would all be equivalent, and all should be quite fast.Or, beyond "cloning and secure erase and cloning back",
there's re-writing in place via SpinRite 6.1 Level 3, 4, or 5,
or HDD Regenerator and it's options, or HD Sentinel and
it's options.
They are pretty good at this. The algorithms are NOT all that complicated!Then we may have to wait for the SSD to figure out how
to rewrite everything.
As long as we write a large enough block, this should never be an issue. Partial block rewrite CAN get painful, because the rest of the block must be preserved. This is where having some understanding of underlying hardware can help. AFAIK mfg's typically do provide this kind of info. I admit, haven't checked many spec sheets recently.And, rewriting sometimes -c-r-a-w-l-s- for whatever
reason.
That would be quite sad!We can just skip the rewrite by cloning to a new drive,
and toss the old drive, never rewrite it.
That's generally MY goal.And what would be the goal?
Original performance as promised on the vendor'stechnical specifications?
Yep. Just preschedule a job to run. Diskfresh has this as a built in option, BTW. I consider it good maintenance. Keep those bits happyThree times a year forever?
Rewrite on a schedule. Don't wait for slowness or failure.What's your recommendation for:
the method of rewriting,measuring performance,
and the criteria calling for the next rewrite?