Does SpinRite 6.0 support SSD (Solid-State Drives)

  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in please checkout the “Tips & Tricks” page for some very handy tips!

    /Steve.
  • 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.)

pats2265

Member
Feb 7, 2022
8
0
I can tell by other postings that SpinRite 6.0 supports SSD drives but wanted to ask that this be posted in the FAQ; as that is where I first looked.
I've used SpinRite for years but never on SSD drives because I didn't think they were supported.
This is my first post, so please forgive me if this is in the "wrong place", and let me know where this comment/request should be posted.

Thanks,
Love the product
Patrick
 
It comes down to the definition of support. When SpinRite 6.0 was release, approximately 17 years ago, SSD's were pretty uncommon, and were believed to be less durable than they have turned out to be. I don't believe there is any code in SpinRite 6.0 that knows anything about SSDs. On the other hand, I don't know if there will be any special SSD code in SpinRite 6.1. I do expect there will be guidelines provided for using SpinRite 6.1 with SSDs, which will possibly be borne out from experience with SSDs and 6.0. In particular, because of write durability concerns, it would be unwise to use level 3 any more than necessary, and very unwise to use level 4 or higher.

As far as what is physically possible with SpinRite 6.0, it comes down to the fact that it runs under DOS and any disk it would work on needs to be visible to the system's BIOS for DOS to see it. SpinRite 6.0 also has a 32 bit internal structure, which limits it to partitions 2.2TB or less in size. (Granted, even today, SSDs much larger are very expensive and uncommon, but that will change as time marches on.) Finally, because of the timing of SSDs arriving at around the same time as GPT partitions have become widespread, it may not be the case that your SSD has the necessary MBR partitioning for SpinRite 6.0 to understand how to work with it.

So, in summary: If your SSD is MBR formatted, if it is 2TB or less and if it is visible to DOS, then SpinRite could (and maybe even should) work with it. If it can work on your SSD, do not use SpinRite level 3 on the drive without considering the impact to write durability (and never use level 4 or higher.)
 
and never use level 4 or higher
@PHolder I disagree with that statement under one exceptional condition. I always run a level 4 on my drives 1st thing to burn them in and make sure the controller is fully aware of and happy with the state of all the storage cells. I do that whether it's an HDD or SSD. I did have some trouble with a hybrid drive at one point, but no longer buy those. Since level 4 does a read, invert, write, read, invert, write; I'm willing to sacrifice 2 write cycles to do that. Otherwise, I try to run a level 2 once or twice per year on all my drives, including SSD's. If the drive were giving problems down the road, I might consider reformatting with a long format and surface scan and doing a level 4 again just to kind of reset everything. But, if it's reallocating a bunch of sectors or throwing errors, I'd probably just get the data off, erase it, and dispose of it.
never on SSD drives because I didn't think they were supported
@pats2265 Given the criteria that @PHolder mentioned, @Steve has gotten many reports of running the current version of SpinRite on SSD's and having it help or rejuvenate them. As mentioned above, I do level 2 once or twice per year. There's definitely therapeutic value in making the drive read every sector once in a while, and SpinRite is a good way to do that. I generally run chkdisk before SpinRite with auto error correction off. If that produces errors, I'd have to consider whether I immediately wanted to run SpinRite. Chkdisk error repair can orphan files, but SpinRite doesn't repair file allocation tables directly, so I'd have to determine which way to proceed if chkdisk is unhappy. If chkdisk is happy, I proceed with SpinRite level 2.

May your bits be stable and your interfaces be fast. :cool: Ron
 
  • Like
Reactions: pats2265
I don't believe there is any code in SpinRite 6.0 that knows anything about SSDs. On the other hand, I don't know if there will be any special SSD code in SpinRite 6.1.
Right, SpinRite 6.0 is not SSD aware.

Steve had commented some time ago that SpinRite 6.1 would be SSD aware and would not permit Levels 4 or 5 to be used on an SSD. However, I have not heard him comment on this more recently. So I do not know either if there will be any SSD awareness in SpinRite 6.1.
If it can work on your SSD, do not use SpinRite level 3 on the drive without considering the impact to write durability (and never use level 4 or higher.)
Totally agree! Level 3 does only a fraction of the writing that Levels 4 or 5 are capable of. Even so, Level 3 SR runs should be used judiciously and only when necessary, as their effect will be cumulative over time. ReadSpeed is a safe tool for monitoring SSD drive performance to determine when a Level 3 run might be appropriate.

I always run a level 4 on my drives 1st thing to burn them in and make sure the controller is fully aware of and happy with the state of all the storage cells. I do that whether it's an HDD or SSD.
Respectfully disagree, Ron. Level 4 was designed for Spinning platter HDDs which definitely do benefit from it. Level 4 is, at best, over kill for SSD technology. While modern SSD's may not be harmed all that much by a single Level 4 pass, I do not perceive a Level 4 pass accomplishing any benefit that a safer less stressful Level 3 pass can not do?
 
  • Like
Reactions: pats2265
@DanR , @DiskTuna You guys bring up some excellent points which make me think, which is a good thing. They also make me have more questions. Some of this makes my eyes cross, so I'll try to come up with something coherent. One thing I didn't say in my original post is that my initial burn in procedure for a new drive involves filling it with random data. There are Linux commands that can create random files. Years ago, I created 1 MB, 2 MB, 4 MB, 8 MB, 16 MB, 32 MB, 64 MB, 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, 4 GB, 8 GB, 16 GB, and 32 GB files of gibberish. So, I can use these to fill up a new drive.

I do not perceive a Level 4 pass accomplishing any benefit that a safer less stressful Level 3 pass can not do?
I've never actually used Level 3 for anything. I looked at the SR v5 docs from GRC which was a blast from the past to see what Level 3 does (single read, single write). I guess I just figured that it would be useful to fill each byte with 0's and read it as well as 1's. This is because there are some patterns of failures in memory arrays which are more likely to manifest with a 1 or a 0 but not both. Other reasons to prefer Level 4 below.

But with SSD you can't tell if it's just 2 cycles. ...
Good points all. Let's say the drive is overprovisioned by 10% as an example. If I'm writing the entire disk, there's no way the SSD can allocate a new page or sector for every write. It's going to have to write at least 90% of the cells in the disk. And, for every one of those LBA's, we would at least know that the controller has looked at all the PBA's linked to those LBA's, done its magical deep analysis, and concluded all was in good shape. I cannot assume that the original data written at random was written correctly necessarily as normal writes do not do a read after write verify. Also, if you do a Level 3, as an example, which is a read then a write, this still doesn't assure that the cells have been written correctly. It seems to me that the ONLY way I can get a controlled write to every LBA AND a read and verify of said data, is to do a Level 4. In that case, after the data is read, inverted, and written, and read; only then do you actually get a WRITE / VERIFY cycle. A Level 3, with it's READ / WRITE cycle can never verify. Even on a Level 4, when the data is finally inverted and written back to its original state, that last write is not verified.

Chkdsk cares about a consistent file system mainly.
Let's fast forward to the future when the drive has been in service for a while. Electrons leak out of SSD storage cells over time. IE, Bit Rot. Or, maybe there are power flickers, or computer freezes, etc. So, say the file allocation table is corrupt. Theoretically, Chkdisk would catch this. It's possible that SpinRite would read the associated sector and find it just fine, so there's nothing it can do. Conversely, it's also possible that SpinRite will find a damaged sector and try to repair it with its statistical analysis. But, that may not work either. And, the file allocation table may still be damaged. I know Chkdisk can orphan files. So, I'm not sure what the best sequence is if there's damage, but I still think Chkdisk should be run before SpinRite. At least that way, if Chkdisk complains, I can find that out without activating repairs while I decide what to do. When SpinRite hits errors, it's immediately going to start repairs, which may try to write the sector with not quite correct data. Almost all the time, my Chkdisk passes, then SpinRite passes. So, it's doing therapeutic maintenance and hopefully preventing problems from occurring.

If I go too far off the rails, you guys can set me straight.

May your bits be stable and your interfaces be fast. :cool: Ron