Análisis del sistema de archivos del disco U (tome FAT32 como ejemplo)
Prólogo
He preparado una unidad flash USB. Aquí he preparado una unidad flash USB. Su sistema es FAT32. La capacidad es 28.8G. Echemos un vistazo a la creación de dos archivos con el mismo contenido en esta máquina y la unidad flash USB. ¿Cuál es la diferencia?
Descubrimos que estos dos mismos archivos son 9B incluso si son del mismo tamaño, pero ocupan bytes diferentes. ¿Por qué?
Esto se debe a que el almacenamiento de archivos se basa en grupos. Los grupos en el sistema de archivos de los dos discos no tienen el mismo tamaño y el archivo de texto debe ocupar al menos un grupo. El otro clúster del disco U donde se encuentra test2 es de 16 bytes.
El concepto de clúster del sistema de archivos:
al escribir un archivo en el disco, el sistema operativo a menudo distribuye el archivo en el espacio del segmento discontinuo de acuerdo con el clúster libre en el disco para formar una estructura de almacenamiento en cadena, y divide el segmento entre La información de conexión se guarda en FAT, de modo que cuando el sistema operativo lee el archivo, puede encontrar con precisión la ubicación de cada segmento y leerlo correctamente.
Análisis del sistema de archivos del disco U
- Encuentre una unidad USB y abra la unidad USB en winhex
- Se recomienda encontrar un disco U con una capacidad menor. Haga una copia de seguridad de los datos del disco U antes de realizar el experimento
para complementar el conocimiento del sector de arranque del sistema operativo:
OBR (Registro de arranque del sistema operativo, directorio de arranque del sistema operativo) generalmente se encuentra en cada partición ( El primer sector de la partición es una ubicación directamente accesible por el sistema operativo y es generada por el formateador avanzado. OBR generalmente incluye un programa de arranque y una tabla de registro de parámetros de partición llamada bloque de parámetros BPB, que varía según el tamaño de la partición y el tipo de sistema operativo.
La función principal del programa de arranque es determinar si los dos primeros archivos en el directorio raíz de esta área son los archivos de arranque del sistema operativo. Si es así, lea el primer archivo en la memoria y déle el control. El bloque de parámetros BPB registra parámetros importantes como el sector de inicio, el sector final, el formato de almacenamiento de archivos, el descriptor de medios del disco duro, el tamaño del directorio raíz, el número FAT y el tamaño de la unidad de asignación (también denominada clúster) de la partición.
La siguiente figura es una tabla BPB, el desplazamiento representa el desplazamiento, cada valor representa un significado diferente:
el sistema de archivos FAT32 está compuesto por DBR y sus sectores reservados, FAT1, FAT2 y área de DATOS en cuatro partes.
El sistema de archivos FAT32 se divide aproximadamente en cuatro bloques. El primer bloque es DBR (es decir, un sector de arranque) y sus sectores reservados. DBR también es un sector de arranque, que ocupa un sector, pero lo hará Hay una parte reservada. La parte reservada puede tener algunos parámetros para hacer en el futuro. Su longitud se especifica en BPB. La segunda parte son dos tablas FAT. La última área se llama área de datos (DATOS), que se divide en el directorio raíz, subdirectorios y área de archivos.
A continuación, abra winhex y use winhex para abrir el disco U:
haga clic en la partición 1 anterior. Como se muestra en la figura siguiente, el primer sector de esta partición 1 está en el sector 8046, que es donde se encuentra el DBR. El
comienzo es EB 58. Para saltar (saltar, saltar), EB 58 significa saltar 58 bytes desde la posición actual y saltar allí, es decir, 33 parte C9, luego ir a ejecutar su parte del programa de arranque, seguido de U programa de inicio de disco, y la parte frontal (de 58 a 33 C9 antes) es la tabla BPB, hacemos clic en Ver-> Administrador de plantillas, y hacemos doble clic para seleccionar Boot Sector FAT32, puede ver la información del contenido de la tabla BPB:
inicio Estas tres instrucciones son instrucciones de salto, que no pertenecen a la tabla FAT. Desde el desplazamiento 4128768 a 4128778 (es decir, 4D 53 44 4F 53 35 2E 30), esta parte (OEM) es el llamado logotipo del fabricante, que es el disco U. Qué tipo de sistema se usa para formatearlo; los siguientes Bytes por sector en el desplazamiento 4128779 ~ 4128780 representan qué tan grande es cada sector, es decir, 512B (02 00 hex (little endian)); Próximas compensaciones 4128781 a 41 Los dos bits 28782 representan cuántos sectores tiene cada grupo, es decir, 32 (hex 20). Todos los siguientes parámetros se obtienen de esta manera. Estos parámetros tienen un desplazamiento total de 4192278. Este es el 55 AA.
A continuación, observe el número:
cada sector: 512B
cada grupo tiene 32 sectores
Sector reservado (sector reservado): 3230 sectores
Número de FATS (número de tabla FAT): 2
(tabla FAT Longitud) Sector por FAT: 14769 sectores Dir.
Raíz 1er grupo (el número de grupo al principio del directorio raíz): grupo 2
Se puede calcular que
un grupo es 32x512B = 16384B el
número de sector DBR actual (8046) + número de sector reservado (3230) = 11276, este número de sector es la ubicación de nuestro FAT1, saltamos para echar un vistazo:
porque nuestra tabla FAT es 14769 sectores, entonces, número de sector FAT1 (11276) + longitud de un sector (14769) = 26045 es el número de sector inicial de la segunda FAT, saltamos y descubrimos que es lo mismo que FAT1, saltamos
en el futuro La longitud de FAT2, 26045 + longitud de FAT (14769) = 40814, está al comienzo del
área de datos. ¿No se divide el área de datos en tres partes? Aquí es donde se encuentra el directorio raíz. El número de clúster donde se ubica el directorio raíz se encuentra en el clúster 2. (Dije antes)
Ahora formateamos el disco U. Veamos cómo se ven las tres áreas después del formateo.
Formato ...
bueno.
Después de abrir, la partición 1 no cambiará (es decir, el DBR), y
sus diversos parámetros no cambiarán. Salte a FAT1 y
descubrió que es un poco diferente, ahora hay más de una línea menos que FAT1. Una línea es de 16 bytes, solo los primeros 12 de la primera línea tienen algo, y los siguientes son todos 0, lo mismo que FAT2. Pero cuando salté al área de datos, encontré algo. Como se muestra en la figura a continuación, creé un contenido de archivo txt abcdefg en el disco U, pero el directorio raíz se convirtió en 0, lo
que significa que después de formatear el disco, el área de datos todavía estaba, Los contenidos anteriores del directorio se han ido, lo que significa que los datos se pueden recuperar, incluso si los formatea, puede recuperarlos mientras el área de datos aún esté allí.
¿Pero por qué la computadora no puede verlos? Debido a que la eliminación de datos solo "arranca" el directorio y los datos aún están allí.
Hemos creado recientemente un nuevo archivo .txt en el disco U con el contenido 1234567890. Actualice winhex, salte a la tabla 1 de FAT y descubra que FAT1 tiene múltiples
FF FF FF 0F. Echemos
un vistazo a la estructura de la tabla FAT. Se
encuentra que cada entrada en la tabla FAT ocupa 4 bytes, es decir, 4x8b = 32b. Entonces llamó a FAT32.
Nota: Cada entrada corresponde a un clúster. Es decir, la entrada No. 2 está reservada para el directorio raíz, por lo que el directorio raíz está en el cluster No. 2. Un FFFFFF0F se denomina etiqueta de finalización, lo que indica que los archivos de este clúster se han completado, es decir, este clúster está terminado y, al final, los archivos de los clústeres posteriores no tienen nada que ver con mi clúster. Todo el 0,0 en la parte posterior representa un clúster en blanco y no se ha dividido. Mientras aparezca un archivo, puedo encontrar un clúster para que lo use (por ejemplo, acabo de crear un nuevo archivo. Si el sistema de archivos es pequeño, se le asignará un clúster, y se le asignará el clúster 3, y se marcará con una marca de eliminación).
A continuación, almacenamos un archivo relativamente grande en la unidad flash USB en la red, actualizamos winhex y saltamos a FAT1: se
encuentra que este archivo no está asignado desde la quinta entrada, sino desde 17 00 00 00 (almacenamiento en cadena), El archivo completo no se completa hasta la siguiente etiqueta final FF FF FF 0F, se ocupan un total de 25 grupos y se puede calcular el tamaño del archivo: 25x16384B = 409600B.
En la figura, puede encontrar la regularidad 17 00 00 00—> 18 00 00 00—> 19 00 00 00. Cada grupo almacena el número de grupo del siguiente grupo, al igual que el puntero.
A continuación, vaya al directorio raíz para ver: el
directorio raíz registra cuántos archivos o carpetas hay en el disco U, como se muestra en la figura, los elementos registrados en el directorio raíz. Por ejemplo, el nuevo new.txt y el
directorio se dividen en nombres de archivo cortos y nombres de archivo largos.
Nombre de archivo corto:
toma dos líneas (como el nombre de archivo del nuevo.txt anterior), un total de 32 bytes. Hacemos clic en Ver-> Administrador de plantillas y hacemos doble clic para seleccionar Entrada de directorio FAT para ver la información de contenido de este nombre de archivo corto:
análisis: