Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Like it makes assumptions about the device other than ‘this is just a set of blocks on flash memory’ and actually needs things on the disk at a file system level to be a certain way for it to work properly?

The wear leveling algorithms are usually written to assume you're using FAT32 as the filesystem and certain parameters of it, but those assumptions are optimisations for wear and speed, not requirements --- AFAIK the last time I looked at this stuff in any deep detail, they weren't so crazy as to try to read the block content to determine the layout/filesystem, but those were still the days when 100k SLC was the norm and 10k MLC met with reliability skepticism.

The race for capacity means flash endurance has taken a steep nosedive with things like TLC/QLC, so if anything it's not really the firmware that's crap, it's the flash itself --- and the firmware is increasingly trying to compensate for it. For the cheapest USB/SD I think the firmware is actually stored in reserved areas of the flash itself, so any corruption has a much higher chance of rendering the device unusable.



Some drives try to interpret the fat free list (list of unallocated sectors), and try to erase them ahead of time for fast writes later.

If you reformat the disk and the partition alignment changes or the freelist moves, they'll randomly erase the wrong sectors of your data.


Do you have any references for that? It sounds horrifying, but very plausible.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: