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:
Conecto mi memoria flash a mi computadora. el espacio libre en la memoria flash es 1,717,518,336
bytes :
Creé una copia del archivo en mi memoria flash. Y nuevamente eche un vistazo al espacio libre. tiene espacio libre en 1,717,514,240
bytes :
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?
Apreciamos su tiempo y consideración.
Respuestas:
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.
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:
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.
fuente
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.
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.
fuente
dd
para 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 contouch
, repetirdd
y usar un diferencial binario.hiew
puede hacerlo, pero no estoy seguro ya que estuve en Windows hace mucho tiempo).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.
fuente
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.
fuente
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.
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.
Si su sistema de archivos lo admite, puede verlo mirando el tamaño del directorio.
fuente
¿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 flashH:\
. 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 queH:
está formateado con un tamaño de bloque de 1K, lo que resulta en la diferencia.fuente
robocopy
le 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 necesitardd
en Linux, pero cómo interpretarlas es otra historia.