SSDs can only tolerate a certain number of writes to each block. And the number is low. I have a 64gb SSD that went into a permanent read-only mode. 64gb is still today a very useful capacity. Thus the usefulness is cut short by hardware design deficiencies.
Contrast that with magnetic hard drives which often live beyond the usefulness of their capacity. That is, people toss out working 80mb mechanical drives now because they’re too small to justify the physical space they occupy, not because of premature failure ending the device’s useful life.
Nannying
When an SSD crosses a line whereby the manufacturer considers it unreliable, it goes into a read-only mode which (I believe) is passworded with a key that is not disclosed to consumers. The read-only mode is reasonable as it protects users from data loss. But the problem is the nannying that denies “owners”¹ ultimate control over their own property.
When I try to dd if=/dev/zero of=/dev/mydrive
, dd is lied to and will write zeros all day and report success, but dd
’s instructions are merely ignored and have no effect.
The best fix in that scenario would generally be to tell the drive to erase itself using a special ATA command, like this:
$ hdparm --security-erase $'\0' /dev/sdb
security_password: ""
/dev/sdb:
Issuing SECURITY_ERASE command, password="", user=user
SG_IO: bad/missing sense data, sb[]: 70 00 01 00 00 00 00 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: bad/missing sense data, sb[]: 70 00 0b 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Not sure why my null char got converted to a yen symbol, but as you can see the ATA instruction is blocked.
Here is a take from someone who endorses the nannying. The problem is that there is a presumption on how the drive will be used. Give me a special switch like:
$ hdparm --security-erase $'\0' --I-know-what-I-am-doing-please-let-me-shoot-myself-in-the-foot /dev/sdb
and this is what I would do:
$ dd if=KNOPPIX_V8.2-2018-05-10-EN.iso of=/dev/foo
$ hdparm --make-read-only /dev/foo
When the drive crosses whatever arbitrary line of reliability, it’s of course perfectly reasonable to do one last write operation to control what content is used in read-only mode.
5 years later when a different live distro is needed, it would of course be reasonable to repeat the process. One write every ~5 years would at least keep the hardware somewhat useful in the long term.
¹ “owners” is in scare quotes because of the sensible viewpoint “if you don’t control it, you don’t own it”. We are not in control as a consequence of nannying.
64gb? Your SSD sounds pretty old and is at the end of its fairly short lifespan. Modern SSDs will last much longer than a comparable HDD under average user conditions.
If you're writing TB on a regular schedule, yeah it will probably die sooner because that's not what it's designed for. It's just a different tool for a different job. If longevity and capacity was the only concern we'd all still be using tape.
Yeah, I think OP expects the same longevity from their ancient 64GB drive as a new 2TB one. Although I agree you should be able to disable the lock and continue using a drive how you want, but I would never recommend doing that.
I simply “expect” manufacturers to allow product owners to have control over their own property. It’s a political problem not a technical one. Whatever the limitations of the hardware are, it’s an injustice with the supplier denies the paying customer control and artificially forces a storage device into a needlessly irreversible read-only state.
Indeed.
I have seen countless mechanical HDDs long outlast the usefulness of their capacity. This is not the case with SSDs. SSDs are fragile. They also need to be powered on periodically just to prevent data loss. Note cases where police put SSDs into an evidence room where they sat until the court needed the evidence, at which point data loss destroyed their forensic usefulness -- which would not have been a problem with magnetic drives.
Really a red herring here. It does not matter how the drive reached EOL. The useful life is being cut short (shorter than it could be) by an act of policy.