Op 7 december 2021 19:11:38 schreef flipflop:
Als er net geschreven wordt naar de disk als de power wegvalt, dan maak je bestanden stuk.
Dat is steeds minder waar. Jaren 80 en 90: ja. Maar de laatste decennia niet meer.
Vroeger dan schreef je naar een bestand, en dan zat er de gewijzigde inhoud en de gewijzigde meta-informatie (b.v. dat het bestand een nieuw block in gebruikgenomen heeft) in de cache. En 30 sec later ging ie op z'n gemakje die dingen naar de schijf schrijven in min of meer random volgorde (wat de disk het beste uitkomt).
Tegenwoordig hebben we "journalling" file systems. Dan wordt enerzijds een "journal" bijgehouden maar ook de wijzigingen worden in de volgorde weggeschreven dat op ieder moment de stroom ongestraft uit kan.
Linux heeft EXT3 en EXT4 (en vele andere) die aan jouralling doen. Die kan je niet corrupt krijgen door plots de stroom uit te zetten. En ext4 is wat standaard op raspi OS gebruikt wordt.
En al krijg je ze kapot, dan is er fsck die het meestal wel weer recht weet te breien. Zowiezo zijn de bestanden die nodig zijn voor het opstarten vrijwel allemaal "statisch": Veranderen niet of alleen tijdens een upgrade.
Een wat ander verhaal is de SD kaart zelf. Enerzijds komt het heel vaak voor dat zeg een 4k block uit een 512k page van de SD kaart beschreven wordt. Het wissen gaat per-page. Dus dan moet je een read-modify-write doen: 508k lezen, 4k er tussen prutsen en dan de 512k page wissen en terugschrijven. Nogal inefficient. Anderzijds, in de SD standaard staat dat een OS geen adminstratie hoeft bij te houden van welke sectoren er slecht zijn, dat soort dingen moet de SD kaart doen en die moet een aaneengesloten stuk werkend geheugen presenteren.
Dus.... De SD kaart houdt bij van "page 23 is 8k block 12 beschreven met nieuwe data: .... " vraag je block 11 op haalt ie hem uit de echte page 23, vraag je block 12 op, moet ie van een heel andere plek opgehaald worden. Daar is een hele adminstratie voor.....
En juist daarin kan het wel eens fout gaan. Die SD kaarten zijn wel eens niet goed geprogrammeerd dat als er tijdens het schrijven de stroom uitvalt.... hij gewoon bij het opstarten helemaal niet meer weet wat waar staat.
Goedkopere SD kaarten hebben dit vaker fout geprogrammeerd dan de duurdere merken.