¿Los metadatos no ocupan ningún tamaño?

51

Pongo 4096 caracteres en un archivo de texto y guardarlo it.Since cada carácter es de 1 byte, Tamaño del archivo de texto debe ser 4K byte.As que aparece a continuación eso está bien:

ingrese la descripción de la imagen aquí

Conecto mi memoria flash a mi computadora. el espacio libre en la memoria flash es 1,717,518,336bytes :

ingrese la descripción de la imagen aquí

Creé una copia del archivo en mi memoria flash. Y nuevamente eche un vistazo al espacio libre. tiene espacio libre en 1,717,514,240bytes :

ingrese la descripción de la imagen aquí

Veamos cuál es la diferencia:

1.717.518.336 - 1.717.514.240 =4096 bytes


Mi pregunta :

Q1:

Como puede ver en la última imagen de arriba, el único espacio que ocupa el archivo en el flash, es el espacio para su contenido [caracteres]. Entonces, ¿dónde está el archivo de metadatos?

Quiero decir, cuando muevo el archivo a otra computadora, ¿cómo entiende el nombre del archivo, el propietario del archivo, la fecha de creación y modificación y ...?

¡¿No ocupa ningún tamaño? !!

Q2:

¿Puedo ver el archivo de metadatos en la memoria flash?

ingrese la descripción de la imagen aquí

Apreciamos su tiempo y consideración.

TheGoodUser
fuente
10
los metadatos estarían contenidos en el propio sistema de archivos. eso no es parte del tamaño de archivo informado por Windows. Además, los metadatos FAT32 y NTFS serían diferentes.
Ramhound
@Ramhound cuando muevo el archivo de texto a la memoria flash, su archivo de metadatos también se mueve a la memoria flash, ¿verdad? como puedo verlo
TheGoodUser
1
Además de comprender los aspectos internos del sistema operativo (vale la pena por derecho propio), probablemente no haya ninguna razón para mirar o modificar dicha información a menos que esté escribiendo un programa de reparación / recuperación de disco. Para un uso normal, nunca querrá alterar la información a este nivel, ya que podría socavar fácilmente la integridad del sistema de archivos y de todo lo que lo utiliza.
Joe
3
Respuesta corta: ocupa espacio, pero no se cuenta como parte del tamaño del archivo.
user20574

Respuestas:

50

Sí, los metadatos ocupan espacio. En NTFS, ocupa 1024 bytes, para ser específicos. Sin embargo, la información no se almacena en el archivo, sino en la tabla del archivo maestro MFT. Específicamente en el registro MFT # 4 $AttrDef.

Consulte este artículo de Technet para obtener más detalles: la tabla 3.5 contiene todos los registros MFT definidos.

Cuando un volumen se formatea con NTFS, se crea un archivo de tabla maestra de archivos (MFT) y otras piezas de metadatos. Los metadatos son los archivos que NTFS usa para implementar la estructura del sistema de archivos. NTFS reserva los primeros 16 registros de la MFT para archivos de metadatos.

NTFS crea un registro de archivo para cada archivo y un registro de directorio para cada directorio creado en un volumen NTFS. La MFT incluye un registro de archivo separado para la propia MFT. Estos archivos y registros de directorio se almacenan en la MFT. Los atributos del archivo se escriben en el espacio asignado en la MFT. Además de los atributos de archivo, cada registro de archivo contiene información sobre la posición del registro de archivo en la MFT.

Tenga en cuenta que otros sistemas de archivos pueden y tratan de manera diferente los metadatos.

EDITAR: Se ha señalado en la sección de comentarios que esta respuesta no tiene sentido porque el OP solicitó metadatos en los sistemas de archivos FAT32, no en NTFS. Si supiera cómo, eliminaría el atributo "respuesta correcta". Por lo tanto, proporciono información adicional que responde a la pregunta con respecto a FAT32.

FAT32 guarda metadatos simples, como la visibilidad o el tiempo de modificación para cada archivo y carpeta en una entrada en la carpeta principal del archivo o carpeta, creando un árbol hacia abajo desde la carpeta raíz del FS. Como se señaló con respecto a NTFS, este no es un archivo sino que se guarda dentro de la estructura de datos de la carpeta. La entrada originalmente era de 32 bytes y contenía los siguientes atributos:

Name (8.3) xxxxxxxx.yyy. (88 bits)

Attribute byte (8 bits of information, described later in this section).

One reserved byte.

Create time (24 bits).

Create date (16 bits).

Last access date (16 bits).

Two reserved bytes.

Last modified time (16 bits).

Last modified date (16 bits).

Starting cluster number in the file allocation table (16 bits).

File size (32 bits).

La lista fue tomada de este artículo de Microsoft Technet y pertenece a FAT16. Dado que el tamaño del clúster de FAT32 puede ser de 32 bits y el nombre de los archivos puede ser mayor que 8.3, la tabla no es del todo precisa. Para acomodar nombres de archivos largos y discos más grandes, FAT32 modifica algunos comportamientos que pueden leerse en Wikipedia aquí, pero la idea básica es válida.

bjanssen
fuente
2
Puede usar la información NTFS de la suite Sysinternal para ver los metadatos y encontrar cualquier extensión. Puede descargarlo aquí: technet.microsoft.com/en-us/sysinternals/default Hay varios editores de metadatos, pero no puedo recomendar ninguno porque no los he usado.
bjanssen
99
Los metadatos de @ TheGoodUser-Sp, al menos en NTFS, no se almacenan en "un archivo" en el sentido convencional, que es lo que me da la impresión de que está buscando. No hay algo escondido en la carpeta \ windows en algún lugar del que no te estemos diciendo nada; Los metadatos de archivo son una parte integral del sistema de archivos en sí.
Rob Moir
2
En este caso, la unidad flash está formateada como FAT-32. Por lo tanto, los metadatos se almacenan en la Tabla de asignación de archivos (FAT) en.wikipedia.org/wiki/File_Allocation_Table
jnovacho
2
Es importante tener en cuenta que las tablas de asignación para NTFS y FAT están preasignadas. Difiere de un formato a otro, pero varios sectores generalmente están ocupados con bloques preasignados vacíos que se utilizarán para almacenar metadatos para reducir la fragmentación.
Kaslai
2
¿Qué te hace pensar que los metadatos son de tamaño fijo? La lista de control de acceso ciertamente puede variar bastante en complejidad; No veo cómo siempre puede caber en 1024 bytes (junto con todos los demás metadatos como tiempos de acceso y modificación)
Ben Voigt
26

¡¿No ocupa ningún tamaño? !!

Sí, pero es una entrada pequeña en un gran bloque preasignado. Ese bloque se cuenta en la parte "usada" de su disco. Agregar una entrada dentro de ese bloque no requiere que el bloque se expanda.

Dependiendo del sistema de archivos, eventualmente el bloque se completará y se extenderá de alguna manera después de que se agreguen muchos nombres de archivo.

¿Puedo ver el archivo de metadatos en la memoria flash?

No es fácil

Como comentaron Ruslan y Blorgbeard. Puede instalar un visor hexadecimal como HxD que le permitirá ver (y editar, tenga mucho cuidado) los datos del sistema de archivos sin procesar. Pero tendrá que hacer la interpretación usted mismo con respecto a qué bytes pertenecen a qué estructuras del sistema de archivos. Para eso necesitaría una buena documentación del sistema de archivos específico utilizado en el disco flash. Es probable que FAT32 sea más fácil de entender que cualquiera de las muchas variantes de NTFS. Consulte Comprensión de los sistemas de archivos FAT32, por ejemplo.

RedGrittyBrick
fuente
3
@TheGood Si no tengo Google, probablemente comenzaría arrancando Linux y usando ddpara copiar el sistema de archivos flash sin formato en un archivo en otro disco, luego usaría un visor hexadecimal para examinarlo junto con un buen trabajo de referencia en el sistema de archivos específico (si no es de propiedad y no se divulga). Podría hacer un cambio de metadatos con touch, repetir ddy usar un diferencial binario.
RedGrittyBrick
1
Lo bueno es que no estoy privado de Google.
Cthulhu
55
@Cthulhu: Los viejos no necesitan el necronomicon. fhtagn.
RedGrittyBrick
2
No es necesario cambiar el sistema operativo para usar un visor hexadecimal en un disco duro directamente. Solo usa un visor hexadecimal decente. (Parece que incluso hiewpuede hacerlo, pero no estoy seguro ya que estuve en Windows hace mucho tiempo).
Ruslan
1
HxD definitivamente lo hará, en Windows. Menú de extras, Abrir disco.
Blorgbeard
7

Los metadatos no se almacenan (ni lo informan las herramientas de administración de archivos habituales) como archivos, sino que se almacenan en los datos del sistema de archivos en el disco.

Dependiendo de la naturaleza / versión del sistema de archivos, cada entrada tomará una cierta cantidad de espacio en disco para representar la información de metadatos.

Además, junto con el espacio asignado en la tabla maestra de archivos, algunos sistemas de archivos también llevarán un registro diario sobre el cambio de archivos (ocupando espacio adicional), y algunos sistemas de archivos pueden incluso extenderse con campos adicionales que contienen metadatos para propósitos especiales.

Por lo tanto, técnicamente los metadatos ocupan espacio en el disco, pero la mayoría de las utilidades de administración de archivos no lo tienen en cuenta, ya que funciona llamando a la API del sistema que consulta el espacio de archivos en el sistema de archivos , no el espacio de metadatos .

Y esta abstracción es solo la punta del iceberg, ya que el sistema de archivos en sí mismo trabaja en una abstracción del espacio físico subyacente del disco, proporcionado por rutinas de disco de bajo nivel, por lo que en realidad solo la lógica interna del disco sabrá cuántas posiciones de memoria reales están disponibles para niveles superiores y cuántos están marcados como no confiables, reservados o utilizados para la suma de verificación.

Dados9
fuente
3

Los metadatos dependen del sistema de archivos. Los sistemas de archivos más básicos que se usan generalmente en medios intercambiables se basan en un sistema de archivos DOS (FAT). DOS no tiene usuarios y permisos. O, más correctamente, parte de esa información se transporta en el octavo bit de datos del nombre del archivo. La única sobrecarga de recursos que se usa en un FS de DOS básico es dar cuenta de los bloques del archivo o del directorio en el que se encuentra, y ese bloque probablemente ya esté comprometido para manejar ".", Ya. IOW, agregar un archivo vacío no agregaría otro bit de almacenamiento, pero cambiaría algunos bits consumidos y asignados existentes.

Cuando utiliza sistemas de archivos más avanzados, con diarios y usuarios, obtiene metadatos, entradas de diario y posiblemente una cadena forense para recuperar versiones de archivos anteriores, etc. Luego, un pequeño archivo puede explotar en el almacenamiento usado.

Entonces, verifique el tipo de FS. Si es FAT, entonces probablemente no tenga un usuario grabado en metadatos en los medios. Por lo tanto ... no se utiliza espacio. :)

Un buen ejemplo de un FAT FS es una implementación de código abierto, y puede ver que la lista de operaciones disponibles no incluye "obtener / establecer usuario" y "verificar el acceso por usuario". Sin identidad = sin almacenamiento de esa identidad.

JezC
fuente
2

Como puede ver en la última imagen de arriba, el único espacio que ocupa el archivo en el flash, es el espacio para su contenido [caracteres]. Entonces, ¿dónde está el archivo de metadatos?

El "archivo de metadatos" es el directorio que contiene el archivo. Eso es básicamente lo que es un directorio: una colección de metadatos que describen los contenidos del directorio.

Quiero decir, cuando muevo el archivo a otra computadora, ¿cómo entiende el nombre del archivo, el propietario del archivo, la fecha de creación y modificación y ...?

¡¿No ocupa ningún tamaño? !!

Sí, en el directorio En la mayoría de los sistemas de archivos, el mismo archivo puede tener dos nombres diferentes si está vinculado a dos directorios diferentes.

¿Puedo ver el archivo de metadatos en la memoria flash?

Si su sistema de archivos lo admite, puede verlo mirando el tamaño del directorio.

David Schwartz
fuente
2

¿Dónde se guardan los metadatos?

Cuando hablamos de metadatos, hay dos tipos de metadatos.

El primer tipo incluye la fecha de creación, la última fecha de modificación, la última fecha de acceso. Dependiendo del sistema de archivos (es decir, NTFS / FAT / Ext3, etc.) habrá diferentes "metadatos" disponibles, por ejemplo, el propietario de Windows y el permiso para NTFS.

El primer tipo se aplica a todos los archivos, por ejemplo, el archivo .txt en su ejemplo.

Todos los sistemas de archivos preasignan espacios para contener estos metadatos en la Tabla maestra de archivos (MFT para NTFS, algunos otros nombres para otro sistema de archivos), a la que los usuarios no pueden acceder directamente. Dado que MFT no se cuenta como parte de la capacidad de la unidad, de todos modos no se requiere espacio de almacenamiento "adicional".

El segundo tipo de "metadatos" se define por el tipo de archivo o la aplicación. Por ejemplo, los documentos de Office mantienen "Autor", "Asunto" y otros metadatos; Las imágenes JPEG conservan un conjunto de datos EXIF ​​que incluyen "fotografía de fecha tomada", "modelo de cámara", "velocidad de obturación"; mientras que el sonido MP3 contiene "album", "track #", "bitrate" ...

El segundo tipo SÍ ocupa espacio adicional, porque estos "metadatos" forman parte del archivo.


Diferentes tamaños en diferentes unidades

Cuando su archivo de texto está activado C:\, ocupa 4K. Se convierte en 1K de tamaño cuando lo coloca en su unidad flash H:\. Esto se debe a un "tamaño de bloque" diferente para las diferentes particiones.

Los archivos son espacios asignados en bloque. Por lo tanto, en un sistema de archivos de tamaño de bloque 4K, 1 byte se asigna 4K mientras que 4,097 bytes (4K + 1 byte) se asigna 8K.

Aparentemente, su C:formato tiene un tamaño de bloque de 4K mientras que H:está formateado con un tamaño de bloque de 1K, lo que resulta en la diferencia.

Kenneth L
fuente
Cuando copio un archivo de texto en blanco a una memoria flash, sus metadatos también se moverán a la memoria flash. ahora, ¿hay alguna forma, en Linux, por ejemplo, de ver el archivo de metadatos? en binario por ejemplo.
TheGoodUser
Si los metadatos se copian depende de cómo lo haga. Por ejemplo, robocopyle da la opción de copiar marcas de tiempo, atributos, información del propietario, listas de control de acceso (ACL), etc. También depende de si el sistema de archivos en su memoria flash lo admite (por ejemplo, FAT32 no guarda la información del propietario y ACL, por lo que son descartado de todos modos). Los metadatos no tienen la forma de un archivo, por lo que no puede ver los datos sin procesar; si desea ver cosas de bajo nivel que pueda necesitar dden Linux, pero cómo interpretarlas es otra historia.
Kenneth L