Lo storage Flash è intrinsecamente diverso dallo storage su disco rotante a livello fisico e operativo. A differenza dei dischi di filatura, la memoria flash ha una quantità limitata di cicli di scrittura. La soluzione per aumentare la durata della vita dei media a qualcosa di utile che i produttori di storage hanno inventato è chiamata livellamento dell'usura . In sostanza, ciò significa che quando scrivi due volte su un blocco logico sul disco, con tutta probabilità scriverai su due diversi blocchi fisici nel supporto di memorizzazione.
Le risposte che affermano che semplicemente la riscrittura nei blocchi è sufficiente non tenerne conto. Hai chiesto specificamente su schede SD, che in base a questa risposta a volte è implementata nelle schede SD e altre volte no. Quindi non è così semplice darti una risposta diretta.
Inoltre, prima che il blocco fisico possa essere riscritto, deve prima essere cancellato. Ciò richiede un po 'di tempo extra e riduce le prestazioni. Per peggiorare le cose, il dispositivo flash non ha idea di quali blocchi siano in uso e quali no, a meno che non venga loro detto Questo è ciò che trim è usato per. In poche parole, indica al supporto sottostante quali blocchi può liberare, in modo che il supporto di memorizzazione possa quindi eseguire l'operazione di cancellazione in background durante il periodo di inattività. Il comando trim è specifico per il bus ATA / SCSI e, di nuovo, hai chiesto informazioni sulle schede SD. Non so se esiste un comando equivalente per il mercato delle schede SD, ma è qualcosa che dovresti tenere a mente.
Il risultato finale è che la cancellazione in memoria Flash non è così semplice come la cancellazione di un HDD rotante. Il fatto che non si possa essere certi di scrivere nello stesso settore fisico complica notevolmente le cose. Il meglio che puoi sperare di cancellare un file su una scheda SD è scrivere su ogni singolo settore sul disco.
Anche questo non è perfetto. Alcuni produttori dispongono di settori di riserva disponibili quando un settore logora il blocco logico che viene mappato a un nuovo settore. Quindi è possibile che anche sovrascrivere tutti i settori logici non sovrascriverà tutti i settori fisici. (A proposito, lo stesso vale per i dischi rotanti).