Los sistemas de archivos de Windows

basic concepts of varios file systems of windows

Como se explica en el artículo sobre los conceptos básicos del sistema de archivos, los sistemas operativos suelen tener una lista limitada de sistemas de archivos compatibles. Y en el caso de la familia Windows de Microsoft, generalmente hay que elegir entre dos tipos principales de sistemas de ficheros: NTFS, el formato básico que la mayoría de las versiones modernas del sistema operativo usan de forma predeterminada, y FAT, un sistema heredado del antiguo MS-DOS, con exFAT como su extensión posterior. Microsoft también lanzó ReFS, un formato de nueva generación dirigido a los servidores a partir de Windows Server 2012. En cuanto a HPFS que fue desarrollado por Microsoft junto con IBM, ahora sólo se puede encontrar en los equipos extremadamente antiguos que funcionan en Windows NT hasta 3.5. Siga leyendo para examinar estos formatos con más detalle y compararlos. Además, este artículo también demuestra su relación con el resto de tecnologías de almacenamiento de datos utilizadas por Windows.

FAT/FAT32, exFAT

FAT (del inglés File Allocation Table, Tabla de asignación de archivos) es uno de los sistemas de archivos más simples que existe desde la década de 1980 y tiene su origen en el antiguo sistema operativo MS-DOS de Microsoft. Por lo tanto, no sorprende que FAT se creara originalmente con los almacenamientos de baja capacidad en mente.

Como sugiere su nombre, este sistema de archivos en realidad se basa en una tabla que sirve como un índice de su contenido. La estructura general del sistema de ficheros se compone de tres áreas separadas:

  • El sector de arranque;

  • La Tabla de asignación de archivos (File Allocation Table o FAT);

  • El área de almacenamiento de datos.

El sector de arranque es el primer sector en cualquier partición formateada con FAT y contiene información importante sobre su organización.

Luego va la Tabla de asignación de archivos (FAT) principal, así como su copia de seguridad a la que se puede acceder en caso de un problema de lectura de la original.

La mayor parte de la partición pertenece al área de almacenamiento de datos que se divide en clústeres. Un clúster consta de sectores adyacentes y se utiliza como una unidad mínima para la asignación de archivos. Su tamaño es fijo, pero puede variar entre 512 bytes y 64 kilobytes, según el tamaño del volumen y la versión de FAT. Un archivo, independientemente de lo pequeño que sea, ocupa todo el clúster, y el espacio desocupado restante se desperdicia. Cuando se requieren varios clústeres para almacenar un archivo, pueden asignarse en una cadena consecutiva o de manera dispersa por todo el volumen, lo que provoca la fragmentación del archivo.

Cada clúster tiene una entrada asociada en la Tabla de asignación de archivos (FAT). Un valor cero en la Tabla indica que este clúster no se usa actualmente, mientras que uno distinto de cero puede apuntar al siguiente clúster del mismo archivo o a un indicador especial de su final.

Los directorios, al igual que los archivos, están en el área de almacenamiento de datos. Se componen de entradas de directorio de 32 bytes de longitud, cada una de las cuales describe un archivo almacenado en este directorio (o en su subdirectorio). Junto con el nombre, el tamaño y otros atributos del archivo, la entrada de directorio también contiene información sobre el primer clúster del archivo. En consecuencia, es posible descubrir dónde comienza el archivo necesario por la entrada de directorio correspondiente, mientras que cualquier clúster siguiente se puede encontrar a través de la Tabla de asignación de archivos, usándola como una lista de enlaces.

Con el transcurso del tiempo, FAT ha sido revisado varias veces. A la versión original le siguió FAT12, luego vino FAT16 y, finalmente, FAT32. Los números en sus nombres indican la cantidad de bits utilizados para dirigirse a un solo clúster: 12 bits en FAT12, 16 bits en FAT16 y 32 bits en FAT32 respectivamente.

FAT12 y FAT16 se aplicaron a los disquetes antiguos y hoy en día, ya no son muy comunes. FAT32, por el contrario, todavía se usa mucho, principalmente debido a su amplia compatibilidad. Es que se puede acceder a él desde casi cualquier sistema operativo, incluidos macOS y Linux, lo que lo convierte en una buena opción para los dispositivos portátiles, como las tarjetas de memoria y memorias USB. Este formato también es compatible con los teléfonos inteligentes, las cámaras digitales, las grabadoras de vídeo, las consolas de vídeojuegos y otros dispositivos.

Sin embargo, FAT32 no cuenta con la compatibilidad nativa con los almacenamientos de datos de capacidades mayores de 32 GB. Por esta razón, se puede utilizar en los almacenamientos externos o en las particiones de disco menores de 32 GB compatibles con Windows y formateados con la herramienta integrada de este sistema operativo, o en esos de hasta 2 TB formateados con otros medios. Este sistema de archivos tampoco permite crear archivos mayores de 4 GB.

Para abordar este problema, se presentó exFAT (del inglés Extended File Allocation Table, Tabla de asignación de archivos extendida). No tiene limitaciones con respecto al tamaño y se utiliza con frecuencia en los discos duros externos, los SSD, las memorias USB de capacidades grandes, etc. Aún así, la tecnología subyacente ya se considera obsoleta y tiene muchas restricciones que la hacen inadecuada para el uso predominante en los entornos informáticos modernos.

NTFS

NTFS (del inglés New Technology File System, Sistema de archivos de nueva tecnología) se introdujo en 1993 junto con Windows NT y actualmente es el sistema de archivos más común en las computadoras de usuarios finales bajo Windows. Los sistemas operativos de la línea Windows Server también utilizan este formato.

NTFS es notablemente mejor que FAT en numerosos aspectos. Es bastante confiable gracias al registro por diario (journaling) y brinda muchas funciones útiles, incluido el control de acceso, el cifrado, la compresión de archivos, etc. Además, utiliza las estructuras de datos más avanzadas que permiten sacar mayor provecho del espacio de almacenamiento y lo hacen mucho menos propenso a la fragmentación. Todo el sistema de archivos se basa en varios archivos de servicio:

  • El archivo $Boot;

  • El archivo $MFT (Master File Table o Tabla maestra de archivos);

  • El archivo $Bitmap;

  • El $LogFile y otros.

El archivo $Boot participa en el proceso de arranque y contiene muchos parámetros importantes del sistema de ficheros.

La Tabla maestra de archivos tiene una entrada para todos y cada uno de los ficheros del sistema de archivos. Los registros que contiene se llaman atributos y pueden incluir todo tipo de información, desde el nombre del archivo, su tamaño, los permisos, la fecha de creación/última modificación hasta su contenido real. Cuando este contenido no cabe en una entrada de la tabla MFT (que es de 1024 bytes de tamaño), NTFS asigna clústeres fuera de la MFT y crea punteros a sus ubicaciones. Otros atributos también pueden ser demasiado grandes para caber en una entrada de la MFT, por ejemplo, nombres de archivo largos. Dichos atributos también obtienen clústeres separados.

Los clústeres generalmente se asignan en secuencias continuas que se llaman extents. NTFS siempre intenta colocar el contenido en un solo extent. Pero en ausencia de una secuencia de clústeres contiguos, el sistema crea un nuevo extent en otro lugar, dividiendo un archivo en fragmentos.

En NTFS, los directorios se almacenan como archivos, pero en lugar del contenido de datos típico, dichos archivos mantienen listas de nombres de archivo y referencias que identifican esos archivos.

En el archivo $Bitmap, se registran los estados de los clústeres. Cada bit en él representa un clúster y puede tener el valor de 1, cuando el clúster está ocupado, o 0, cuando no está ocupado.

Antes de alterar cualquiera de sus estructuras cruciales, NTFS registra los cambios en $LogFile. Dicho registro (journal) permite recuperarlos en caso de cualquier inconsistencia que puede deberse a un fallo durante su actualización. Cuando ocurre un error durante el funcionamiento normal, NTFS identifica el clúster defectuoso, lo registra en el archivo $BadClus y copia los datos en otra ubicación.

En vista de su organización eficaz y un montón de funciones, NTFS es adecuado para el uso interno en las computadoras en Windows. Por otro lado, los dispositivos como las tarjetas de memoria o memorias USB pueden requerir un sistema de archivos más liviano que permanezca accesible fuera del entorno de Windows.

ReFS

ReFS (del inglés Resilient File System, Sistema de archivos resistente) es el último desarrollo de Microsoft que fue lanzado con Windows Server 2012 y luego se agregó a Windows 8.1. Ahora también está disponible dentro de Windows 11.

ReFS se diseñó para abordar ciertas deficiencias de NTFS, específicamente esas con respecto a la corrupción de datos. Tiene una tolerancia a fallas mucho más alta gracias al mecanismo de Copy-on-Write (CoW) o Copiar en escrito (VACA). Al editar los metadatos existentes, ReFS guarda su copia en otra área en el medio de almacenamiento y, en lugar de sobrescribirla en sitio, la actualiza y vincula esta copia modificada al archivo correspondiente. Por lo tanto, una cantidad considerable de copias anteriores se almacenan en diferentes ubicaciones, lo que facilita la restauración de la integridad del sistema de archivos y permite prevenir la pérdida de datos. ReFS también emplea sumas de verificación (checksums) que le permiten detectar rápidamente cualquier posible corrupción de datos.

La arquitectura de ReFS difiere absolutamente de esa de otros formatos de Windows. Ella emplea los árboles B+ como una estructura común en disco para representar tanto los metadatos como los datos reales de los archivos. Este árbol está compuesto por la raíz, los nodos internos y las hojas. Cada nodo del árbol contiene una lista ordenada de claves o punteros a los nodos de nivel inferior (hojas).

Este diseño de ReFS lo hace óptimo para los sistemas de almacenamiento grandes y de alta disponibilidad. Pero a pesar de sus ventajas obvias, no se considera tan estable como NTFS y tampoco ofrece la compatibilidad con otros dispositivos basados en Windows.

HPFS

HPFS (del inglés High Performance File System, Sistema de archivos de alto rendimiento) fue creado por Microsoft en cooperación con IBM y lanzado al mercado con OS/2 1.20 en 1989 como un sistema de archivos para servidores con un rendimiento mucho mejor en comparación con ese de FAT.

A diferencia de FAT que simplemente asigna cualquier primer clúster libre en el disco al fragmento de archivo, HPFS busca colocar archivos en bloques contiguos, o al menos garantizar que sus fragmentos (los extents) se coloquen lo más cerca posible uno del otro.

Al comienzo de HPFS, hay tres bloques de control que ocupan 18 sectores: el bloque de arranque, el súper bloque y el bloque de repuesto.

El espacio de almacenamiento restante se divide en partes de sectores contiguos denominadas bandas que ocupan 8 MB cada una. Una banda tiene su propio bitmap (mapa de bits) de asignación de sectores que muestra cuáles de los sectores están ocupados (1 – ocupado, 0 – libre).

Cada archivo y directorio tiene su propio F-nodo ubicado cerca de él en el disco – esta estructura contiene información sobre la ubicación del archivo y sus atributos extendidos. Se utiliza una banda de directorios especial ubicada en el centro del disco para almacenar directorios, mientras que la estructura de directorios en sí es un árbol equilibrado con entradas en orden alfabético.

Aún así, HPFS tenía limitaciones significativas y eventualmente se volvió obsoleto. Ni siquiera se soporta en Windows a partir de NT 4.

Sugerencia: La información sobre las perspectivas de la recuperación de datos de los sistemas de archivos de Windows se puede encontrar en los artículos sobre las peculiaridades de la recuperación de datos de diferentes sistemas operativos y las probabilidades de recuperar datos. Para obtener instrucciones detalladas y recomendaciones prácticas, por favor, lea el manual dedicado a la recuperación de datos en Windows.

Otras tecnologías de almacenamiento de datos de Windows

En la mayoría de los casos, los sistemas de archivos de Windows funcionan de forma independiente, especialmente con unidades individuales y configuraciones de almacenamiento básicas. Sin embargo, también se pueden utilizar junto con otras tecnologías diseñadas para complementar sus funciones. Estas tecnologías suelen crear volúmenes lógicos que proporcionan una capa de abstracción sobre el almacenamiento físico y sirven como contenedores para el sistema de archivos. Entre las tecnologías relacionadas con el ecosistema de Windows, se destacan:

  • Storage Spaces (Espacios de almacenamiento): una función de Windows que permite a los usuarios unir varias unidades físicas en grupos de almacenamiento (pools) virtuales. El almacenamiento virtual se puede proteger contra fallas de unidades al guardar copias de datos en dos o tres unidades (el llamado espejo bidireccional o tridireccional) o al almacenar datos junto con información de paridad, o incluso con dos conjuntos de paridad en caso de redundancia doble. Esta función sólo funciona con los sistemas de ficheros de Windows más modernos, como NTFS y ReFS.

    Sugerencia: Consulte, por favor, estas instrucciones, si intenta recuperar datos de Microsoft Storage Spaces.

  • Dynamic Disks (Discos dinámicos): una función heredada que se soporta principalmente en las versiones anteriores de Windows. Permite crear varias configuraciones a partir de varias unidades que son mucho más flexibles en comparación con las básicas. Entre los tipos de volúmenes compatibles: simple, distribuido (spanned), en bandas (striped), con espejo (mirrored) y RAID-5. Un volumen de este tipo se puede formatear con NTFS o, en algunos casos, con el sistema de archivos FAT32.

  • Data deduplication (Deduplicación de datos): una función avanzada que se soporta en algunas ediciones específicas de Windows y permite optimizar el rendimiento del almacenamiento por medio de la eliminación de copias duplicadas de bloques de datos. En lugar de almacenar varias instancias de los mismos datos, se almacena una sola y se hace referencia a ella siempre que sea necesario. El mecanismo de deduplicación descrito se integra con los sistemas de archivos NTFS y ReFS.

    Sugerencia: Lea las instrucciones, si necesita recuperar datos de un volumen con la deduplicación de datos habilitada.

  • BitLocker: una tecnología de cifrado de disco completo integrada en Windows. Protege datos confidenciales al cifrar el contenido de volúmenes completos y hacerlo inaccesible sin la autorización respectiva. Esta función se soporta por NTFS, FAT32 y exFAT.

    Sugerencia: Si necesita recuperar datos de un volumen cifrado con BitLocker, por favor, lea el artículo respectivo.

Si usted busca información sobre los formatos nativos de otros sistemas operativos populares, por favor, consulte el artículo correspondiente:

Última actualización: el 05 de noviembre de 2024

Si le gusta este artículo, compártalo en sus redes sociales: