Hacker News new | ask | show | jobs
by gorgoiler 2096 days ago
Machines no longer degrade when the power is yanked. Any corruption caused by a mid-write devoltage event is handled gracefully by whatever modern filesystem of choice you are using, is it not?

Is there some more fundamental hardware damage that occurs when USB devices are unplugged without prior warning to the device itself?

3 comments

1. A modern filesystem will stop the filesystem getting corrupted by power loss - but a file that was mid-write, or an install process that had copied half the files it needed to, will still leave that thing incomplete.

2. SD cards can wear out (i.e. too many write-erase cycles) regardless of the filesystem.

3. SD cards have controllers running firmware, doing things like write levelling and bad block remapping. Some cards have bugs, and if the card is lying to the OS about a write completing, or if the remapping table is less resilient than the filesystem's journaling, you get problems even if the OS and everything on it is perfect.

4. Problems like pins with poor connections and power supplies not providing enough current are exacerbated, as microsds have no space for power capacitors and few SD card holders are rated for hundreds of insertion cycles.

5. SD cards start out a lot cheaper than SSDs (easier to find a sub-$10 SD card than a sub-$50 SSD) and the market is awash in fakes

All these problems look very similar - "My RPi stopped booting, I replaced the SD card with a freshly written one and it started booting again" - making forum anecdotes and user bug reports hard to rely on.

Lots of points you make are true. Yes, if you yank the plug without saving you lose your work. Or Exim will have to flush the queue again. Or vim will have a dangling swapfile that it will ask you about next time. Or you’ll have to start over on your game of solitaire.

And yes, SD cards have flaws.

My question was: if I turn my computer off every day by yanking the power cord, I expect nothing to break, so what am I missing when people seem so wary of doing it?

(Recall that this was all in the context of a parent comment lamenting a lack of a dedicated shutdown button on the RPi.)

I just spent $10k on 4 Siemens 32Gig industrial SD cards for S7-1500 PLC's, in safety service.

Gauranteed 500,000 writes, probably much more, but they have "mission life" quoted at ten years on the vendor cert, so will be ditched after ten years and replaced.

Apparently they are a whole different type of logic design, hence the cost. Even the no-name or branded equivelent I could find were close to $1k each, but given use in safety service we went legit all the way anyway.

Anything with the magic S word stamped on it seems to double in price...

It does, when your crappy hardware doesn't lie to the kernel. Go take a look at the amount of unrecoverable FS corruption discussions at LKML. It still happens relatively frequently, and is almost always caused by shitty hardware ignoring fsync and lying to the filesystem. SD cards and cheap SSDs are especially terrible in this regard (that's why I refuse to buy anything except from the most respected vendors, and they still have their issues). Many devices don't even report checksum mismatches on read requests and simply return garbage data, and most filesystems don't notice it (because they don't implement a data integrity checking mechanism of their own)
Because of large erase blocks, it's unavoidable that a flash device needs to involve some kind of very careful bookkeeping and sector-shifting to safely handle power loss during writes. Otherwise it could lose a big chunk of sectors unrelated to what you were actually writing, and that's not something a filesystem can paper over. I barely trust a proper SSD controller to do this, let alone whatever cheap thing is in an SD card or flash drive.