HDD como capa de abstracción no necesita el concepto de datos eliminados. Es un dispositivo de bloqueo. Puede leer o escribir en su bloque, un sector de su elección. Independientemente de lo que escriba en el sector, puede leerlo tantas veces como desee. Si sobrescribe el sector, los intentos de lectura consecutivos devolverán los nuevos datos. No hay ningún estado especial que indique "sin datos". Si el tamaño del sector es de 512 bytes y el disco está en buen estado, obtendrá 512 bytes cada vez que lea. Alguna capa superior de abstracción necesita saber si estos bytes significan algo o no.
Por lo general, un sistema de archivos es tal capa. La misma secuencia de bytes devuelta desde el mismo sector puede ser parte de algún archivo o espacio vacío, dependiendo del contenido de otros sectores (en su ejemplo: donde se almacena MFT). El término "espacio vacío" aquí es engañoso; "bytes consumibles" sería mejor.
Dado que cualquier sector tiene que devolver algunos datos de todos modos cuando se consulta, es un enfoque sano y común para dejar los datos intactos al eliminar un archivo y modificar solo los metadatos (por ejemplo, MFT) que rastrea sectores significativos y prescindibles. Los sistemas de archivos comunes manejan las eliminaciones de esta manera.
Esta separación de capas funciona muy bien con los discos duros.
Para los SSD (memoria flash en general), hay al menos dos razones por las que le gustaría que el dispositivo mismo (es decir, su controlador de firmware) sepa qué sectores son fungibles.
Uno es el hecho de que no puede sobrescribir directamente los datos almacenados en celdas de memoria flash (francamente no estoy seguro de si esto se aplica a todas las tecnologías, pero se aplica al menos a algunas de ellas y son comunes). Debe borrar las celdas y luego escribirles nuevos datos durante una operación separada.
Esto significa que internamente hay un estado que indica "eliminado" o "sin datos". Si el dispositivo sabe qué sectores son prescindibles, puede borrarlos de antemano y, cuando llegue el momento de escribir algo, no hay demora. (Bueno, es aún más complicado. Puede borrar nada menos que un montón de celdas, mucho más que un sector de 512 bytes. Para obtener más información, busque "bloques y páginas flash", "recolección de basura flash").
La otra razón es la nivelación del desgaste. Una celda de memoria flash se desgasta un poco con cada escritura (o más bien con cada borrado). Si continúa sobrescribiendo el mismo sector lógico una y otra vez, su SSD moderno lo reasignará a diferentes celdas físicas para que se agoten uniformemente. El dispositivo probablemente tiene un grupo significativo de celdas "de repuesto" que puede usar incluso si se sabe que ninguno de los sectores lógicos es prescindible, pero todo el truco funciona mejor si el controlador sabe qué sectores contienen datos que ya no son necesarios, por lo que Puede reutilizar libremente las celdas asignadas a ellos.
Cuando su sistema operativo (que comprende el sistema de archivos) informa a su SSD qué sectores son prescindibles, lo llamamos guarnición (ver esta respuesta mia para algunos detalles).
Tenga en cuenta que incluso si todo el SSD se borra internamente, cualquier sector devolverá algunos datos binarios cuando se lea (supongo que el firmware probablemente devolverá todos los ceros, no lo he probado); no puede distinguir las celdas borradas de las celdas que contienen estos datos en particular simplemente leyendo desde el dispositivo. Externamente, esto imita el comportamiento tradicional de la unidad de disco duro donde no hay ningún concepto de datos borrados (borrados).
El sistema de archivos, para el cual el disco duro proporciona almacenamiento físico, marcaría el archivo como eliminado. La unidad en sí, convencional o SSD no tiene conocimiento de archivos, carpetas, sistemas de archivos, particiones, etc. Todos estos son conceptos de alto nivel implementados por el sistema de archivos y otro software del sistema. La unidad solo comprende los bloques de datos y no comprende para qué se pueden usar los datos.
fuente