FAT12
Sistema de archivos FAT12
Estructura de la FAT12, disquete de 1,44 mb :
La tabla de asignación de archivos conocido como FAT (del ingles file allocation table), es un sistema de archivos desarrollado para MS-DOS.
FAT es con diferencia el sistema de archivos mas simple de
aquellos compatibles con Windows NT. El sistema de archivos FAT se caracteriza
por la tabla de asignacion de archivos (FAT), que es una tabla que reside en la
parte "superior" del volumen. Para proteger el volumen, se guardan
dos copias de la FAT por si una resultara dañada. Ademas, las tablas FAT y el
directorio raíz deben almacenarse en una ubicación fija para que los archivos
de arranque del sistema se puedan ubicar correctamente.
Un disco con formato FAT se asigna en clústeres, cuyo tamaño
viene determinado por el tamaño del volumen, los clústeres están compuestos de
sectores. Cuando se crea un archivo, se crea una entrada en el directorio y se
establece el primer número de clúster que contiene datos. Esta entrada de la
tabla FAT indica que este es el último clúster del archivo o bien señala al
clúster siguiente, en algunos casos indicará si el clúster esta dañado o
reservado para uso interno.
Características:
- Se divide en bloques de tamaño fijo
- Cada archivo se compone de una secuencia de bloques, formando una lista enlazada mediante punteros
- Para encontrar un bloque es necesario recorrer todos los anteriores
- El tamaño depende del tipo de FAT que estamos usando.
- Sector de arranque
- Tabla de asignación de archivos (FAT)
- Directorio raíz
- Datos
Sector de arranque:
- Comienza en el primer sector del disco (sector 0).
- En FAT12 el sector de arranque ocupa un sector.
- Normalmente la informacion contenida en el sector de arranque ocupa solo 62 bytes.
- Contiene informacion como bytes por sector, numero de cluster, numero de sectores por pista, etc.
Interpretación del sector de arranque:
-El sector de arranque comienza en el sector 0, donde los 3 primeros bytes son para el salto a la rutina del BIOS, seguidos de 8 bytes para indicar el fabricante y numero de versión.
Celeste: offset= 0h
tamaño= 3 bytes
descripción= salto a la rutina
Amarillo: offset= 3h tamaño= 8 bytes descripción= fabricante y numero de versión
-La forma en que almacenan los datos en los ficheros las maquinas pueden tomar distinta representación si no se lee en su debida representacion Big y Little endian.
Para el ejemplo mostrado los datos se deben leer en modo Little endian, lo cual para el dato bytes por sector en el ejemplo es:
00 02 = 0x200h = 512 ( hace referencia al tamaño en bytes )
Lo mismo seria para numero de sectores reservados lo cual tiene como dato:
01 00 = 0x1h = 1 ( hace referencia al numero de sectores reservados)
Celeste: offset= Bh
tamaño= 2 bytes
descripción=número de bytes por sector
Amarillo: offset= Dh tamaño= 1 bytes descripción= sectores por cluster
Verde: offset= Eh
tamaño= 2 bytes
descripción= numero de sectores reservados
Rojo: offset= 10h tamaño= 1 bytes descripción= numero de FAT's
- El media descriptor devuelve informaciones sobre el
formato del volumen y de soporte de datos, para el ejemplo mostrado, el de un
disquete 3½ es F9.
detalles media descriptor.
Celeste: offset= 11h
tamaño= 2 bytes
descripción= numero de entradas en el directorio raiz
Amarillo: offset= 13h tamaño= 2 bytes descripción= numero de sectores del volumen
Verde: offset= 15h
tamaño= 1 bytes
descripción= media descriptor
Rojo: offset= 16h
tamaño= 2 bytes
descripción= numero de sectores por FAT
-En la FAT12 generalmente los datos de numero de sectores
ocultos en el volumen y numero de sectores que ocupan la partición tienen como
dato 00.
Celeste: offset= 18h tamaño= 2 bytes descripción= sectores por pista
Amarillo: offset= 1Ah tamaño= 2 bytes descripción= numero de cabezales de lectura-escritura
Verde: offset= 1Ch tamaño= 4 bytes descripción= numero de sectores ocultos en el volumen
Rojo: offset= 20h tamaño= 4 bytes descripción= numero de sectores que ocupa la partición
-El número de dispositivo físico para FDD es 00 para discos duro 80.
-El cabezal actual lo utiliza WinNT internamente.
-La firma del sistema se refiere al Sistema Operativo que creo el disco, para WinNT es 29.
- Se ocupan 2 bytes al final del sector de arranque con informacion 55AAh que hace referencia a la firma de unidad de arranque.
-El cabezal actual lo utiliza WinNT internamente.
-La firma del sistema se refiere al Sistema Operativo que creo el disco, para WinNT es 29.
Celeste: offset= 24h
tamaño= 1 bytes
descripción= número de dispositivo fisico
Amarillo: offset= 25h tamaño= 1 bytes descripción= cabezal actual
Verde: offset= 26h
tamaño= 1 bytes
descripción= firma del sistema
Rojo: offset= 27h
tamaño= 4 bytes
descripción= id del volumen
-Como se
puede ver en la imagen de ejemplo, el disquete de ejemplo contenía de nombre
PAOLO, pero como el tamaño que se le da para esta información es 11 bytes, los
bytes restantes se completan con espacio (20).
-Lo mismo
ocurre para la información de la versión del sistema de archivos FAT12 se
completa con espacio los bytes no ocupados (20).
Celeste: offset= 2Bh
tamaño= 11 bytes
descripción= nombre de etiqueta de volumen
Amarillo: offset= 36h tamaño= 8 bytes descripción= version del sistema de archivos
- Se ocupan 2 bytes al final del sector de arranque con informacion 55AAh que hace referencia a la firma de unidad de arranque.
Extra:
-Los bytes no indicados generalmente corresponden a rutinas de codigo maquina del cargador de arranque.
Por ejemplo:
Por ejemplo:
"This is not a bootable disk. Please insert a bootable floppy and..press any key to try again".
Referencias:
https://support.microsoft.com/es-es/kb/100108