El almacenamiento flash es intrínsecamente diferente del almacenamiento en disco giratorio a nivel físico y operativo. A diferencia de los discos giratorios, el almacenamiento flash tiene una cantidad limitada de ciclos de escritura. La solución para aumentar la vida útil de los medios a algo utilizable que los creadores de almacenamiento hayan creado se llama nivelación de desgaste . Esencialmente, lo que esto significa es que cuando escribe dos veces en un bloque lógico en el disco, es muy probable que escriba en dos bloques físicos diferentes en el medio de almacenamiento.
Las respuestas que afirman que simplemente reescribir en los bloques es suficiente no tienen esto en cuenta. Usted preguntó específicamente sobre las tarjetas SD, que de acuerdo con esta respuesta a veces se implementa en tarjetas SD, y otras veces no. Así que no es tan fácil darte una respuesta directa.
Además, antes de que se pueda reescribir el bloqueo físico, primero debe borrarse. Esto toma algún tiempo extra y reduce el rendimiento. Para empeorar las cosas, el dispositivo flash no tiene idea de qué bloques están en uso y cuáles no, a menos que se le indique. Esto es lo que trim se utiliza para. En pocas palabras, le indica al medio subyacente qué bloques puede liberar para que el medio de almacenamiento pueda realizar la operación de borrado en segundo plano durante el tiempo de inactividad. El comando de ajuste es específico del bus ATA / SCSI, y nuevamente, le preguntó acerca de las tarjetas SD. No sé si hay un comando equivalente para el mercado de tarjetas SD, pero es algo que debe tener en cuenta.
El resultado final es que el borrado en el almacenamiento Flash no es tan simple como borrar un disco duro giratorio. El hecho de que no pueda estar seguro de que está escribiendo en el mismo sector físico complica mucho las cosas. Lo mejor que puede esperar para borrar un archivo en una tarjeta SD es escribir en cada sector en la unidad.
Incluso esto no es perfecto. Algunos fabricantes tienen sectores de repuesto disponibles cuando un sector desgasta el bloque lógico que se asigna a un nuevo sector. Por lo tanto, es posible que incluso sobrescribir todos los sectores lógicos no sobrescriba todos los sectores físicos. (Por cierto, lo mismo ocurre con los discos giratorios).