NTFS ( New Technology File System ) [1] es un sistema de archivos de registro en diario patentado desarrollado por Microsoft . [1] A partir de Windows NT 3.1 , es el sistema de archivos predeterminado de la familia Windows NT . [9]
Desarrollador (es) | Microsoft |
---|---|
Nombre completo | Sistema de archivos NT [1] |
Introducido | Julio de 1993 Windows NT 3.1 | con
Identificador de partición | 0x07 ( MBR ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
Estructuras | |
Contenidos del directorio | Variante de árbol B [2] [3] |
Asignación de archivos | Mapa de bits |
Bloques malos | $ BadClus (registro MFT) |
Limites | |
Max. tamaño del volumen | 2 64 grupos - 1 grupo (formato); 256 TiB - 64 KB ( Windows 10 versión 1703, Windows Server 2016 o implementación anterior) [4] 8 PB - 2 MB (Windows 10 versión 1709, Windows Server 2019 o implementación posterior) [5] |
Max. tamaño del archivo | 16 EiB - 1 KB (formato); 16 TB - 64 KB ( Windows 7 , Windows Server 2008 R2 o implementación anterior) [4] 256 TB - 64 KB ( Windows 8 , Windows Server 2012 o implementación posterior) [6] 8 PB - 2 MiB (Windows 10 versión 1709, Windows Server 2019 o implementación posterior) [5] |
Max. Número de archivos | 4.294.967.295 (2 32 -1) [4] |
Max. longitud del nombre de archivo | 255 unidades de código UTF-16 [7] |
Caracteres permitidos en nombres de archivo |
|
Características | |
Fechas registradas | Creación, modificación, cambio POSIX, acceso |
Rango de fechas | 1 de enero de 1601-28 de mayo de 60056 (los tiempos de archivo son números de 64 bits que cuentan con intervalos de 100 nanosegundos (diez millones por segundo) desde 1601, que son más de 58.000 años) |
Resolución de fecha | 100 ns |
tenedores | Sí (consulte § Flujos de datos alternativos (ADS) a continuación) |
Atributos | Solo lectura, oculto, sistema, archivo, sin contenido indexado, fuera de línea, temporal, comprimido |
Permisos del sistema de archivos | ACL |
Compresión transparente | Por archivo, LZ77 ( Windows NT 3.51 en adelante) |
Cifrado transparente | Por archivo, DESX ( Windows 2000 en adelante), Triple DES ( Windows XP en adelante), AES (Windows XP Service Pack 1, Windows Server 2003 en adelante) |
Deduplicación de datos | Sí ( Windows Server 2012 ) [8] |
Otro | |
Apoyados sistemas operativos | Windows NT 3.1 y posteriores Mac OS X 10.3 y posteriores (solo lectura) Kernel de Linux versión 2.6 y posteriores versiones de kernel de Linux 2.2-2.4 (solo lectura) FreeBSD NetBSD Chrome OS Solaris ReactOS (solo lectura) |
NTFS tiene varias mejoras técnicas sobre los sistemas de archivos que reemplazó - Tabla de asignación de archivos (FAT) y Sistema de archivos de alto rendimiento (HPFS) - como soporte mejorado para metadatos y estructuras de datos avanzadas para mejorar el rendimiento, la confiabilidad y el uso del espacio en disco. Las extensiones adicionales son un sistema de seguridad más elaborado basado en listas de control de acceso (ACL) y el registro del sistema de archivos .
NTFS también es compatible con otros sistemas operativos de escritorio y servidor. Linux y BSD tienen un controlador NTFS gratuito y de código abierto , llamado NTFS-3G , con funcionalidad de lectura y escritura. macOS viene con soporte de solo lectura para NTFS.
Historia
A mediados de la década de 1980, Microsoft e IBM formaron un proyecto conjunto para crear la próxima generación de sistema operativo gráfico ; el resultado fue OS / 2 y HPFS . Debido a que Microsoft no estaba de acuerdo con IBM en muchos temas importantes, finalmente se separaron; OS / 2 siguió siendo un proyecto de IBM y Microsoft trabajó para desarrollar Windows NT y NTFS.
El sistema de archivos HPFS para OS / 2 contenía varias características nuevas importantes. Cuando Microsoft creó su nuevo sistema operativo, "tomó prestados" muchos de estos conceptos para NTFS. [10] Los desarrolladores originales de NTFS fueron Tom Miller , Gary Kimura, Brian Andrew y David Goebel. [11]
Probablemente como resultado de esta ascendencia común, HPFS y NTFS utilizan el mismo código de tipo de identificación de partición de disco (07). El uso del mismo número de registro de ID de partición es muy inusual, ya que había docenas de números de código sin usar disponibles y otros sistemas de archivos importantes tienen sus propios códigos. Por ejemplo, FAT tiene más de nueve (uno para FAT12 , FAT16 , FAT32 , etc.). Los algoritmos que identifican el sistema de archivos en un tipo de partición 07 deben realizar comprobaciones adicionales para distinguir entre HPFS y NTFS.
Versiones
Microsoft ha lanzado cinco versiones de NTFS:
Número de versión de NTFS | Primer sistema operativo | Fecha de lanzamiento | Nuevas características | Observaciones |
---|---|---|---|---|
1.0 | Windows NT 3.1 | 1993 [9] | Versión inicial | NTFS 1.0 es incompatible con 1.1 y posteriores: los volúmenes escritos por Windows NT 3.5x no pueden ser leídos por Windows NT 3.1 hasta que se instale una actualización (disponible en los medios de instalación de NT 3.5x). [12] |
1.1 | Windows NT 3.51 | 1995 | Archivos comprimidos, secuencias con nombre y listas de control de acceso [13] | |
1.2 | Windows NT 4.0 | 1996 | Descriptores de seguridad | Comúnmente llamado NTFS 4.0 después del lanzamiento del sistema operativo |
3,0 | Windows 2000 | 2000 | Las cuotas de disco, sistema de cifrado de archivos , archivos dispersos , puntos de análisis , número de secuencia de actualización (USN) en diario , la $Extend carpeta y sus archivos | La compatibilidad también estuvo disponible para Windows NT 4.0 con la actualización del Service Pack 4. Comúnmente llamado NTFS 5.0 después del lanzamiento del sistema operativo. [14] |
3.1 | Windows XP | Octubre de 2001 | Se expandieron las entradas de la tabla maestra de archivos (MFT) con un número de registro MFT redundante (útil para recuperar archivos MFT dañados) | Comúnmente llamado NTFS 5.1 después del lanzamiento del sistema operativo |
El NTFS.sys
número de versión (por ejemplo, v5.0 en Windows 2000) se basa en la versión del sistema operativo; no debe confundirse con el número de versión de NTFS (v3.1 desde Windows XP). [15]
Aunque las versiones posteriores de Windows agregaron nuevas características relacionadas con el sistema de archivos, no cambiaron el NTFS en sí. Por ejemplo, Windows Vista implementa NTFS enlaces simbólicos , NTFS transaccional , la reducción de la partición, y la auto-sanación. [16] Los enlaces simbólicos NTFS son una nueva característica del sistema de archivos; todos los demás son características nuevas del sistema operativo que hacen uso de características NTFS ya implementadas.
Características
NTFS v3.0 incluye varias características nuevas sobre sus predecesores: compatibilidad con archivos dispersos, cuotas de uso de disco, puntos de análisis, seguimiento de enlaces distribuidos y cifrado a nivel de archivo llamado Sistema de cifrado de archivos (EFS).
Escalabilidad
NTFS está optimizado para clústeres de 4 KB , pero admite un tamaño máximo de clúster de 2 MB . (Las implementaciones anteriores admiten hasta 64 KB) [5] El tamaño máximo de volumen NTFS que puede admitir la especificación es de 2 64 - 1 clústeres, pero no todas las implementaciones alcanzan este máximo teórico, como se describe a continuación.
El tamaño máximo de volumen NTFS implementado en Windows XP Professional es 2 32 - 1 clústeres, en parte debido a las limitaciones de la tabla de particiones. Por ejemplo, si se utilizan clústeres de 64 KB, el tamaño máximo del volumen NTFS de Windows XP es de 256 TB menos 64 KB . Con el tamaño de clúster predeterminado de 4 KB, el tamaño máximo del volumen NTFS es 16 TB menos 4 KB. Ambos son mucho más altos que el límite de 128 GB en Windows XP SP1 . Debido a que las tablas de partición en discos de registro de arranque maestro (MBR) solo admiten tamaños de partición de hasta 2 TB, se deben combinar varios volúmenes de tabla de particiones GUID (GPT o "dinámicos") para crear un único volumen NTFS de más de 2 TB. El arranque desde un volumen GPT a un entorno Windows de una forma compatible con Microsoft requiere un sistema con interfaz de firmware extensible unificada (UEFI) y compatibilidad con 64 bits. [17]
El límite teórico máximo de NTFS sobre el tamaño de los archivos individuales es 16 EB [18] ( 16 × 1024 6 o 2 64 bytes ) menos 1 KB, que totaliza 18,446,744,073,709,550,592 bytes. Con Windows 10 versión 1709 y Windows Server 2019 , el tamaño máximo de archivo implementado es 8 PB menos 2 MB o 9,007,199,252,643,840 bytes. [5]
Llevar un diario
NTFS es un sistema de archivos de diario y utiliza el registro NTFS ($ LogFile) para registrar los cambios de metadatos en el volumen. Es una característica que FAT no proporciona y es fundamental para NTFS para garantizar que sus complejas estructuras internas de datos permanecerán consistentes en caso de fallas del sistema o movimientos de datos realizados por la API de desfragmentación , y permitir una fácil reversión de los cambios no confirmados en estas estructuras de datos críticas. cuando se vuelve a montar el volumen. Las estructuras más afectadas son el mapa de bits de asignación de volumen, las modificaciones a los registros MFT , como los movimientos de algunos atributos de longitud variable almacenados en registros MFT y listas de atributos, e índices para directorios y descriptores de seguridad .
El formato ($ LogFile) ha evolucionado a través de varias versiones:
Versión de Windows | $ Versión de formato de LogFile |
---|---|
Windows NT 4.0 | 1.1 |
Windows 2000 | |
Windows XP | |
Windows Vista | |
Windows 7 | |
Windows 8 | |
Windows 8.1 | 2.0 |
Windows 10 |
La incompatibilidad de las versiones de $ LogFile implementadas por Windows 8.1 y Windows 10 impide que Windows 8 (y versiones anteriores de Windows) procesen correctamente el $ LogFile en caso de que el volumen NTFS quede en estado sucio debido a un apagado abrupto o al hibernar en el disco. en el estado de cierre de sesión (también conocido como: arranque híbrido o arranque rápido, que está habilitado de forma predeterminada en Windows 10 ). Esta incapacidad para procesar la v2.0 del $ LogFile en volúmenes sucios por estas versiones anteriores de Windows da como resultado la invocación de la utilidad de reparación de disco CHKDSK cuando se inicia Windows 10 de forma dual con estos sistemas más antiguos. Existe una configuración del Registro de Windows para evitar la actualización automática de $ LogFile a la versión más reciente. [19] [se necesita una mejor fuente ]
El USN Journal (Update Sequence Number Journal) es una función de administración del sistema que registra (en $ Extend \ $ UsnJrnl) los cambios en los archivos, transmisiones y directorios del volumen, así como sus diversos atributos y configuraciones de seguridad. El diario está disponible para que las aplicaciones realicen un seguimiento de los cambios en el volumen. [20] Este diario se puede habilitar o deshabilitar en volúmenes que no son del sistema. [21]
Enlaces duros
La función de vínculo físico permite que diferentes nombres de archivo se refieran directamente al mismo contenido de archivo. Los vínculos físicos pueden vincular solo a archivos en el mismo volumen, porque cada volumen tiene su propia MFT . Los vínculos físicos se incluyeron originalmente para admitir el subsistema POSIX en Windows NT. [22]
Aunque los enlaces físicos utilizan el mismo registro MFT ( inodo ) que registra los metadatos del archivo, como el tamaño del archivo, la fecha de modificación y los atributos, NTFS también almacena en caché estos datos en la entrada del directorio como una mejora del rendimiento. Esto significa que al enumerar el contenido de un directorio usando la familia de API FindFirstFile / FindNextFile, (equivalente a las API POSIX opendir / readdir) también recibirá esta información en caché, además del nombre y el inodo. Sin embargo, es posible que no vea información actualizada, ya que solo se garantiza que esta información se actualice cuando se cierra un archivo y, en ese caso, solo para el directorio desde el que se abrió el archivo. [23] Esto significa que cuando un archivo tiene varios nombres a través de enlaces físicos, la actualización de un archivo a través de un nombre no actualiza los datos almacenados en caché asociados con el otro nombre. Siempre puede obtener datos actualizados utilizando GetFileInformationByHandle (que es el verdadero equivalente de la función estadística POSIX). Esto se puede hacer usando un identificador que no tiene acceso al archivo en sí (pasando cero a CreateFile para dwDesiredAccess), y cerrar este identificador tiene el efecto incidental de actualizar la información almacenada en caché.
Windows utiliza vínculos físicos para admitir nombres de archivo cortos (8.3) en NTFS. Se necesita compatibilidad con el sistema operativo porque hay aplicaciones heredadas que solo pueden funcionar con nombres de archivo 8.3, pero la compatibilidad se puede deshabilitar. En este caso, se agrega un registro de nombre de archivo y una entrada de directorio adicionales, pero tanto el 8.3 como el nombre de archivo largo se vinculan y actualizan juntos, a diferencia de un vínculo físico normal.
El sistema de archivos NTFS tiene un límite de 1024 enlaces físicos en un archivo. [24]
Flujo de datos alternativo (ADS)
Los flujos de datos alternativos permiten asociar más de un flujo de datos con un nombre de archivo (una bifurcación ), utilizando el formato "nombre de archivo: nombre de flujo" (por ejemplo, "text.txt: extrastream").
Las secuencias NTFS se introdujeron en Windows NT 3.1 para permitir que Services for Macintosh (SFM) almacene bifurcaciones de recursos . Aunque las versiones actuales de Windows Server ya no incluyen el MFS, tercero de Apple Presentación de Protocolo de productos (por ejemplo, (AFP) GroupLogic 's ExtremeZ-IP ) todavía utilizar esta característica del sistema de archivos. Internet Explorer y recientemente otros navegadores añaden ADS muy pequeños (llamados "Zone.Identifier") para marcar los archivos descargados de sitios externos como posiblemente inseguros de ejecutar; el shell local entonces requeriría la confirmación del usuario antes de abrirlos. [25] Cuando el usuario indica que ya no quiere este diálogo de confirmación, este ADS se elimina.
Las secuencias alternativas no se enumeran en el Explorador de Windows y su tamaño no se incluye en el tamaño del archivo. Cuando el archivo se copia o se mueve a otro sistema de archivos sin el soporte de ADS, se advierte al usuario que no se pueden conservar los flujos de datos alternativos. Por lo general, no se proporciona dicha advertencia si el archivo se adjunta a un correo electrónico o se carga en un sitio web. Por lo tanto, el uso de flujos alternativos para datos críticos puede causar problemas. Microsoft proporciona una herramienta llamada Streams [26] para ver los streams en un volumen seleccionado. A partir de Windows PowerShell 3.0, es posible administrar ADS de forma nativa con seis cmdlets: Add-Content, Clear-Content, Get-Content, Get-Item, Remove-Item, Set-Content. [27]
El malware ha utilizado flujos de datos alternativos para ocultar el código. [28] Como resultado, los escáneres de malware y otras herramientas especiales ahora buscan flujos de datos alternativos.
Compresión de archivo
NTFS puede comprimir archivos utilizando el algoritmo LZNT1 (una variante de LZ77 ) [29] Los archivos se comprimen en 16 fragmentos de clúster. Con clústeres de 4 KB , los archivos se comprimen en trozos de 64 KB. Los algoritmos de compresión en NTFS están diseñados para admitir tamaños de clúster de hasta 4 KB. Cuando el tamaño del clúster es superior a 4 KB en un volumen NTFS, la compresión NTFS no está disponible. [30]
Sin embargo, los archivos comprimibles grandes se fragmentan mucho, ya que cada fragmento de menos de 64 KB se convierte en un fragmento. [31] [32]
Los sistemas de un solo usuario con espacio limitado en el disco duro pueden beneficiarse de la compresión NTFS para archivos pequeños, de 4 KB a 64 KB o más, según la compresibilidad. Los archivos de menos de aproximadamente 900 bytes se almacenan dentro de la entrada de directorio de la MFT . [33]
La memoria flash, como las unidades SSD , no tiene los retrasos en el movimiento del cabezal y el alto tiempo de acceso de las unidades de disco duro mecánicas , por lo que la fragmentación tiene una penalización menor. Los usuarios de procesadores multinúcleo rápidos encontrarán mejoras en la velocidad de las aplicaciones al comprimir sus aplicaciones y datos, así como una reducción del espacio utilizado. Tenga en cuenta que los SSD con controladores Sandforce ya comprimen datos. Sin embargo, dado que se transfieren menos datos, hay una reducción en las E / S. [34]
La compresión funciona mejor con archivos que tienen contenido repetitivo, rara vez se escriben, generalmente se accede a ellos de forma secuencial y no están comprimidos. Los archivos se pueden comprimir o descomprimir individualmente (cambiando los atributos avanzados) para una unidad, directorio o árbol de directorios, convirtiéndose en un valor predeterminado para los archivos que contiene.
Si los archivos del sistema que se necesitan en el momento del arranque (como controladores, NTLDR, winload.exe o BOOTMGR) están comprimidos, es posible que el sistema no arranque correctamente porque los filtros de descompresión aún no están cargados. [35] Ediciones posteriores de Windows [ ¿cuál? ] no permiten la compresión de archivos importantes del sistema.
Según una investigación del equipo de desarrollo NTFS de Microsoft, 50-60 GB es un tamaño máximo razonable para un archivo comprimido en un volumen NTFS con un tamaño de clúster (bloque) de 4 KB (predeterminado). Este tamaño máximo razonable disminuye drásticamente para volúmenes con tamaños de clúster más pequeños. [31] Si la compresión reduce 64 KB de datos a 60 KB o menos, NTFS trata las páginas de 4 KB innecesarias como grupos de archivos dispersos vacíos ; no se escriben. Esto permite tiempos razonables de acceso aleatorio, ya que el sistema operativo simplemente tiene que seguir la cadena de fragmentos.
Aunque el acceso de lectura y escritura a los archivos comprimidos es transparente , [36] Microsoft recomienda evitar la compresión en servidores o recursos compartidos de red que contienen perfiles móviles, ya que supone una carga considerable para el procesador. [37]
Algoritmos CompactOS
Desde Windows 10 , Microsoft ha introducido algoritmos adicionales, a saber, XPRESS4K / 8K / 16K y LZX . Ambos algoritmos se basan en LZ77 con codificación de entropía de Huffman , de la que carecía LZNT1. Estos algoritmos se tomaron del formato de imágenes de Windows . Se utilizan principalmente para la nueva función CompactOS, que comprime toda la partición del sistema utilizando uno de estos algoritmos. [38] También se pueden activar manualmente por archivo con la /exe
bandera del compact
comando. Cuando se utiliza en archivos, el algoritmo CompactOS evita la fragmentación al escribir datos comprimidos en fragmentos asignados de forma contigua. [ cita requerida ]
Archivos dispersos
Los archivos dispersos son archivos intercalados con segmentos vacíos para los que no se utiliza espacio de almacenamiento real. Para las aplicaciones, el archivo parece un archivo normal con regiones vacías que se ven como regiones llenas de ceros. [39] Un archivo disperso no incluye necesariamente áreas con ceros dispersos; el atributo "archivo disperso" solo significa que el archivo puede tenerlos.
Las aplicaciones de bases de datos, por ejemplo, pueden utilizar archivos dispersos. [40] Al igual que con los archivos comprimidos, los tamaños reales de los archivos dispersos no se tienen en cuenta al determinar los límites de las cuotas. [41]
Volumen sombra copia
El Servicio de instantáneas de volumen (VSS) mantiene versiones históricas de archivos y carpetas en volúmenes NTFS copiando datos antiguos y recientemente sobrescritos en instantáneas mediante la técnica de copia en escritura . Posteriormente, el usuario puede solicitar la recuperación de una versión anterior. Esto también permite a los programas de respaldo de datos archivar archivos que el sistema de archivos usa actualmente. En sistemas muy cargados, Microsoft recomienda configurar un volumen de instantáneas en un disco separado. [42]
Windows Vista también introdujo instantáneas persistentes para su uso con las funciones Restaurar sistema y Versiones anteriores . Sin embargo, las instantáneas persistentes se eliminan cuando un sistema operativo antiguo monta ese volumen NTFS. Esto sucede porque el sistema operativo anterior no comprende el formato más nuevo de instantáneas persistentes. [43]
Actas
A partir de Windows Vista, las aplicaciones pueden utilizar NTFS transaccional (TxF) para agrupar varios cambios en archivos en una sola transacción. La transacción garantizará que se produzcan todos los cambios, o ninguno de ellos, y que ninguna aplicación fuera de la transacción verá los cambios hasta que se confirmen. [44]
Utiliza técnicas similares a las que se utilizan para las instantáneas de volumen (es decir, copia en escritura) para garantizar que los datos sobrescritos se puedan revertir de forma segura, y un registro CLFS para marcar las transacciones que aún no se han comprometido o las que se han comprometido pero aún no completamente aplicado (en caso de falla del sistema durante una confirmación por parte de uno de los participantes).
NTFS transaccional no restringe las transacciones solo al volumen NTFS local, sino que también incluye otros datos transaccionales u operaciones en otras ubicaciones, como datos almacenados en volúmenes separados, el registro local o bases de datos SQL, o los estados actuales de los servicios del sistema o servicios remotos. . Estas transacciones se coordinan en toda la red con todos los participantes que utilizan un servicio específico, el DTC , para garantizar que todos los participantes reciban el mismo estado de compromiso y para transportar los cambios que hayan sido validados por cualquier participante (para que los demás puedan invalidar su almacena en caché los datos antiguos o deshaga sus cambios no confirmados en curso). NTFS transaccional permite, por ejemplo, la creación de sistemas de archivos distribuidos consistentes en toda la red, incluso con sus cachés locales en vivo o fuera de línea.
Microsoft ahora desaconseja el uso de TxF: "Microsoft recomienda encarecidamente a los desarrolladores que utilicen medios alternativos", ya que "TxF puede no estar disponible en futuras versiones de Microsoft Windows". [45]
Seguridad
En NTFS, a cada archivo o carpeta se le asigna un descriptor de seguridad que define a su propietario y contiene dos listas de control de acceso (ACL). La primera ACL, llamada lista de control de acceso discrecional (DACL), define exactamente qué tipo de interacciones (por ejemplo, lectura, escritura, ejecución o eliminación) están permitidas o prohibidas por qué usuario o grupos de usuarios. Por ejemplo, los archivos de la C:\Program Files
carpeta pueden ser leídos y ejecutados por todos los usuarios, pero solo pueden ser modificados por un usuario que tenga privilegios administrativos. [46] Windows Vista agrega información de control de acceso obligatorio a las DACL. Las DACL son el enfoque principal del Control de cuentas de usuario en Windows Vista y versiones posteriores.
La segunda ACL, denominada lista de control de acceso al sistema (SACL), define qué interacciones con el archivo o carpeta se auditarán y si deben registrarse cuando la actividad sea exitosa, fallida o ambos. Por ejemplo, la auditoría se puede habilitar en archivos confidenciales de una empresa, para que sus gerentes sepan cuando alguien intenta eliminarlos o hacer una copia de ellos, y si lo logra. [46]
Cifrado
El sistema de cifrado de archivos (EFS) proporciona un cifrado sólido [47] y transparente para el usuario de cualquier archivo o carpeta en un volumen NTFS. EFS funciona junto con el servicio EFS, CryptoAPI de Microsoft y la biblioteca de tiempo de ejecución del sistema de archivos EFS (FSRTL). EFS funciona cifrando un archivo con una clave simétrica masiva (también conocida como clave de cifrado de archivo, o FEK), que se utiliza porque se necesita una cantidad de tiempo relativamente pequeña para cifrar y descifrar grandes cantidades de datos que si se tratara de un cifrado de clave asimétrica se utiliza. La clave simétrica que se utiliza para cifrar el archivo se cifra luego con una clave pública que está asociada con el usuario que cifró el archivo, y estos datos cifrados se almacenan en un flujo de datos alternativo del archivo cifrado. Para descifrar el archivo, el sistema de archivos utiliza la clave privada del usuario para descifrar la clave simétrica que está almacenada en el flujo de datos. Luego usa la clave simétrica para descifrar el archivo. Debido a que esto se hace a nivel del sistema de archivos, es transparente para el usuario. [48] Además, en caso de que un usuario pierda el acceso a su clave, se ha incorporado soporte para claves de descifrado adicionales en el sistema EFS, de modo que un agente de recuperación aún pueda acceder a los archivos si es necesario. El cifrado proporcionado por NTFS y la compresión proporcionada por NTFS son mutuamente excluyentes; sin embargo, NTFS se puede utilizar para uno y una herramienta de terceros para el otro.
El soporte de EFS no está disponible en las versiones Basic, Home y MediaCenter de Windows, y debe activarse después de la instalación de las versiones Professional, Ultimate y Server de Windows o mediante el uso de herramientas de implementación empresarial dentro de los dominios de Windows.
Cuotas
Las cuotas de disco se introdujeron en NTFS v3. Permiten al administrador de una computadora que ejecuta una versión de Windows que admite NTFS establecer un umbral de espacio en disco que los usuarios pueden usar. También permite a los administradores realizar un seguimiento de la cantidad de espacio en disco que utiliza cada usuario. Un administrador puede especificar un cierto nivel de espacio en disco que un usuario puede usar antes de recibir una advertencia y luego denegar el acceso al usuario una vez que alcance su límite superior de espacio. Las cuotas de disco no tienen en cuenta la compresión de archivos transparente de NTFS , en caso de que esté habilitada. Las aplicaciones que consultan la cantidad de espacio libre también verán la cantidad de espacio libre que queda para el usuario que tiene una cuota aplicada.
Puntos de reanálisis
Introducidos en NTFS v3, los puntos de análisis NTFS se utilizan asociando una etiqueta de análisis en el atributo de espacio de usuario de un archivo o directorio. Microsoft incluye varias etiquetas predeterminadas que incluyen enlaces simbólicos , puntos de unión de directorio y puntos de montaje de volumen . Cuando el Administrador de objetos analiza una búsqueda de nombre de sistema de archivos y encuentra un atributo de análisis, analizará la búsqueda de nombre y pasará los datos de análisis controlados por el usuario a cada controlador de filtro del sistema de archivos que se cargue en Windows. Cada controlador de filtro examina los datos de análisis para ver si están asociados con ese punto de análisis, y si ese controlador de filtro determina una coincidencia, intercepta la solicitud del sistema de archivos y realiza su funcionalidad especial.
Cambiar el tamaño
A partir de Windows Vista, Microsoft agregó la capacidad incorporada para reducir o expandir una partición. Sin embargo, esta capacidad no reubica fragmentos de archivos de página o archivos que se han marcado como inamovibles, por lo que reducir un volumen a menudo requerirá reubicar o deshabilitar cualquier archivo de página , el índice de búsqueda de Windows y cualquier instantánea utilizada por Restaurar sistema . Varias herramientas de terceros pueden cambiar el tamaño de las particiones NTFS.
Internos
Internamente, NTFS usa árboles B para indexar los datos del sistema de archivos. Se utiliza un diario del sistema de archivos para garantizar la integridad de los metadatos del sistema de archivos, pero no el contenido de los archivos individuales. Se sabe que los sistemas que utilizan NTFS tienen una fiabilidad mejorada en comparación con los sistemas de archivos FAT. [49]
NTFS permite cualquier secuencia de valores de 16 bits para la codificación de nombres (nombres de archivos, nombres de secuencias, nombres de índices, etc.) excepto 0x0000. Esto significa que se admiten unidades de código UTF-16 , pero el sistema de archivos no verifica si una secuencia es UTF-16 válida (permite cualquier secuencia de valores cortos , no restringidos a los del estándar Unicode). En el espacio de nombres Win32, cualquier unidad de código UTF-16 no distingue entre mayúsculas y minúsculas, mientras que en el espacio de nombres POSIX sí distingue entre mayúsculas y minúsculas. Los nombres de archivo están limitados a 255 unidades de código UTF-16 . Ciertos nombres están reservados en el directorio raíz del volumen y no se pueden usar para archivos. Estos son $MFT
, $MFTMirr
, $LogFile
, $Volume
, $AttrDef
, .
(punto), $Bitmap
, $Boot
, $BadClus
, $Secure
, $UpCase
, y $Extend
. [4] .
(punto) y $Extend
son ambos directorios; los otros son archivos. El kernel de NT limita las rutas completas a 32.767 unidades de código UTF-16. Existen algunas restricciones adicionales sobre los puntos de código y los nombres de archivo. [50]
Sector de arranque de partición (VBR)
Desplazamiento de bytes | Longitud del campo | Valor típico | Nombre del campo | Propósito | |
---|---|---|---|---|---|
0x00 | 3 bytes | 0xEB5290 | Instrucción JMP | Hace que la ejecución continúe después de las estructuras de datos en este sector de arranque. | |
0x03 | 8 bytes | " NTFS " Word "NTFS" seguido de cuatro espacios finales (0x20) | ID de OEM | Este es el número mágico que indica que se trata de un sistema de archivos NTFS. | |
0x0B | 2 bytes | 0x0200 | BPB | Bytes por sector | El número de bytes en un sector de disco. |
0x0D | 1 byte | 0x08 | Sectores por clúster | El número de sectores en un clúster. Si el valor es mayor que 0x80, la cantidad de sectores es 2 elevado a la potencia del valor absoluto de considerar este campo negativo. | |
0x0E | 2 bytes | 0x0000 | Sectores reservados, no utilizados | Cuánto espacio está reservado por el sistema operativo al inicio del disco. Siempre es 9. | |
0x10 | 3 bytes | 0x000000 | No usado | Este campo es siempre 0 | |
0x13 | 2 bytes | 0x0000 | No utilizado por NTFS | Este campo es siempre 0 | |
0x15 | 1 byte | 0xF8 | Descriptor de medios | El tipo de impulso. 0xF8 se utiliza para indicar un disco duro (en contraste con los varios tamaños de disquete). | |
0x16 | 2 bytes | 0x0000 | No usado | Este campo es siempre 0 | |
0x18 | 2 bytes | 0x003F | Sectores por pista | El número de sectores de disco en una pista de unidad. | |
0x1A | 2 bytes | 0x00FF | Número de cabezas | El número de cabezas en la unidad. | |
0x1C | 4 bytes | 0x0000003F | Sectores ocultos | El número de sectores que preceden a la partición. | |
0x20 | 4 bytes | 0x00000000 | No usado | No utilizado por NTFS | |
0x24 | 4 bytes | 0x00800080 | EBPB | No usado | No utilizado por NTFS |
0x28 | 8 bytes | 0x00000000007FF54A | Sectores totales | El tamaño de la partición en sectores. | |
0x30 | 8 bytes | 0x0000000000000004 | $ Número de grupo de MFT | El clúster que contiene la tabla maestra de archivos | |
0x38 | 8 bytes | 0x000000000007FF54 | $ MFTMirr número de grupo | El clúster que contiene una copia de seguridad de la tabla maestra de archivos | |
0x40 | 1 byte | 0xF6 | Bytes o clústeres por segmento de registro de archivo | Un valor positivo denota el número de clústeres en un segmento de registro de archivo. Un valor negativo denota la cantidad de bytes en un segmento de registro de archivo, en cuyo caso el tamaño es 2 elevado a la potencia del valor absoluto. (0xF6 = -10 → 2 10 = 1024). | |
0x41 | 3 bytes | 0x000000 | No usado | Este campo no es utilizado por NTFS | |
0x44 | 1 byte | 0x01 | Bytes o clústeres por búfer de índice | Un valor positivo denota el número de clústeres en un búfer de índice. Un valor negativo denota la cantidad de bytes y utiliza el mismo algoritmo para números negativos que "Bytes o clústeres por segmento de registro de archivo". | |
0x45 | 3 bytes | 0x000000 | No usado | Este campo no es utilizado por NTFS | |
0x48 | 8 bytes | 0x1C741BC9741BA514 | Número de serie del volumen | Un número aleatorio único asignado a esta partición, para mantener las cosas organizadas. | |
0x50 | 4 bytes | 0x00000000 | Suma de comprobación, sin usar | Supuestamente una suma de comprobación. | |
0x54 | 426 octetos | Código Bootstrap | El código que carga el resto del sistema operativo. Esto es señalado por los primeros 3 bytes de este sector. | ||
0x01FE | 2 bytes | 0xAA55 | Marcador de fin de sector | Esta bandera indica que este es un sector de arranque válido. |
Este formato de partición de arranque se basa aproximadamente en el sistema de archivos FAT anterior , pero los campos están en diferentes ubicaciones. Algunos de estos campos, especialmente los campos "sectores por pista", "número de cabezales" y "sectores ocultos" pueden contener valores ficticios en unidades donde no tienen sentido o no se pueden determinar.
El sistema operativo primero mira los 8 bytes en 0x30 para encontrar el número de clúster de $ MFT, luego multiplica ese número por el número de sectores por clúster (1 byte encontrado en 0x0D). Este valor es la compensación del sector ( LBA ) al $ MFT, que se describe a continuación.
Tabla maestra de archivos
En NTFS, todos los datos de archivos, directorios y metarchivos (nombre de archivo, fecha de creación, permisos de acceso (mediante el uso de listas de control de acceso ) y tamaño) se almacenan como metadatos en la tabla maestra de archivos ( MFT ). Este enfoque abstracto permitió una fácil adición de características del sistema de archivos durante el desarrollo de Windows NT; un ejemplo es la adición de campos para la indexación utilizados por el software de Active Directory . Esto también permite al software de búsqueda rápida de archivos localizar archivos y carpetas locales con nombre incluidos en la MFT muy rápidamente, sin necesidad de ningún otro índice.
La estructura MFT admite algoritmos que minimizan la fragmentación del disco . [53] Una entrada de directorio consta de un nombre de archivo y un "ID de archivo" (análogo al número de inodo ), que es el número de registro que representa el archivo en la tabla maestra de archivos. El ID de archivo también contiene un recuento de reutilización para detectar referencias obsoletas. Si bien esto se parece mucho al W_FID de Files-11 , otras estructuras NTFS difieren radicalmente.
Se almacenan dos copias de la MFT en caso de corrupción. Si el primer registro está dañado, NTFS lee el segundo registro para encontrar el archivo espejo MFT. Las ubicaciones de ambos archivos se almacenan en el sector de arranque. [54]
Metarchivos
NTFS contiene varios archivos que definen y organizan el sistema de archivos. En todos los aspectos, la mayoría de estos archivos están estructurados como cualquier otro archivo de usuario (siendo $ Volume el más peculiar), pero no son de interés directo para los clientes del sistema de archivos. [55] Estos metarchivos definen archivos, hacen copias de seguridad de datos críticos del sistema de archivos, almacenan cambios en el sistema de archivos de búfer, administran la asignación de espacio libre, satisfacen las expectativas del BIOS , realizan un seguimiento de las unidades de asignación incorrecta y almacenan la seguridad y la información de uso del espacio en disco. Todo el contenido está en un flujo de datos sin nombre, a menos que se indique lo contrario.
Número de segmento | Nombre del archivo | Propósito |
---|---|---|
0 | $MFT | Describe todos los archivos del volumen, incluidos los nombres de archivo, las marcas de tiempo, los nombres de las transmisiones y las listas de números de clúster donde residen las transmisiones de datos, índices, identificadores de seguridad y atributos de archivo como "solo lectura", "comprimido", "cifrado", etc. |
1 | $MFTMirr | Duplicado de las primeras entradas vitales de $ MFT, normalmente 4 entradas (4 kilobytes ). |
2 | $LogFile | Contiene el registro de transacciones de los cambios de metadatos del sistema de archivos. |
3 | $Volume | Contiene información sobre el volumen, es decir, el identificador del objeto de volumen, la etiqueta del volumen , la versión del sistema de archivos y los indicadores de volumen (montado, chkdsk solicitado, solicitado $ LogFile redimensionado, montado en NT 4, actualización del número de serie del volumen, solicitud de actualización de la estructura). Estos datos no se almacenan en un flujo de datos, sino en atributos especiales de MFT: si está presente, un ID de objeto de volumen se almacena en un registro $ OBJECT_ID; la etiqueta de volumen se almacena en un registro de $ VOLUME_NAME, y los datos de volumen restantes están en un registro de $ VOLUME_INFORMATION. Nota: el número de serie del volumen se almacena en el archivo $ Boot (a continuación). |
4 | $AttrDef | Una tabla de atributos de MFT que asocia identificadores numéricos con nombres. |
5 | . | Directorio raíz . Los datos del directorio se almacenan en los atributos $ INDEX_ROOT y $ INDEX_ALLOCATION, ambos denominados $ I30. |
6 | $Bitmap | Una matriz de entradas de bits: cada bit indica si su grupo correspondiente se utiliza (asignado) o está libre (disponible para asignación). |
7 | $Boot | Registro de arranque por volumen (VBR). Este archivo siempre se encuentra en los primeros clústeres del volumen. Contiene código de arranque (consulte NTLDR / BOOTMGR ) y un bloque de parámetros de BIOS que incluye un número de serie de volumen y números de clúster de $ MFT y $ MFTMirr. |
8 | $BadClus | Un archivo que contiene todos los clústeres marcados con sectores defectuosos . Este archivo simplifica la administración de clústeres mediante la utilidad chkdsk, tanto como un lugar para colocar sectores defectuosos recién descubiertos como para identificar clústeres sin referencia. Este archivo contiene dos flujos de datos, incluso en volúmenes sin sectores defectuosos: un flujo sin nombre contiene sectores defectuosos; es de longitud cero para volúmenes perfectos; el segundo flujo se llama $ Bad y contiene todos los clústeres del volumen que no están en el primer flujo. |
9 | $Secure | Base de datos de listas de control de acceso que reduce la sobrecarga al tener muchas ACL idénticas almacenadas con cada archivo, al almacenar de forma única estas ACL solo en esta base de datos (contiene dos índices: $ SII (ID de información estándar) y $ SDH ( hash de descriptor de seguridad ) , que indexan la secuencia denominada $ SDS que contiene la tabla de ACL real). [13] |
10 | $UpCase | Una tabla de caracteres en mayúsculas Unicode para garantizar que no se distinga entre mayúsculas y minúsculas en los espacios de nombres de Win32 y DOS. |
11 | $Extend | Un directorio del sistema de archivos que contiene varias extensiones opcionales, como $ Quota, $ ObjId, $ Reparse o $ UsnJrnl. |
12-23 | Reservado para entradas de extensión $ MFT. Las entradas de extensión son registros MFT adicionales que contienen atributos adicionales que no caben en el registro principal. Esto podría ocurrir si el archivo está lo suficientemente fragmentado, tiene muchos flujos, nombres de archivo largos, seguridad compleja u otras situaciones raras. | |
24 | $Extend\$Quota | Contiene información sobre la cuota de disco. Contiene dos raíces de índice, denominadas $ O y $ Q. |
25 | $Extend\$ObjId | Contiene información de seguimiento de enlaces . Contiene una raíz de índice y una asignación denominada $ O. |
26 | $Extend\$Reparse | Contiene datos de puntos de análisis (como enlaces simbólicos ). Contiene una raíz de índice y una asignación denominada $ R. |
27– | Comienzo de las entradas de archivos regulares. |
Estos metarchivos son tratados especialmente por Windows, manejados directamente por el NTFS.SYS
controlador y son difíciles de ver directamente: se necesitan herramientas especiales diseñadas específicamente. [56] A partir de Windows 7, el controlador NTFS prohíbe completamente el acceso de los usuarios, lo que genera un BSoD cada vez que se intenta ejecutar un archivo de metadatos. Una de estas herramientas es nfi.exe ("Utilidad de información del sector de archivos NTFS") que se distribuye libremente como parte de las "Herramientas de soporte OEM" de Microsoft. Por ejemplo, para obtener información sobre el segmento de la tabla de archivos principal "$ MFT", se usa el siguiente comando: nfi.exe c:\$MFT
[57] Otra forma de eludir la restricción es usar el administrador de archivos de 7-Zip e ir al NTFS de bajo nivel. ruta \\.\X:\
(donde se X:\
asemeja a cualquier unidad / partición). A continuación, aparecerán 3 nuevas carpetas: $EXTEND
, [DELETED]
(un pseudo-carpeta que 7-Zip utiliza para adherirse archivos borrados del sistema de archivos a la vista), y [SYSTEM]
(otra pseudo-carpeta que contiene todos los archivos de metadatos de NTFS). Este truco se puede utilizar desde dispositivos extraíbles ( unidades flash USB , discos duros externos , tarjetas SD , etc.) dentro de Windows, pero hacer esto en la partición activa requiere acceso sin conexión (es decir, WinRE ).
Listas de atributos, atributos y transmisiones
Para cada archivo (o directorio) descrito en el registro MFT, hay un repositorio lineal de descriptores de flujo (también llamados atributos ), empaquetados juntos en uno o más registros MFT (que contienen la llamada lista de atributos ), con relleno adicional para completar. el tamaño fijo de 1 KB de cada registro MFT, y que describe completamente los flujos efectivos asociados con ese archivo.
Cada atributo tiene un tipo de atributo (un mapeo entero de tamaño fijo a una definición de atributo en el archivo $ AttrDef), un nombre de atributo opcional (por ejemplo, usado como el nombre de un flujo de datos alternativo) y un valor, representado en una secuencia. de bytes. Para NTFS, los datos estándar de los archivos, los flujos de datos alternativos o los datos de índice de los directorios se almacenan como atributos.
Según $ AttrDef, algunos atributos pueden ser residentes o no residentes. El atributo $ DATA, que contiene datos de archivo, es un ejemplo. Cuando el atributo es residente (que está representado por una bandera), su valor se almacena directamente en el registro MFT. De lo contrario, los clústeres se asignan para los datos y la información de ubicación del clúster se almacena a medida que los datos se ejecutan en el atributo.
- Para cada archivo de la MFT, los atributos identificados por tipo de atributo, el nombre del atributo deben ser únicos. Además, NTFS tiene algunas restricciones de ordenación para estos atributos.
- Existe un tipo de atributo nulo predefinido, que se utiliza para indicar el final de la lista de atributos en un registro MFT. Debe estar presente como el último atributo en el registro (todo el resto del espacio de almacenamiento disponible después de él será ignorado y solo consiste en bytes de relleno para que coincida con el tamaño del registro en la MFT).
- Algunos tipos de atributos son obligatorios y deben estar presentes en cada registro MFT, excepto los registros no utilizados que solo se indican mediante tipos de atributos nulos.
- Este es el caso del atributo $ STANDARD_INFORMATION que se almacena como un registro de tamaño fijo y contiene las marcas de tiempo y otros atributos básicos de un solo bit (compatibles con los administrados por FAT en DOS o Windows 9x ).
- Algunos tipos de atributos no pueden tener un nombre y deben permanecer en el anonimato.
- Este es el caso de los atributos estándar, o para el tipo de atributo "nombre de archivo" de NTFS preferido, o el tipo de atributo "nombre de archivo corto", cuando también está presente (para compatibilidad con aplicaciones similares a DOS, consulte a continuación). También es posible que un archivo contenga solo un nombre de archivo corto, en cuyo caso será el preferido, como se muestra en el Explorador de Windows.
- Los atributos de nombre de archivo almacenados en la lista de atributos no hacen que el archivo sea inmediatamente accesible a través del sistema de archivos jerárquico. De hecho, todos los nombres de archivo deben indexarse por separado en al menos otro directorio en el mismo volumen. Allí debe tener su propio registro MFT y sus propios descriptores y atributos de seguridad que hagan referencia al número de registro MFT para este archivo. Esto permite que el mismo archivo o directorio sea "vinculado" varias veces desde varios contenedores en el mismo volumen, posiblemente con nombres de archivo distintos.
- El flujo de datos predeterminado de un archivo normal es un flujo de tipo $ DATA pero con un nombre anónimo, y los ADS son similares pero deben tener un nombre.
- Por otro lado, el flujo de datos predeterminado de directorios tiene un tipo distinto, pero no son anónimos: tienen un nombre de atributo ("$ I30" en NTFS 3+) que refleja su formato de indexación.
Todos los atributos de un archivo determinado pueden mostrarse utilizando nfi.exe ("Utilidad de información del sector de archivos NTFS") que se distribuye libremente como parte de las "Herramientas de soporte OEM" de Microsoft. [57]
Las llamadas al sistema de Windows pueden manejar flujos de datos alternativos. [4] Dependiendo del sistema operativo, la utilidad y el sistema de archivos remoto, una transferencia de archivos puede eliminar silenciosamente los flujos de datos. [4] Una forma segura de copiar o mover archivos es usar las llamadas al sistema BackupRead y BackupWrite, que permiten a los programas enumerar transmisiones, verificar si cada transmisión debe escribirse en el volumen de destino y omitir conscientemente las transmisiones no deseadas. [4]
Atributos de residente frente a no residente
Para optimizar el almacenamiento y reducir la sobrecarga de E / S para el caso muy común de atributos con un valor asociado muy pequeño, NTFS prefiere colocar el valor dentro del atributo en sí (si el tamaño del atributo no excede el tamaño máximo de un atributo). Registro MFT), en lugar de utilizar el espacio de registro MFT para enumerar los grupos que contienen los datos; en ese caso, el atributo no almacenará los datos directamente, sino que simplemente almacenará un mapa de asignación (en forma de ejecuciones de datos ) que apunta a los datos reales almacenados en otra parte del volumen. [58] Cuando se puede acceder al valor directamente desde el atributo, se le llama "datos residentes" (por los trabajadores de informática forense ). La cantidad de datos que se ajusta depende en gran medida de las características del archivo, pero de 700 a 800 bytes es común en archivos de flujo único con nombres de archivo no extensos y sin ACL.
- Algunos atributos (como el nombre de archivo preferido, los atributos de archivo básicos) no se pueden convertir en no residentes. Para los atributos de no residentes, su mapa de asignación debe ajustarse a los registros de MFT.
- Los flujos de datos cifrados por NTFS, dispersos o comprimidos no se pueden convertir en residentes.
- El formato del mapa de asignación para atributos no residentes depende de su capacidad para soportar el almacenamiento de datos dispersos. En la implementación actual de NTFS, una vez que un flujo de datos no residente se ha marcado y convertido como disperso, no se puede volver a cambiar a datos no dispersos, por lo que no puede volverse residente nuevamente, a menos que estos datos estén completamente truncados, descartando los dispersos mapa de asignación completo.
- Cuando un atributo no residente está tan fragmentado, que su mapa de asignación efectivo no puede caber completamente dentro de un registro MFT, NTFS almacena el atributo en varios registros. El primero de ellos se denomina registro base, mientras que los demás se denominan registros de extensión. NTFS crea un atributo especial $ ATTRIBUTE_LIST para almacenar información mapeando diferentes partes del atributo largo a los registros MFT, lo que significa que el mapa de asignación puede dividirse en múltiples registros. El $ ATTRIBUTE_LIST en sí mismo también puede ser no residente, pero su propio mapa de asignación debe caber dentro de un registro MFT.
- Cuando hay demasiados atributos para un archivo (incluidos ADS, atributos extendidos o descriptores de seguridad ), de modo que no pueden caber todos dentro del registro MFT, los registros de extensión también se pueden usar para almacenar los otros atributos, usando el mismo formato que el uno utilizado en el registro MFT base, pero sin las limitaciones de espacio de un registro MFT.
El mapa de asignación se almacena en forma de ejecuciones de datos con codificación comprimida. Cada ejecución de datos representa un grupo contiguo de clústeres que almacenan el valor del atributo. Para archivos en un volumen de varios GB, cada entrada se puede codificar como de 5 a 7 bytes, lo que significa que un registro MFT de 1 KB puede almacenar alrededor de 100 de estos datos. Sin embargo, como $ ATTRIBUTE_LIST también tiene un límite de tamaño, es peligroso tener más de 1 millón de fragmentos de un solo archivo en un volumen NTFS, lo que también implica que, en general, no es una buena idea usar la compresión NTFS en un archivo. más grande que 10 GB. [59]
El controlador del sistema de archivos NTFS a veces intentará reubicar los datos de algunos de los atributos que pueden convertirse en no residentes en los clústeres, y también intentará reubicar los datos almacenados en clústeres de nuevo al atributo dentro del registro MFT, según reglas de orden de prioridad y preferencia, y restricciones de tamaño.
Dado que los archivos residentes no ocupan directamente clústeres ("unidades de asignación"), es posible que un volumen NTFS contenga más archivos en un volumen que clústeres. Por ejemplo, una partición NTFS de 74,5 GB formatea con 19,543,064 clústeres de 4 KB. Restar archivos del sistema (un archivo de registro de 64 MB, un archivo de mapa de bits de 2,442,888 bytes y aproximadamente 25 grupos de sobrecarga fija) deja 19,526,158 grupos libres para archivos e índices. Dado que hay cuatro registros MFT por grupo, este volumen teóricamente podría contener casi 4 × 19,526,158 = 78,104,632 archivos residentes.
Cerraduras oportunistas
Los bloqueos de archivos oportunistas (oplocks) permiten a los clientes modificar su estrategia de almacenamiento en búfer para un archivo o flujo determinado con el fin de aumentar el rendimiento y reducir el uso de la red. [60] Los oplocks se aplican a la secuencia abierta dada de un archivo y no afectan a los oplocks en una secuencia diferente.
Los oplocks se pueden utilizar para acceder de forma transparente a los archivos en segundo plano. Un cliente de red puede evitar escribir información en un archivo en un servidor remoto si ningún otro proceso está accediendo a los datos, o puede almacenar datos de lectura anticipada si ningún otro proceso está escribiendo datos.
Windows admite cuatro tipos diferentes de bloqueos operativos:
- Oplock de nivel 2 (o compartido): varios lectores, sin escritores (es decir, almacenamiento en caché de lectura).
- Oplock de nivel 1 (o exclusivo): acceso exclusivo con almacenamiento en búfer arbitrario (es decir, almacenamiento en caché de lectura y escritura).
- Batch oplock (también exclusivo): se abre un flujo en el servidor, pero se cierra en la máquina cliente (es decir, leer, escribir y manejar el almacenamiento en caché).
- Filter oplock (también exclusivo): las aplicaciones y los filtros del sistema de archivos pueden "retroceder" cuando otros intentan acceder a la misma secuencia (es decir, almacenamiento en caché de lectura y escritura) (desde Windows 2000)
Los bloqueos oportunistas se han mejorado en Windows 7 y Windows Server 2008 R2 con claves de bloqueo por cliente. [61]
Hora
Windows NT y sus descendientes mantienen marcas de tiempo internas como UTC y realizan las conversiones apropiadas para fines de visualización; todas las marcas de tiempo NTFS están en UTC. [ cita requerida ]
Por razones históricas, las versiones de Windows que no son compatibles con NTFS mantienen la hora internamente como la hora de la zona local y, por lo tanto, también lo hacen todos los sistemas de archivos (excepto NTFS) que son compatibles con las versiones actuales de Windows. Esto significa que cuando los archivos se copian o mueven entre particiones NTFS y no NTFS, el sistema operativo necesita convertir las marcas de tiempo sobre la marcha. Pero si algunos archivos se mueven cuando está en vigor el horario de verano (DST) y otros archivos se mueven cuando está en vigor el horario estándar , puede haber algunas ambigüedades en las conversiones. Como resultado, especialmente poco después de uno de los días en los que cambia la hora de la zona local, los usuarios pueden observar que algunos archivos tienen marcas de tiempo incorrectas en una hora. Debido a las diferencias en la implementación de DST en diferentes jurisdicciones, esto puede resultar en un posible error de marca de tiempo de hasta 4 horas en cualquier 12 meses. [62]
Interoperabilidad
Mientras que las versiones de los diferentes NTFS son en su mayor parte completamente hacia adelante - y compatible con versiones anteriores , hay consideraciones técnicas para el montaje de volúmenes NTFS nuevos en versiones anteriores de Microsoft Windows. Esto afecta a los discos duros portátiles externos y de arranque dual. Por ejemplo, si intenta utilizar una partición NTFS con "Versiones anteriores" (también conocido como Volume Shadow Copy ) en un sistema operativo que no lo admite, se perderá el contenido de esas versiones anteriores. [63] Una utilidad de línea de comandos de Windows llamada convert.exe puede convertir sistemas de archivos compatibles a NTFS, incluido HPFS (solo en Windows NT 3.1, 3.5 y 3.51), FAT16 y FAT32 (en Windows 2000 y posteriores). [64] [65]
A partir de la versión 1709 de Windows 10, conocida como Fall Creators Update, Microsoft requiere que la estructura de archivos de OneDrive resida en un disco NTFS. [66] Esto se debe a que la función Archivos a pedido de OneDrive utiliza puntos de análisis NTFS para vincular archivos y carpetas que están almacenados en OneDrive con el sistema de archivos local, lo que hace que el archivo o carpeta sea inutilizable con cualquier versión anterior de Windows, con cualquier otro archivo NTFS. controlador del sistema, o cualquier sistema de archivos y utilidades de respaldo que no estén actualizadas para admitirlo. [67]
Implementaciones
FreeBSD 3.2 lanzado en mayo de 1999 incluía soporte NTFS de solo lectura escrito por Semen Ustimenko. [68] [69] Esta implementación fue adaptada a NetBSD por Christos Zoulas y Jaromir Dolecek y lanzada con NetBSD 1.5 en diciembre de 2000. [70] La implementación de FreeBSD de NTFS también fue adaptada a OpenBSD por Julien Bordet y ofrece NTFS nativo de solo lectura. soporte de forma predeterminada en las plataformas i386 y amd64 a partir de la versión 4.9 publicada el 1 de mayo de 2011. [71] [69]
Las versiones 2.2.0 y posteriores del kernel de Linux incluyen la capacidad de leer particiones NTFS; Las versiones 2.6.0 y posteriores del kernel contienen un controlador escrito por Anton Altaparmakov ( Universidad de Cambridge ) y Richard Russon que admite lectura, sobrescritura y cambio de tamaño de archivos. Debido a la complejidad de las estructuras internas de NTFS, el controlador del kernel 2.6.14 incorporado no permite cambios en el volumen que se consideran inseguros, para evitar daños. [ cita requerida ]
Mac OS X 10.3 incluía la implementación de sólo lectura de Ustimenko de NTFS de FreeBSD. Luego, Apple contrató a Anton Altaparmakov para escribir una nueva implementación de NTFS para Mac OS X 10.6 . [72] Se ha descubierto soporte de escritura NTFS nativo en 10.6 y posteriores, pero no está activado de forma predeterminada, aunque existen soluciones para habilitar la funcionalidad. Sin embargo, los informes de los usuarios indican que la funcionalidad es inestable y tiende a causar pánico en el kernel , probablemente la razón por la que no se ha habilitado o anunciado el soporte de escritura. [73] [se necesita una mejor fuente ]
NTFS cautivo , un controlador 'envolvente' que utiliza el propio controlador de Windows ntfs.sys , existe para Linux. Fue construido como un programa de Sistema de archivos en el espacio de usuario (FUSE) y lanzado bajo la GPL, pero el trabajo en NTFS cautivo cesó en 2006. [74]
NTFS-3G es una implementación FUSE gratuita con licencia GPL de NTFS que fue desarrollada inicialmente como un controlador de kernel de Linux por Szabolcs Szakacsits. Fue reescrito como un programa FUSE para funcionar en otros sistemas compatibles con FUSE como macOS , FreeBSD, NetBSD, OpenBSD , [75] Solaris, QNX y Haiku [76] y permite leer y escribir en particiones NTFS. Los desarrolladores de NTFS-3G también ofrecen una versión comercial de rendimiento mejorado de NTFS-3G, llamada " Tuxera NTFS for Mac". [77]
Paragon Software Group vende un controlador de lectura y escritura llamado NTFS para Mac OS X , [78] que también se incluye en algunos modelos de discos duros Seagate . [79]
El paquete NetDrive para OS / 2 (y derivados como eComStation y ArcaOS ) admite un complemento que permite el acceso de lectura y escritura a los volúmenes NTFS. [80] [81]
Existe un controlador de lectura / escritura gratuito para uso personal para MS-DOS de Avira llamado "NTFS4DOS". [82] [83]
Ahead Software desarrolló un controlador "NTFSREAD" (versión 1.200) para DR-DOS 7.0x entre 2002 y 2004. Formaba parte de su software Nero Burning ROM .
Ver también
- Comparación de sistemas de archivos
- NTFSDOS
- ntfsresize
- WinFS (un sistema de archivos de Microsoft cancelado)
- ReFS , un sistema de archivos de Microsoft más nuevo
Referencias
- ^ a b c "Glosario" . [MS-EFSR]: Protocolo de cifrado del sistema de archivos remoto (EFSRPC) . Microsoft. 14 de noviembre de 2013.
- ^ "Cómo funciona NTFS" . TechNet . Microsoft . Consultado el 2 de diciembre de 2017 .
- ^ "B * Trees - NTFS Directory Trees - Conecpt - Documentación NTFS" . flatcap.org . Consultado el 13 de mayo de 2019 .
- ^ a b c d e f g "Cómo funciona NTFS" . Referencia técnica de Windows Server 2003 . 2003-03-28 . Consultado el 12 de septiembre de 2011 .
- ^ a b c d "Apéndice A: Comportamiento del producto" . [MS-FSA]: algoritmos del sistema de archivos . Microsoft. 2018-09-12 . Consultado el 1 de octubre de 2018 .
NTFS usa un tamaño de clúster predeterminado de 4 KB, un tamaño de clúster máximo de 64 KB en el sistema operativo Windows 10 v1703 y Windows Server 2016 y anteriores, y 2 MB en el sistema operativo Windows 10 v1709 y Windows Server 2019 y posterior, y un clúster mínimo tamaño de 512 bytes.
- ^ "Apéndice A: Comportamiento del producto" . [MS-FSA]: algoritmos del sistema de archivos . Microsoft. 14 de noviembre de 2013 . Consultado el 21 de septiembre de 2012 .
- ^ a b Russon, Richard; Fledel, Yuval. "Documentación NTFS" (PDF) . Consultado el 26 de junio de 2011 .
- ^ Rick Vanover. "Desduplicación de datos de Windows Server 8" . Consultado el 2 de diciembre de 2011 .
- ^ a b Custer, Helen (1994). Dentro del sistema de archivos de Windows NT . Microsoft Press . ISBN 978-1-55615-660-1.
- ^ Kozierok, Charles. "Descripción general e historia de NTFS" . La guía de PC . Consultado el 30 de mayo de 2019 .
- ^ Custer, Helen (1994). Dentro del sistema de archivos de Windows NT . Microsoft Press . pag. vii. ISBN 978-1-55615-660-1.
- ^ "Recuperación de Windows NT después de un error de arranque en una unidad NTFS" . Microsoft. 1 de noviembre de 2006.
- ^ a b Russinovich, Mark . "Dentro de Win2K NTFS, parte 1" . MSDN . Microsoft . Consultado el 18 de abril de 2008 .
- ^ "¿Qué hay de nuevo en Windows NT 4.0 Service Pack 4?" . Microsoft.com . 12 de enero de 1999. Archivado desde el original el 17 de enero de 1999 . Consultado el 17 de agosto de 2018 .
- ^ "Nuevas capacidades y características del sistema de archivos NTFS 3.1" . Microsoft. 1 de diciembre de 2007.
- ^ Loveall, John (2006). "Mejoras de almacenamiento en Windows Vista y Windows Server 2008" (PowerPoint) . Microsoft. págs. 14-20 . Consultado el 4 de septiembre de 2007 .
- ^ "Arranque desde GPT" . Rodsbooks.com . Consultado el 22 de septiembre de 2018 .
- ^ "NTFS vs FAT vs exFAT - NTFS.com" . www.ntfs.com . Consultado el 19 de enero de 2021 .
- ^ https://www.prime-expert.com/articles/b26/stop-disk-check-from-running-on-every-boot/
- ^ "Cambiar diarios (Windows)" . MSDN . Consultado el 16 de abril de 2010 .
- ^ "Creación, modificación y eliminación de un diario de cambios (Windows)" . MSDN . Consultado el 16 de abril de 2010 .
- ^ "Capítulo 29 - Compatibilidad POSIX" . Guía de recursos de MS Windows NT Workstation 4.0 . Microsoft . 1995 . Consultado el 21 de octubre de 2013 .
- ^ "Enlaces duros y uniones" . MSDN . Microsoft . 12 de octubre de 2013 . Consultado el 21 de octubre de 2013 .
- ^ "MSDN - Función CreateHardLink" . Consultado el 14 de enero de 2016 .
- ^ Russinovich, Mark E .; Salomón, David A .; Ionescu, Alex (2009). "Sistemas de archivos". Internos de Windows (5ª ed.). Microsoft Press. pag. 921. ISBN 978-0-7356-2530-3.
Un componente de Windows que utiliza múltiples flujos de datos es el Servicio de ejecución de archivos adjuntos, [...] dependiendo de la zona en la que se descargó [...] el archivo del Explorador de Windows que podría advertir al usuario
- ^ "Streams - Windows Sysinternals" . Technet.microsoft.com . Consultado el 22 de septiembre de 2018 .
- ^ "Proveedor de sistema de archivos" . Microsoft. 9 de agosto de 2012. Archivado desde el original el 23 de enero de 2015 . Consultado el 23 de enero de 2015 .
- ^ ¿ Malware que utiliza flujos de datos alternativos? Archivado 2008-07-23 en Wayback Machine , AusCERT Web Log, 21 de agosto de 2007
- ^ "Compresión y descompresión de archivos" . SDK de la plataforma MSDN: sistemas de archivos . Consultado el 18 de agosto de 2005 .
- ^ "El tamaño de clúster predeterminado para los sistemas de archivos NTFS y FAT" . Microsoft. 31 de enero de 2002 . Consultado el 10 de enero de 2012 .
- ^ a b Middleton, Dennis. "Comprensión de la compresión NTFS" . Blog de Ntdebugging . Microsoft . Consultado el 16 de marzo de 2011 .
- ^ "Reducir la brecha: tallar archivos comprimidos NTFS" . Consultado el 29 de mayo de 2011 .
- ^ "Cómo funciona NTFS" . 2003-03-28 . Consultado el 24 de octubre de 2011 .
- ^ Masiero, Manuel (1 de diciembre de 2011). "¿Debería comprimir datos en su SSD?" . Hardware de Tom . Grupo Bestofmedia . Consultado el 5 de abril de 2013 .
- ^ "Conceptos de disco y solución de problemas" . Microsoft . Consultado el 26 de marzo de 2012 .
- ^ "Compresión y grupos de archivos de sólo lectura" . Libros en pantalla de SQL Server 2008 . Microsoft . Noviembre de 2009 . Consultado el 20 de abril de 2010 .
- ^ "Mejores prácticas para la compresión NTFS en Windows" . Base de conocimientos de Microsoft . Consultado el 18 de agosto de 2005 .
- ^ "Sistema operativo compacto, instancia única y optimización de imágenes" . Microsoft . Consultado el 1 de octubre de 2019 .
- ^ "Archivos dispersos" . MSDN . Microsoft . 12 de octubre de 2013 . Consultado el 21 de octubre de 2013 .
- ^ Kandoth, Suresh B. (4 de marzo de 2009). "Errores de archivo dispersos: 1450 o 665 debido a la fragmentación del archivo: correcciones y soluciones" . Ingenieros CSS SQL Server . Microsoft . Consultado el 21 de octubre de 2013 .
- ^ "Archivos dispersos y cuotas de disco" . Biblioteca de MSDN . Microsoft . 12 de octubre de 2013 . Consultado el 21 de octubre de 2013 .
- ^ "Diseño de una estrategia de instantáneas" . Biblioteca TechNet . Microsoft . 28 de marzo de 2003 . Consultado el 15 de enero de 2008 .
- ^ cfsbloggers (14 de julio de 2006). "Cómo se ven afectados los puntos de restauración y otras funciones de recuperación en Windows Vista cuando se realiza un arranque dual con Windows XP" . El archivador . Consultado el 21 de marzo de 2007 .
- ^ "NTFS transaccional" . MSDN . Microsoft . Consultado el 2 de febrero de 2007 .
- ^ "NTFS transaccional (TxF)" . Centro de desarrollo de Windows (MSDN) . Microsoft . Consultado el 24 de mayo de 2015 .
- ^ a b "Cómo funcionan los descriptores de seguridad y las listas de control de acceso" . TechNet . Microsoft . Consultado el 4 de septiembre de 2015 .
- ^ Morello, John (febrero de 2007). "Vigilancia de seguridad que implementa EFS: parte 1" . Revista Technet . Microsoft . Consultado el 25 de enero de 2009 .
- ^ "Cómo funciona EFS" . Kit de recursos de Windows 2000 . Microsoft . Consultado el 25 de febrero de 2014 .
- ^ "Capítulo 18 - Elección de un sistema de archivos" . Guía de recursos de MS Windows NT Workstation 4.0 . Microsoft . Consultado el 25 de febrero de 2014 .
- ^ "Nombrar archivos, rutas y espacios de nombres" . MSDN . Microsoft . Convenciones de nomenclatura . Consultado el 25 de febrero de 2014 .
- ^ "NTFS. Sector de arranque de partición" . Ntfs.com . Consultado el 22 de septiembre de 2018 .
- ^ "Sector de arranque" . Technet.microsoft.com . Consultado el 22 de septiembre de 2018 .
- ^ "Tabla maestra de archivos" . MSDN . 2 de julio de 2012.
- ^ "Tabla de archivos maestra NTFS (MFT)" . Ntfs.com . Consultado el 22 de septiembre de 2018 .
- ^ Schwarz, Thomas. "COEN 252 Informática forense NTFS" . Facultad de Organización e Informática Universidad de Zagreb . Consultado el 30 de mayo de 2019 .
- ^ Desde Windows XP, es muy difícil ver una lista de estos archivos: existen en el índice del directorio raíz, pero la interfaz Win32 los filtra. En NT 4.0, el comando de la línea de
dir
comandos enumeraría los metarchivos en el directorio raíz si/a
se especificaran. En Windows 2000,dir /a
dejó de funcionar, perodir /a \$MFT
funcionó. - ^ a b "Disponibilidad de versión 2 de servicio de fase 3 de herramientas de soporte OEM" . Corporación Microsoft. 2007-02-21. Archivado desde el original el 23 de febrero de 2015 . Consultado el 16 de junio de 2010 .
Utilidad de información del sector de archivos del sistema de archivos de Windows NT (NTFS) ... Una herramienta que se utiliza para volcar información sobre un volumen NTFS
- ^ "Las cuatro etapas del crecimiento de archivos NTFS" . Consultado el 22 de septiembre de 2018 .
- ^ "Es posible que un archivo muy fragmentado en un volumen NTFS no crezca más allá de cierto tamaño" . Archivado desde el original el 6 de mayo de 2021 . Consultado el 19 de mayo de 2021 .
- ^ "Cómo funcionan los oplocks en el entorno Windows: descripción general" . Archivado desde el original el 23 de agosto de 2010 . Consultado el 19 de diciembre de 2018 .
- ^ "Novedades de NTFS" . Technet.microsoft.com . Consultado el 22 de septiembre de 2018 .
- ^ " Superar el error del horario de verano y obtener las horas correctas de modificación de archivos. Archivado el 14 de noviembre de 2004 en la Wayback Machine " El proyecto de código
- ^ cfsbloggers (14 de julio de 2006). "Cómo se ven afectados los puntos de restauración y otras funciones de recuperación en Windows Vista cuando se realiza un arranque dual con Windows XP" . El archivador . Consultado el 21 de marzo de 2007 .
- ^ "Cómo convertir discos FAT a NTFS" . Microsoft . Consultado el 30 de mayo de 2019 .
- ^ "Cómo utilizar Convert.exe para convertir una partición al sistema de archivos NTFS" . Corporación Microsoft. 2007-02-12 . Consultado el 26 de diciembre de 2010 .
- ^ "No se puede abrir el contenido sincronizado en una carpeta de OneDrive en una unidad externa" . Soporte de Microsoft . Consultado el 3 de abril de 2021 .
- ^ André, Jean-Pierre (1 de marzo de 2019). "NTFS-3G: puntos de unión, enlaces simbólicos y puntos de reanálisis" . jp-andre.pagesperso-orange.fr .
- ^ "Notas de la versión de FreeBSD 3.2" . 17 de mayo de 1999 . Consultado el 15 de junio de 2020 .
- ^ a b "mount_ntfs - Páginas de manual de OpenBSD" . Consultado el 15 de junio de 2020 .
- ^ "Anuncio de NetBSD 1.5" . 6 de diciembre de 2000 . Consultado el 15 de junio de 2020 .
- ^ "OpenBSD 4.9" . Openbsd.com . Consultado el 22 de septiembre de 2018 .
- ^ "Acerca de Tuxera" . Consultado el 15 de junio de 2020 .
- ^ Alvares, Milind (2 de octubre de 2009). "Soporte de lectura / escritura NTFS oculto de Snow Leopard" . Archivado desde el original el 10 de agosto de 2010 . Consultado el 18 de septiembre de 2010 .
- ^ "Jan Kratochvil: Cautivo: El primer sistema de archivos de lectura / escritura NTFS libre para GNU / Linux" . Consultado el 15 de junio de 2020 .
- ^ "OpenBSD agrega soporte de fuse (4) para agregar sistemas de archivos en el área de usuario" . Diario de OpenBSD . 2013-11-08 . Consultado el 8 de noviembre de 2013 .
- ^ "Controlador estable de lectura / escritura NTFS-3G" . 2009-07-25.
- ^ "Tuxera NTFS para Mac" . Tuxera. 30 de agosto de 2011 . Consultado el 20 de septiembre de 2011 .
- ^ "NTFS para Mac OS X, canal de comunicación entre Mac OS X y Windows" . Grupo de software Paragon . Consultado el 20 de septiembre de 2011 .
- ^ Controlador NTFS de lectura / escritura de Seagate para Mac OS X Archivado el 10 de febrero de 2011 en Wayback Machine
- ^ "Complemento NTFS para NetDrive" . ecsoft2.org . Consultado el 9 de septiembre de 2020 .
- ^ "NetDrive para OS / 2" . arcanoae.com . Consultado el 9 de septiembre de 2020 .
- ^ "Avira NTFS4DOS Personal" . Archivado desde el original el 19 de junio de 2010 . Consultado el 25 de julio de 2009 .
- ^ "Descargar Avira NTFS4DOS Personal 1.9" . Consultado el 22 de septiembre de 2018 .
Otras lecturas
- Bolosky, William J .; Corbin, Scott; Goebel, David; Douceur, John R. (enero de 2000). "Almacenamiento de instancia única en Windows 2000" . Actas del 4º Simposio de sistemas Windows de USENIX .
- Custer, Helen (1994). Dentro del sistema de archivos de Windows NT . Microsoft Press . ISBN 978-1-55615-660-1.
- Nagar, Rajeev (1997). Elementos internos del sistema de archivos de Windows NT: una guía para desarrolladores . O'Reilly . ISBN 978-1-56592-249-5.
- "Referencia técnica de NTFS" . Microsoft TechNet . Microsoft . 28 de marzo de 2003.