Capítulo – 3
Enfoque lógico de los discos y el sistema operativo
El disco duro no puede ejecutar su hardware por sí mismo y necesita dos software básicos para ejecutar sus operaciones, el BIOS (Sistema básico de entrada y salida) y el DOS (o sistema operativo). El sistema operativo del disco no se comunica directamente con el hardware de la computadora y el disco duro, pero necesita el BIOS en el medio. Es por eso que la BIOS ha tomado un papel importante en la computadora.
BIOS
El trabajo básico del BIOS es proporcionar una interfaz estándar entre el hardware o los dispositivos conectados a la computadora y el DOS. El BIOS del sistema es la interfaz de nivel más bajo entre el hardware de su sistema y el software que se ejecuta en él. . Tiene varias funciones importantes que desempeña en el control de acceso a los discos duros, como
- Rutinas de interrupción del BIOS
- Detección y configuración del disco duro
- Compatibilidad con el modo de interfaz de disco duro
Para garantizar la interoperabilidad de varios productos de hardware y software, el BIOS del sistema se adapta a las necesidades de su hardware y proporciona una forma estándar de permitir que el software se dirija al hardware. Estos se denominan servicios BIOS y son utilizados por muchos sistemas operativos y programas de aplicación. Proporcionan una interfaz uniforme al disco duro, por lo que las aplicaciones no necesitan saber cómo comunicarse con cada tipo de disco duro individualmente.
Los discos duros IDE/ATA estándar se configuran en el BIOS mediante varias configuraciones del BIOS. Los programas BIOS modernos pueden detectar discos IDE/ATA modernos para determinar estos parámetros y configurarlos automáticamente. El BIOS controla qué tipos de modos de interfaz se pueden usar con el disco duro, trabajando con el conjunto de chips del sistema en la placa base y el bus de E/S del sistema.
La interfaz INT 13H y las extensiones INT 13H
La interfaz principal del BIOS ha sido la interrupción de software 13H, que generalmente se conoce como INT 13H, donde INT significa interrupción y 13H es el número 19 en notación hexadecimal.
Aprenderemos y discutiremos el uso de interrupciones en la programación en detalle en la fase de programación de este libro. La interfaz Int13H admite muchos comandos diferentes que se pueden dar al BIOS, que luego los pasa al disco duro. La interrupción 13H incluye la mayoría de las tareas que debemos realizar con el disco, como leer, escribir, formatear, etc.
El uso y trabajo con Int13H requiere que el programa invocador conozca los parámetros específicos del disco duro y proporcione el direccionamiento exacto de cabeza, cilindro y sector a las rutinas para permitir el acceso al disco.
TEl BIOS usa la geometría para el disco duro tal como está configurada en el programa de configuración del BIOS. La interfaz Int13H asigna 24 bits para la especificación de la geometría del disco, divididos de la siguiente manera:
- 10 bits para el número de cilindro, o un total de 1024 cilindros.
- 8 bits para el número de cabeza, o un total de 256 cabezas.
- 6 bits para el número de sector, o un total de 63 sectores.
Por lo tanto, el máximo número posible de sectores en el disco puede ser
= 1024 * 256 * 63
= 16515072
Como vemos aquí, la interfaz INT 13H puede admitir discos que contengan hasta 16515072 sectores con 512 bytes por sector. Por lo tanto, el tamaño máximo del disco puede ser,
= 16515072 * 512
= 8455716864 bytes
~ 8.456GB
Por lo tanto, la interfaz INT 13H puede admitir un tamaño de disco de aproximadamente hasta 8,456 GB (o 7,875 GiB).
Hoy en día, la mayoría de los usuarios de computadoras usan discos duros que tienen una capacidad mucho mayor que 8 GB, por eso, la interfaz INT 13H finalmente ha llegado al final de su utilidad en los sistemas informáticos modernos y ha sido reemplazada por una interfaz más nueva llamada INT. Sin embargo, las extensiones 13H INT 13H aún pueden ser utilizadas por DOS y algunos otros sistemas operativos más antiguos, y para otros fines de compatibilidad.
Extensiones Int 13H
Es realmente una historia interesante que cuando se desarrolló la interfaz INT 13H, nadie esperaba obtener el tamaño de 8 GB en el disco duro. Sin embargo, hoy en día podemos sentir un disco duro de 8 GB mucho más pequeño en capacidad, incluso para la computadora personal del usuario doméstico.
El estándar anterior tiene una limitación importante: utiliza 24 bits de información de direccionamiento y, como tal, solo puede manejar unidades que contengan hasta 16515072 sectores con 512 bytes por sector, lo que produce una capacidad máxima de 8,456 GB (o 7,875 GiB).
Por lo tanto, el problema era ampliar la ruta de acceso de 24 bits a algo más grande, pero no era posible expandir la interfaz BIOS INT13H existente porque si intentábamos hacer esto, mucho hardware y software antiguos dejarían de funcionar. Y prácticamente, no hay esperanza de obtener un lugar respetable en el mundo de la informática con una gran cantidad de hardware y software antiguo que no funciona con su desarrollo.
Por lo tanto, se desarrolló una nueva interfaz para reemplazar Int13H. Estas rutinas se denominan extensiones Int13H. Esta nueva interfaz utiliza 64 bits en lugar de 24 bits para el direccionamiento y permite un tamaño máximo de disco duro de 9,4 * 10 21 bytes, es decir, 9,4 billones de gigabytes.
Aprenderemos el uso de las extensiones INT 13H e INT 13H en la sección de programación de este libro. Hay una serie de otras limitaciones de tamaño que tuvieron lugar en los primeros días. Algunos de los límites lógicos y físicos populares se describen a continuación:
El límite de 2,1 GB
Este límite de tamaño se observó en algunos BIOS más antiguos que solo asignan 12 bits para el campo en la RAM CMOS que proporciona el número de cilindros. Por tanto este número puede ser como máximo 111111111111B (Número Binario Máximo posible de 12 Bits) que equivale a 4095. De esta forma el tamaño máximo de disco con 16 cabezales, al que se podrá acceder, será:
= 4095 * 16 * 63 * 512 bytes
= 2113413120 Los bytes son accesibles.
El límite de 33,8 GB
Esta barrera del tamaño del disco duro se notó a principios de 1999. Los discos grandes reportan 16 cabezas, 63 sectores/pista y 16383 cilindros. Muchos BIOS calculan un número real de cilindros dividiendo la capacidad total por 16*63.
Para discos de más de 33,8 GB, esto conduce a una cantidad de cilindros superior a 65 535. En este caso particular, algunas versiones de Award BIOS no pueden manejar unidades que tengan más de 65 535 cilindros. Ahora el BIOS falla o se cuelga. Dado que los parámetros del disco duro suelen utilizar 16 cabezales y 63 sectores, esto da como resultado una capacidad de unos 33,8 GB o 31,5 GiB antes de que se produzcan problemas.
La solución es actualizar el BIOS o se puede usar un puente para hacer que el disco parezca más pequeño.
Especificación ATA para discos IDE: el límite de 137 GB
La antigua especificación ATA no permite el acceso a un disco de más de 137 GB. En realidad, utiliza solo 28 bits para especificar un número de sector. Sin embargo, ATA-6 define una extensión con un número de sector de 48 bits.
El límite del tamaño del disco se generó con la combinación de como máximo 65536 cilindros contando de 0 a 65535, 16 cabezas contando de 0 a 15 y 255 sectores por pista contando de 1 a 255, la capacidad máxima total del disco,
= 65535 * 16 * 255 Sectores
= 267386880 Sectores
= 136902082560 Bytes (Sector de 512 Bytes cada uno)
~ 137 GB
Compatibilidad con BIOS IDE de dos y cuatro discos
Hoy en día, la mayoría de los programas de BIOS modernos admiten la detección automática de discos duros, lo que permite que el BIOS interrogue a cada disco duro para determinar su geometría lógica, los modos de transferencia admitidos y otra información. Esto se puede hacer en el momento de la configuración o dinámicamente cada vez que se inicia la máquina, según el BIOS.
El BIOS del sistema proporciona soporte nativo para discos duros IDE/ATA, por lo tanto, puede haber una serie de parámetros que se pueden configurar para decirle al BIOS qué discos duros hay en el sistema y cómo controlarlos. Cada disco duro del sistema tendrá su propia configuración, por lo que hay un conjunto para el maestro principal y otro para el esclavo principal, y así sucesivamente. Sin embargo, los discos duros SCSI se configuran a través de su adaptador de host y BIOS SCSI integrado.
Dado que las unidades de disco duro de más de 8 GB de tamaño no se pueden describir utilizando los parámetros de geometría IDE/ATA BIOS tradicionales, la detección automática dinámica es la forma estándar de configurar unidades modernas, especialmente en el caso de sistemas informáticos más antiguos, sin embargo, el usuario aún puede establecer algunos parámetros de la unidad manualmente.
Los siguientes son los ajustes que normalmente se encuentran en el programa de configuración del BIOS para configurar discos duros IDE/ATA. Aunque en los sistemas modernos, es posible que algunas de las configuraciones de compatibilidad más antiguas ya no estén presentes:
- Tipo de disco: originalmente se usaba para permitir que el usuario seleccionara su disco duro de una lista predefinida, pero ahora se usa para controlar la configuración automática o manual de parámetros para la unidad.
- Tamaño: Tamaño de la unidad de disco duro en megabytes decimales. Se calcula a partir de otros parámetros como Cilindros, Cabezas y Sectores, etc.
- Cilindros: el número de cilindros lógicos en el disco.
Cabezas: el número de cabezas lógicas en el disco.
- Sectores: El número de sectores lógicos cada uno de 512 bytes, en cada pista lógica en el disco. Por lo general, las unidades de disco duro modernas tienen 63 sectores en una sola pista.
- Precompensación de escritura: es una configuración de compatibilidad que especifica en qué número de cilindro se deben realizar los ajustes de escritura para unidades mucho más antiguas.
- Zona de aterrizaje (cabezas de estacionamiento): la zona de aterrizaje es el cilindro donde el BIOS estaciona las cabezas para evitar la pérdida de datos o la creación de sectores defectuosos, cuando la unidad está apagada. Dado que las unidades de disco duro modernas estacionan automáticamente sus cabezas, rara vez se necesitan hoy en día.
- Modo de traducción: el modo de traducción del BIOS utilizado para admitir discos duros de más de 504 MB.
- Modo de bloque: para controlar la capacidad del BIOS para realizar transferencias de disco en bloques.
- Modo de E/S programada (DMA): El modo de E/S programado o modo DMA utilizado para realizar transferencias hacia y desde el disco duro.
- Modo de transferencia de 32 bits: controla el uso de transferencias de datos de 32 bits de mayor rendimiento.
Limitaciones en los sistemas de archivos
Cada sistema de archivos admite un tamaño máximo de volumen, un tamaño de archivo y una cantidad de archivos por volumen.
Ahora, por ejemplo, generalmente los volúmenes FAT16 y FAT32 están limitados a 4 GB y 32 GB (generalmente) respectivamente. Hay algunas limitaciones relacionadas con los sistemas de archivos FAT que debe conocer, como se indica a continuación:
- FAT12: Los volúmenes FAT de menos de 16 MB se formatean como FAT12. Es el tipo de FAT más antiguo y utiliza un binario de 12 bits para contener números de clúster. Un volumen formateado con FAT12 puede contener un máximo de 4086 clústeres, lo que equivale a 2 12 menos algunos valores reservados para usar en FAT. (Lo discutiremos en detalle en la estructura lógica del disco dada a continuación en este capítulo). Por lo tanto, FAT12 es más adecuado para volúmenes más pequeños. Se utiliza en disquetes y particiones de disco duro de menos de 16 MB.
- FAT16: FAT16 utiliza un número binario de 16 bits para contener números de clúster. Un volumen que usa FAT16 puede contener un máximo de 65 526 clústeres, lo que equivale a 2 16 menos algunos valores reservados para usar en FAT. (Lo discutiremos en detalle en la estructura lógica del disco dada a continuación en este capítulo). FAT16 se utiliza para volúmenes de disco duro que varían en tamaño desde 16 MB hasta 2048 MB. Los volúmenes FAT16 de más de 2 GB no son accesibles desde computadoras que ejecutan MS-DOS, Windows 95/98/ME y muchos otros sistemas operativos. Esta limitación se debe a que estos sistemas operativos no admiten tamaños de clúster superiores a 32 KB, lo que genera un límite de 2 GB. (Consulte el límite de clústeres que figura a continuación en este capítulo).
- FAT32: En teoría, los volúmenes máximos de FAT32 pueden ser de hasta 2048 GB (aproximadamente 2 Terabytes). FAT32 es compatible con la versión OEM SR2 de Windows 95, así como con Windows 98/ME. FAT32 usa un número de clúster binario de 28 bits (¡Recuerde! No 32, porque 4 de los 32 bits están "Reservados"). Por lo tanto, en teoría, FAT32 puede manejar volúmenes con más de 268 millones de clústeres (en realidad, 268 435 456 clústeres) y admitirá unidades de hasta 2 TB de tamaño. Sin embargo, para hacer esto, el tamaño de la FAT crece mucho. (Vamos a discutirlo en los temas dados a continuación en este capítulo).
La comparación de los tipos de FAT se proporciona a continuación, en la tabla.
NTFS: NTFS significa Sistema de archivos de nueva tecnología. Es utilizado por Windows 2000/XP. En teoría, el tamaño máximo de partición NTFS es (2 64 – 1) clústeres.
La descripción detallada del sistema de archivos NTFS va más allá de los límites de este libro; sin embargo, se dan algunas limitaciones en la siguiente tabla:
Descripción
|
Límite |
Tamaño máximo de archivo
|
16 exabytes: 1 KB (264 bytes: 1 KB) |
Tamaño máximo del volumen
|
(2 64 – 1) grupos |
Archivos (y carpetas) por volumen
|
4,294,967,295 (2 32 – 1 ) Moscas y Carpetas |
Clúster
La unidad más pequeña de espacio en el disco duro para asignación a la que puede acceder cualquier software es el sector , que contiene 512 bytes. Es posible tener un sistema de asignación del disco donde a cada archivo se le asignan tantos sectores individuales como necesite. Por ejemplo, un archivo de 1 MB requeriría aproximadamente 2048 sectores individuales para almacenar sus datos.
En el caso del sistema de archivos FAT o más bien podemos decir que en la mayoría de los sistemas de archivos, no se utilizan sectores individuales. Hay varias razones de rendimiento para esto. Cuando DOS escribe alguna información en el disco duro, no asigna el sector de espacio de forma inteligente, sino que utiliza una nueva unidad de almacenamiento llamada clúster.
FAT fue diseñado hace muchos años y es un sistema de archivos simple, y no es capaz de administrar sectores individuales. Lo que FAT hace en cambio es agrupar sectores en bloques más grandes que se denominan grupos o unidades de asignación.
Un clúster es la unidad más pequeña de espacio en disco que se puede asignar a un archivo. Esta es la razón por la que los clústeres a menudo se denominan unidades de asignación. Puede ser muy difícil administrar el disco cuando los archivos se dividen en partes de 512 bytes.
Un volumen de disco de 20 GB que utiliza sectores de 512 bytes administrados individualmente contendría más de 41 millones de sectores individuales, y hacer un seguimiento de esta cantidad de información consume tiempo y recursos. Sin embargo, algunos sistemas operativos asignan espacio a los archivos por sector, pero requieren cierta inteligencia avanzada para hacerlo correctamente.
Los clústeres son el espacio mínimo asignado por el DOS al almacenar cualquier información en el disco. Incluso para almacenar solo información de un byte de longitud en el disco se requiere un área de clúster como mínimo en la superficie del disco.
Si un clúster puede almacenar 512 bytes de información, para almacenar 513 bytes necesitará dos clústeres. A cada archivo se le debe asignar un número entero de clústeres. Esto significa que si un volumen usa clústeres que contienen 4096 bytes, entonces un archivo de 610 bytes usará un clúster, por lo tanto, 4096 bytes en el disco, pero un archivo de 4097 bytes usa dos clústeres, por lo tanto, 8192 bytes en el disco.
Esta es la razón por la que el tamaño del clúster es tan importante para asegurarse de maximizar el uso eficiente del disco. Por lo tanto, podemos entender que los tamaños de clúster más grandes generan más espacio desperdiciado.
La siguiente figura muestra las propiedades de un archivo llamado BINARY.C y aclara el hecho del espacio utilizado por el archivo en el disco. El tamaño real del archivo es de 610 bytes, pero como el clúster único tiene 4096 bytes, el archivo utiliza un clúster (4096 bytes) en el disco.
Un clúster puede estar formado por uno o más sectores. Depende del tipo de disco que se utilice. Como un clúster puede estar formado por más de un sector, el uso de clústeres como unidad de asignación reduce el tamaño de la tabla de asignación de archivos que DOS usa para almacenar la información del espacio en disco usado y vacío.
El tamaño del clúster está determinado principalmente por el tamaño del volumen del disco. Si no es estrictamente hablando, generalmente los volúmenes más grandes usan tamaños de clúster más grandes. Para volúmenes de disco duro, cada clúster varía en tamaño desde 4 sectores (2048 bytes) a 64 sectores (32 768 bytes).
Los disquetes usan grupos mucho más pequeños y, en algunos casos, usan un tamaño de grupo de solo 1 sector. Los sectores de un clúster son continuos, por lo que cada clúster es un bloque continuo de espacio en el disco.
El tamaño del clúster y, por lo tanto, el tamaño de la partición o el volumen, debido a que están directamente relacionados, tiene un impacto importante en el rendimiento y la utilización del disco. El tamaño del clúster se determina cuando se particiona el volumen del disco.
Hay algunas utilidades como Partition Magic disponibles que pueden alterar el tamaño del clúster de una partición existente dentro de los límites de condiciones específicas, pero para los casos generales, una vez que se selecciona el tamaño de la partición y el tamaño del clúster, se fija.
Como hemos discutido anteriormente, el número de cilindro o pista comienza desde 0 y el primer número de sector siempre se toma como 1 y una cosa más que debe recordar es que el primer número de grupo siempre se toma como 2.
Tamaño del grupo
Los clústeres se utilizan para asignar el área de almacenamiento solo para el área de datos. FAT y el área de directorio no se asignan de acuerdo con el tamaño del clúster. En un disco que utiliza sectores de 512 bytes, un clúster de 512 bytes contiene un sector, mientras que un clúster de 4 KB contiene 8 sectores.
Las siguientes tablas enumeran los tamaños de clúster predeterminados utilizados por el DOS para varios formatos de discos. Sin embargo, el tamaño del clúster puede ser diferente del tamaño predeterminado en algunas circunstancias:
Unidad de disquete (FDD) |
Tipos de unidad |
Sectores/Cluster |
Tamaño total del clúster en bytes (sectores de 512 bytes cada uno) |
FDD de 5,25" y 360 Kb |
2 sectores |
1024 |
FDD de 5,25” y 1,2 Mb |
1 sector |
512 |
FDD de 3,5” y 720 Kb |
2 sectores |
1024 |
FDD de 3,5” y 1,44 Mb |
1 sector |
512 |
FDD de 3,5” y 2,88 MB |
2 sectores |
1.024 |
FAT16, FAT32 y NTFS usan diferentes tamaños de clúster según el tamaño de la partición y cada sistema de archivos tiene una cantidad máxima de clústeres que puede admitir. Cuanto menor sea el tamaño del clúster, más eficientemente un disco almacena información porque el espacio no utilizado dentro de un clúster no puede ser utilizado por otros archivos.
La siguiente tabla muestra los tamaños de clúster predeterminados para la partición del sistema de archivos FAT16, FAT32 y NTFS. FAT 32 permite un almacenamiento y uso mucho más eficiente de discos duros más grandes, FAT de 32 bits solo es compatible con Windows 95 OSR-2 y Windows 98/ME y. FAT 16 es compatible con MS-DOS, Windows 3.1, Windows 95 y Windows NT. Los sistemas operativos Windows 2000/XP utilizan el sistema de archivos NTFS.
Nota: Aquí se ha escrito 1 KiB para 1 Kilobyte binario, lo que significa que 1 KiB es de 1024 Bytes o podemos decir que dos sectores de 512 Bytes equivalen a 1 KiB.
A medida que aumenta el tamaño de la partición FAT16, también aumenta el desperdicio de espacio en disco. El uso de FAT32 reduce el tamaño de los clústeres y, por lo tanto, proporciona un almacenamiento eficiente. Si bien FAT32 permite el uso de discos duros más grandes y tamaños de clúster muy reducidos, existe una importante consideración de rendimiento al usar FAT32 que los enormes discos duros con docenas de gigabytes han hecho que FAT32 sea esencial para los sistemas más nuevos. Más bien podemos decir que a menudo ya no tiene una elección práctica entre FAT16 y FAT32.
Consideremos una partición de 2048 MB, la mayor que puede soportar FAT16. Si esta partición se configura en FAT16, dará como resultado una tabla de asignación de archivos con 65 526 clústeres, y cada clúster ocupará 32 KiB de espacio en disco.
El gran tamaño del clúster resultará en una gran pérdida de espacio en disco. Por lo tanto, se recomendará que se use FAT32 en esta partición, lo que resultará en una reducción del tamaño del clúster de 32 KiB a 4 KiB.
De hecho, esto reducirá la holgura en el disco en una cantidad enorme, que puede ser de hasta un 30 %, y potencialmente liberará cientos de megabytes de espacio en disco que antes se desperdiciaba. Por lo general, es lo correcto en esta situación. Sin embargo, tiene otro lado. No obtenemos este tamaño de clúster reducido de forma gratuita.
Como cada clúster es más pequeño, tiene que haber más para cubrir la misma cantidad de disco. Entonces, en lugar de 65 526 clústeres, ahora tendremos 524 208.
Además, las entradas FAT en FAT32 tienen un ancho de 32 bits (cada entrada de 4 bytes), mientras que las entradas de FAT16 son de 16 bits (entrada de 2 bytes cada una). El resultado final es que el tamaño de la FAT es 16 veces mayor para FAT32 que para FAT16. La siguiente tabla resume:
FAT 16 y FAT 32 para un volumen de disco de 2048 MB |
Tipo de GRASA |
FAT16 |
FAT32 |
Tamaño del clúster |
32 KiB |
4 KiB |
Número de entradas FAT |
65.526 |
524.208 |
Tamaño de FAT |
131052 bytes
(~ 128 KiB) |
2096832 bytes
(~ 2 MB) |
Si aumentamos el tamaño del volumen FAT32 de 2 GB a 8 GB, el tamaño de la FAT aumenta de alrededor de 2 MiB a 8 MiB. La importancia de esto no es el hecho de que el volumen FAT32 tendrá que desperdiciar varios megabytes de espacio en el disco para contener la FAT. Porque solo al hacer esto se ahorra mucho más espacio que al reducir el tamaño de FAT. El verdadero problema es que FAT contiene todos los punteros de clúster para cada archivo en el volumen. Hacer que la FAT aumente considerablemente de tamaño puede afectar negativamente la velocidad del sistema.
Por esta razón, es importante limitar el tamaño de la tabla de asignación de archivos a un número razonable. De hecho, en la mayoría de los casos se trata de encontrar un equilibrio entre el tamaño del clúster y el tamaño de FAT. Una buena ilustración de esto son las selecciones de tamaño de clúster realizadas por el propio FAT32.
Dado que FAT32 puede manejar alrededor de 268 millones de clústeres como máximo, el tamaño de clúster de 4 KiB es conceptualmente capaz de admitir un volumen de disco de 1 TiB (1024 GiB) de tamaño, pero el problema al hacerlo es que el tamaño de FAT se sobrepasaría. 1 GB según 268 millones de veces 4 bytes por entrada.
Por esta razón, FAT32 solo usa clústeres de 4 KiB para volúmenes de hasta 8 GiB de tamaño, y luego se usan clústeres más grandes como se muestra en la tabla anterior, para Tamaños de clúster. El tamaño máximo de partición admitido por FAT32, declarado oficialmente, es de 2048 GiB (2 TiB).
Estructura lógica de un disco duro
Básicamente, podemos dividir la estructura lógica del disco duro en los siguientes cinco términos lógicos:
- MBR (registro de arranque maestro)
- DBR (registro de arranque de DOS)
- FAT (tablas de asignación de archivos)
- Directorio raíz
- Área de datos
La siguiente figura representa la disposición conceptual de estos términos lógicos que forman la estructura lógica de un disco duro:
El registro de arranque maestro (MBR) o, a veces, la tabla de partición maestra (MPT), contiene un pequeño programa para cargar e iniciar la partición activa (o de arranque) desde la unidad de disco duro. El registro de arranque maestro contiene información sobre las cuatro particiones primarias en la unidad de disco duro, como el sector inicial, el sector final, el tamaño de la partición, etc.
El MBR está ubicado en Absolute Sector 0 o podemos decir en el cilindro 0, head 0 y sector1 y si hay más de una partición presente en el disco, hay Extended Master Boot Records, ubicados al comienzo de cada volumen de partición extendido (Ver la figura dada a continuación).
El MBR se crea en el disco duro ejecutando el comando FDISK.EXE de DOS. Sin embargo, hay muchos otros programas disponibles para hacer la misma tarea. Con el FDISK, cualquiera de estas particiones puede activarse o iniciarse.
Esto permite que el sector de arranque de la partición activa reciba el control cuando se inicia el sistema. Dado que el disquete no tiene particiones, no hay MBR en un disquete.
Dado que DOS usa un solo alfabeto en mayúsculas para nombrar una partición, el número máximo de todos los tipos de particiones juntas permitidas por DOS es 24, comenzando desde la letra de unidad C (C:) hasta la letra de unidad Z (Z:) . Por lo tanto, si hay más de una unidad de disco duro física presente, el número total de particiones de todas las unidades no puede exceder las 24.
Después de la prueba automática de encendido (POST), el BIOS carga el MBR (registro de arranque maestro) del disco duro en la memoria y luego lo ejecuta. Primero, el MBR verifica el disco duro en busca de una partición activa, luego carga el registro de inicio de DOS (DBR) en la memoria y transfiere el control al código de inicio del sistema operativo y luego el código de registro de inicio del sistema operativo carga el resto del sistema operativo en Memoria.
Formato de registro de arranque maestro
Podemos particionar la unidad de disco duro en varias unidades lógicas a las que DOS generalmente les asigna su propia letra de unidad. Solo se puede marcar una partición a la vez como partición activa (o de arranque).
El registro de arranque maestro tiene un límite de cuatro entradas en la tabla de particiones maestra. Sin embargo, la ubicación del registro de arranque maestro extendido se puede obtener con la ayuda del registro de arranque maestro que contiene tablas de particiones extendidas, cuyo formato es exactamente el mismo que el de la tabla de particiones principal, excepto que no hay código de arranque.
En el registro de inicio maestro ampliado, este espacio de 446 bytes normalmente se reserva para el código de inicio y permanece vacío. Todos los 512 bytes de The Master Boot Record se dividen de la siguiente manera, como se indica en la tabla:
Desplazamiento |
Descripción |
Tamaño |
000H |
Cargador de programa inicial (IPL), código ejecutable (proporciona el primer arranque de la computadora) |
446 bytes |
1BEH |
Entrada de la primera partición (consulte la siguiente tabla) |
16 bytes |
1CEH |
Segunda entrada de partición |
16 bytes |
1DEH |
Entrada de la tercera partición |
16 bytes |
1EEH |
Cuarta entrada de partición |
16 bytes |
1FEH |
Marcador ejecutable o Firma de sector de arranque o Número mágico (AAH 55H) |
2 bytes |
Total = 512 bytes |
Todas las particiones extendidas deben existir dentro del espacio reservado por la entrada de partición extendida. Solo dos de las particiones extendidas están diseñadas para usarse, la primera como una partición normal y la segunda como otra partición extendida, si existe. Por lo tanto, con la ayuda de una tabla de particiones maestra, podemos obtener la ubicación de otra tabla de particiones maestra extendida junto a ella, si está presente.
Formato de entrada de la tabla de particiones
El formato de entrada de la tabla de particiones de cualquier partición en MBR se proporciona en la siguiente tabla. Cada entrada de partición de cualquier MBR se puede dividir en los siguientes bytes con sus significados específicos:
Byte indicador de tipo de arranque (1 byte): si este byte es 00H, significa que la partición no está activa y si el byte es 80H, significa que la partición es una partición activa o una partición de arranque . Aunque no se espera la presencia de ningún otro byte, entonces si hay algún otro byte presente, puede deberse a la corrupción de la tabla de particiones o a un ataque de VIRUS en la tabla de particiones.
Cilindro de inicio – Cabeza – Número de sector de la partición (3 bytes): Cuando calculamos el CHS (Cilindro, Cabeza y Sector) de cualquier disco, los CHS físicos se cuentan de la siguiente manera:
- El Sector Físico se cuenta a partir de 1.
- La cabeza física se cuenta desde 0.
- El cilindro físico se cuenta desde 0 (consulte el capítulo anterior para obtener más detalles)
- El byte en el desplazamiento 01H representa el número principal inicial en sistema hexadecimal para la partición.
6 bits de byte menos significativos en el desplazamiento 02H hacen el número de sector inicial de la partición y la combinación de los 2 bits restantes (como dos bits más significativos) más 8 bits de otro byte en el desplazamiento 03H (los 8 bits menos significativos restantes de los 10 -Número de Bit) hacen el Número de Cilindro de Inicio de la Partición.
Desplazamiento |
Significado |
Tamaño |
Descripción |
00H |
Byte indicador de tipo de arranque |
1 byte |
Si Byte es 00H, la partición está inactiva y si Byte es 80H , la partición está activa (o de arranque) |
01H |
Número de Cabecera de Comienzo de la Partición |
1 byte |
Número de cabecera inicial de la partición en sistema hexadecimal |
02H |
Sector y Número de Cilindro de Inicio de la Partición |
2 bytes |
6 bits del primer byte forman el número de sector inicial y la combinación de los 2 bits restantes (como dos bits más significativos) más 8 bits de otro byte (el resto de los 8 bits menos significativos del número de 10 bits) forman el número de cilindro inicial de la partición |
04H |
Byte indicador del sistema de archivos |
1 byte |
Byte indicador del sistema de archivos en sistema hexadecimal (consulte la tabla siguiente para los indicadores) |
05H |
Número de cabeza de extremo de la partición |
1 byte |
Número de cabecera final de la partición en sistema hexadecimal |
06H |
Número de Sector y Cilindro de Extremo de la Partición |
2 bytes |
6 bits del primer byte hacen el número de sector final y la combinación de los 2 bits restantes (como dos bits más significativos) más 8 bits de otro byte (el resto de 8 bits menos significativos del número de 10 bits) hacen el número de cilindro final de la partición |
08H |
Número de Sector Relativo del Inicio de la Partición |
4 bytes |
Número de sectores entre el MBR y el primer sector en la partición |
0 canales |
Número de Sectores de la Partición |
4 bytes |
Número de sectores en la partición |
Total = 16 bytes |
La codificación de cilindros y sectores se ha dado en el ejemplo de un estudio de tabla de partición de muestra realizado a continuación.
Byte indicador del sistema de archivos (1 byte): el byte indicador del sistema de archivos en el desplazamiento 04H representa el sistema de archivos de esa partición. La tabla, que enumera el byte indicador del sistema de archivos para varios sistemas de archivos, se proporciona a continuación en este capítulo.
Cilindro final – Cabeza – Número de sector de la partición (3 bytes): La codificación es la misma que para Cilindro inicial – Cabeza – Número de sector de la partición.
Número de Sector Relativo del Inicio de la Partición (4 Bytes): Número de Sectores entre el MBR y el Primer Sector en la Partición en Sistema Hexadecimal.
Número de Sectores de la Partición (4 Bytes) : Número de Sectores de la Partición en sistema Hexadecimal.
Siempre se debe recordar que los números de Cilindro, Culata y Sector son los que se deben pasar al BIOS. Por lo tanto, si el BIOS utiliza traducción (modo LBA o soporte de extensiones INT 13H), es posible que los valores no representen los valores CHS físicos. Para discos duros grandes (más de 8,4 GB), los valores de CHS pueden no ser válidos. Por lo general, estos valores deben ignorarse y, en su lugar, se utilizan los valores absolutos del sector.
La figura que se muestra a continuación muestra el MBR de un disco con particiones FAT32. El área resaltada de 64 bytes al final de la figura representa la tabla de partición maestra del MBR.
La codificación para el CHS inicial y final es la siguiente:
- En el desplazamiento 00H, 80 (hexadecimal) representa que la partición es una partición activa.
- En el desplazamiento 01H, 01 (Hex) representa el número de cabeza inicial = 1.
- La combinación de dos bytes en el desplazamiento 02H y 03H forman el sector de inicio
y número de cilindro de la partición según la codificación dada a continuación:
Así Iniciando C-H-S de la partición= 0-0-1.
Del mismo modo, el número de cabeza para el final de la partición es FE (hexadecimal), que es 254 y la codificación para el cilindro final y el número de sector de la partición se proporcionan en la siguiente tabla:
Así el Final C-H-S de la Partición = 701-254-63.
El byte 0B (hexadecimal) en el desplazamiento 04H es el byte indicador del sistema de archivos para la partición. El byte 0B (H) representa que la partición tiene el sistema de archivos FAT32. La tabla para varios sistemas de archivos y sus bytes indicadores del sistema de archivos se proporciona a continuación:
Indicador del sistema de archivos Byte en hexadecimal |
Partición/Descripción del sistema de archivos |
00H |
Entrada de tabla de particiones vacía/sin usar
(Recuerde que esto no se usa para designar un área no utilizada en el disco, sino que marca una entrada de la tabla de particiones no utilizada) |
01H |
DOS 12 bits gordo
(El tipo 01H es para particiones de hasta 15 MB) |
02H |
XENIX: sistema de archivos raíz |
03H |
XENIX sistema de archivos /usr (obsoleto)
(XENIX es una parte antigua de Unix V7. El sistema operativo Microsoft XENIX se anunció en agosto de 1980. Era una versión portátil y comercial del sistema operativo Unix para Intel 8086, Zilog Z8000, Motorola M68000 y Digital Equipment PDP- 11. Microsoft presentó XENIX 3.0 en abril de 1983. SCO entregó su primer XENIX para 8088/8086 en 1983). |
04H |
FAT de 16 bits, DOS 3.0+ (tamaño de partición < 32M)
(Algunas versiones antiguas de DOS tenían un error que requería que esta partición se ubicara en los primeros 32 MB físicos del disco duro) |
05H |
DOS Extendido (DOS 3.3+ Volumen Extendido)
Admite discos de 8,4 GB como máximo. Con este tipo 05H DOS/Windows no usará la llamada de BIOS extendida, incluso si está disponible). |
06H |
FAT de 16 bits, DOS Big, DOS 3.31+ (Tamaño de partición >= 32M)
(Las particiones tienen un máximo de 2 GB para DOS y Windows 95/98 con un máximo de 65536 clústeres con cada clúster, un máximo de 32 KB. Windows NT puede crear una partición FAT16 de hasta 4 GB utilizando clústeres de 64 KB). |
07H |
OS/2 IFS (Sistema de archivos instalable) (HPFS es el ejemplo más conocido de este sistema de archivos. OS/2 solo busca particiones con ID 7 para cualquier IFS instalado, esta es la razón por la que El paquete EXT2 IFS incluye un controlador de dispositivo especial de "filtro de partición de Linux" para engañar a OS/2 haciéndole creer que las particiones de Linux tienen ID 07). |
07H |
Unix Avanzado |
07H |
Windows NT NTFS |
07H |
QNX2.x (anterior a 1988)
(Para el sistema de archivos real del tipo de partición 07H, se debe inspeccionar el registro de arranque de la partición) |
08H |
OS/2 (solo v1.0 a v1.3) |
08H |
Partición de arranque de AIX
[AIX (Advanced Interactive Executive) es la versión de IBM de Unix] |
08H |
SplitDrive |
08H |
Partición DELL que abarca varias unidades |
08H |
Commodore DOS |
08H |
QNX 1.x y 2.x
("qny" según las particiones QNX) |
09H |
Partición de datos AIX |
09H |
Sistema de archivos coherente
[Coherent era un sistema operativo similar a UNIX para los sistemas 286-386-486, comercializado por Mark Williams Company dirigida por Bob Swartz. Era conocido por su buena documentación. Se introdujo en 1980 y finalizó el 1 de febrero de 1995. Las últimas versiones son V3.2 para 286-386-486 y V4.0 (mayo de 1992, usando el modo protegido) solo para 386-486. Se vendió por $99 la copia y se rumorea que se han vendido 40000 copias. Una partición Coherent tiene que ser primaria. ] |
09H |
QNX 1.x y 2.x ("qnz" según Particiones QNX) |
0aH |
Administrador de arranque de OS/2
(OS/2 es el sistema operativo diseñado por Microsoft e IBM para ser el sucesor de MS-DOS) |
0aH |
Partición de intercambio coherente |
0aH |
OPUS
(Servidor Unisys paralelo abierto) |
0bH |
WIN95 OSR2 FAT de 32 bits
(OSR2 significa "OEM Service Release 2" de Microsoft. Es para particiones de hasta 2047 GB. Casi siempre, Windows 95/98/ME tiene el mismo sistema de archivos que es FAT-32, dentro de los mismos límites de particiones) |
0cH |
WIN95 OSR2 FAT de 32 bits asignado por LBA
(Está utilizando Llogical Block A direccionamiento - modo de extensiones Interrupt 13H, por lo tanto, podemos decir que este es el equivalente de Extended INT 13H de 0BH. Casi siempre, Windows 95/98/ME tiene el mismo sistema de archivos que es FAT-32, dentro de los mismos límites de particiones) |
0eH |
WIN95 asignado a LBA: FAT de 16 bits para DOS o VFAT direccionable de bloque lógico
(Es lo mismo que 06H pero usando el modo LBA de INT 13H) |
0fH |
WIN95 asignado a LBA: partición extendida o VFAT direccionable de bloque lógico
(Es lo mismo que 05H pero usando el modo LBA de INT 13H. Windows 95 usa 0EH y 0FH como los equivalentes extendidos de INT13H de 06H y 05H. Windows NT no reconoce los cuatro tipos de Windows 95/98/ME 0BH, 0CH, 0EH y 0FH) |
10H |
OPUS
(Sistema de actualización de programas octales) |
11H |
FAT oculta de 12 bits de DOS o partición FAT oculta de OS/2 Boot Manager de 12 bitso DOS visto desde OS/2( Cuando OS/2 Boot Manager inicia una partición de DOS, ocultará todas las particiones de DOS primarias excepto la que se inicia, cambiando su ID y 01H, 04H, 06H y 07H se convierte en 11H, 14H, 16H y 17H, respectivamente. |
12H |
Partición de configuración/diagnóstico de Compaq
(Compaq lo utiliza para su partición de utilidad de configuración. Es una partición compatible con FAT que se inicia en sus utilidades y se puede agregar a un menú LILO como si fuera MS-DOS). |
14H |
(FAT oculta de 16 bits para DOS o Administrador de arranque OS/2 FAT oculta de DOS de 16 bits) <32M Partición
(El tamaño de la partición es inferior a 32M. El ID 14H se obtiene al usar Novell DOS 7.0 FDISK para eliminar la partición nativa de Linux). |
15H |
Extendido para DOS oculto |
16H |
(FAT oculta de 16 bits para DOS o OS/2 Boot Manager FAT oculta de 16 bits ) >=32M Partición |
17H |
Partición HPFS oculta de OS/2 Boot Manager o IFS oculto (por ejemplo, HPFS) |
17H |
Partición NTFS oculta |
18H |
Partición AST SmartSleep o archivo de intercambio especial de Windows AST (partición "Zero-Volt Suspend")
[AST Research, Inc. (llamado así por las primeras iniciales de los fundadores, Albert Wong, Safi Qureshey y Thomas Yuen). Las computadoras portátiles Ascentia tienen una "partición suspendida de cero voltios" o "partición SmartSleep" de 2 MB + tamaño de memoria.] |
Indicador del sistema de archivos Byte en hexadecimal |
Partición/Descripción del sistema de archivos |
19H |
Willowtech Photon COS
(El código 19H es reclamado para Willowtech Photon COS por Willow Schlanger. |
1bH |
WIN95 OSR2 32-bit FAT oculto o Partición oculta de Windows 95 FAT32 |
1cH |
Asignado por LBA FAT de 32 bits OSR2 WIN95 oculto
(Es una partición Windows95 FAT32 oculta usando el modo LBA de las extensiones INT 13H) |
1eH |
FAT WIN95 de 16 bits oculta asignada por LBA o partición VFAT LBA oculta |
1FH |
LBA asignada WIN95 extendida oculta o partición VFAT LBA extendida oculta |
20H |
OFSI
(Sistema de archivos Willowsoft Overture) |
21H |
Incluido oficialmente como Reservado
(Expansión de volumen HP, variante SpeedStor.) |
21H |
FSO2
(Reclamado para FSO2 (Sistema de archivos de oxígeno) por Dave Poirier) |
22H |
Partición extendida FSO2
(Reclamado por Oxygen Extended Partition por Dave Poirier) |
23H |
Incluido oficialmente como Reservado |
24H |
NEC DOS 3.x |
26H |
Incluido oficialmente como Reservado |
31H |
Incluido oficialmente como Reservado |
32H |
NOS (Sistema operativo de red)
(32H está siendo utilizado por el sistema operativo NOS, desarrollado por Alien Internet Services en Melbourne, Australia. Se eligió el id 32H no solo porque era uno de los pocos que quedaban disponibles pero también 32k es el tamaño de la EEPROM que el sistema operativo estaba destinado originalmente. |
33H |
Incluido oficialmente como Reservado |
34H |
Incluido oficialmente como Reservado |
35H |
JFS en OS/2 o eCS
[35H es utilizado por OS/2 Warp Server para e-Business, OS/2 Convenience Pack (también conocido como versión 4.5) y eComStation (eCS, una versión OEM de OS/2 Convenience Pack) para el sistema operativo /2 implementación de JFS (IBM AIX Journaling File System)] |
36H |
Incluido oficialmente como Reservado |
38H |
THEOS v3.2 (partición de 2 GB) |
39H |
Partición Plan 9
(Plan 9 es un sistema operativo desarrollado en Bell Labs para muchas arquitecturas. Originalmente, Plan 9 usaba una porción no asignada al final del disco. 3ra edición de Plan 9 utiliza particiones de tipo 39H, subdivididas en subparticiones descritas en la tabla de particiones Plan 9 en el segundo sector de la partición). |
39H |
Partición distribuida de THEOS v4 |
3aH |
THEOS v4 (partición de 4 GB) |
3bH |
THEOS v4 Partición extendida
(THEOS es un sistema operativo multiusuario multitarea para PC fundado por Timothy Williams en 1983). |
3cH |
Partición de recuperación PartitionMagic
(Cuando un producto PowerQuest como Partition Magic o Drive Image realiza cambios en el disco, primero cambia el indicador de tipo a 3CH para que que el sistema operativo no intentará modificarlo. Al final del proceso, se vuelve a cambiar a lo que era al principio. Por lo tanto, la única vez que puede ver un indicador de tipo 3CH es si el proceso se interrumpió de alguna manera, como apagado, reinicio del usuario, etc. Si lo vuelve a cambiar manualmente con un editor de tablas de particiones o cualquier programa de edición de disco, la mayoría de las veces todo está bien). |
3dH |
NetWare oculto |
40H |
Venix 80286
(Es un sistema operativo similar a Unix muy antiguo para PC). |
41H |
Linux/MINIX (disco compartido con DR-DOS)
(DR-DOS son las siglas de Digital Research-Disk Operating System). |
41H |
Arranque RISC personal |
41H |
Arranque PPC PReP (Power PC Reference Platform) Partición |
42H |
Intercambio de Linux (disco compartido con DR-DOS) |
42H |
SFS (Sistema de archivos seguro)
(SFS es un controlador de sistema de archivos cifrados para DOS en más de 386 PC, escrito por Peter Gutmann). |
Indicador del sistema de archivos Byte en hexadecimal |
Partición/Descripción del sistema de archivos |
42H |
Marcador de partición extendido dinámico de Windows 2000
(Si una entrada de la tabla de particiones de tipo 42H está presente en la tabla de particiones heredada, entonces Windows 2000 ignora la tabla de particiones heredada y usa una tabla de particiones propietaria y un esquema de particiones propietario (LDM o DDM). Puro Los discos dinámicos (aquellos que no contienen particiones con enlaces fijos) solo tienen una única entrada en la tabla de particiones, escriba 42H para definir todo el disco. Los discos dinámicos almacenan su configuración de volumen en una base de datos ubicada en un espacio de 1 MB. región privada al final de cada disco dinámico). |
43H |
Linux nativo (disco compartido con DR-DOS) |
44H |
Partición GoBack
(GoBack es una utilidad que registra los cambios realizados en el disco, lo que le permite ver o volver a un estado anterior. Se encarga de la E/S del disco como lo haría un administrador de discos y almacena sus registros en su propia partición.) |
45H |
Gestor de arranque Boot-US
(El administrador de arranque Boot-US (Ulrich Straub) se puede instalar en MBR, una partición primaria separada o un disquete. Cuando se instala en una partición primaria, esta partición obtiene el ID 45H. Esta partición no contiene un sistema de archivos, solo contiene el gestor de arranque y ocupa un solo cilindro (por debajo de 8,4 GB). |
45H |
Priam |
45H |
EUMEL/Elan |
46H |
EUMEL/Elan |
47H |
EUMEL/Elan |
48H |
EUMEL/Elan
(EUMEL, Más tarde conocidos como Ergos L3, son los sistemas multitarea multiusuario desarrollados por Jochen Liedtke en GMD, utilizando el lenguaje de programación Elan. Se utilizó en las escuelas alemanas para la educación informática.) |
4aH |
AdaOS Aquila |
4aH |
Sistema de archivos ligero ALFS/THIN para DOS |
4 canales |
Mampara Oberon |
4dH |
QNX4.x |
4eH |
Segunda partición QNX4.x |
4fH |
Tercera partición QNX4.x
(QNX es un sistema operativo POSIX(Portable Operating System Interface for Unix) certificado por microkernel, distribuido y tolerante a fallas para 386 y más tarde, incluida la compatibilidad con 386EX en aplicaciones integradas). |
4fH |
Partición de arranque/datos de Oberon |
50H |
Administrador de discos OnTrack (versiones anteriores), partición de solo lectura (Administrador de discos es un programa de OnTrack para permitir que las personas usen IDE discos de más de 504 MB en DOS. Las versiones del kernel de Linux anteriores a la 1.3.14 no coexisten con DM.) |
50H |
Lynx RTOS (sistema operativo en tiempo real)
(Lynx RTOS brinda a los usuarios la capacidad de colocar hasta 14 particiones de 2 GB cada una en unidades SCSI e IDE, para un total de hasta 28 GB de espacio en el sistema de archivos). |
50H |
Oberón nativo |
51H |
Administrador de discos OnTrack (DM6.0 Aux1), partición de lectura/escritura |
51H |
Novela |
52H |
CP/M |
52H |
Microport SysV/AT o Microport System V/386 |
53H |
Administrador de discos OnTrack (DM6.0 Aux3), partición de solo escritura |
54H |
OnTrack Disk Manager 6.0 Superposición dinámica de unidades |
55H |
EZ-Drive Partición
(EZ-Drive es otro programa similar a un administrador de discos desarrollado por MicroHouse en 1992. Ahora lo comercializa StorageSoft.) |
56H |
Volumen particionado de Golden Bow VFeature.
(Este también es un software de utilidad similar a Disk Manager. Este es un volumen de DOS no estándar). |
56H |
DM convertido a EZ-BIOS |
57H |
DrivePro
(DrivePro fue desarrollado por MicroHouse en 1992. Ahora lo comercializa StorageSoft.) |
57H |
Partición VNDI |
5cH |
Priam EDisk Volumen particionado
(Priam EDisk es un software de utilidad de tipo Disk Manager. Este es un volumen de DOS no estándar.) |
61H |
Almacenamiento de velocidad
(Dimensiones de almacenamiento SpeedStor Volumen particionado. Este es un volumen DOS no estándar. Es un software de utilidad de tipo Disk Manager.) |
63H |
Sistema Unix V/386, 386/ix, SCO, ISC Unix, UnixWare, Mach, MtXinu BSD 4.3 en Mach, GNU Hurd |
64H |
NetWare 286 de Novell, 2.xx |
Indicador del sistema de archivos Byte en hexadecimal |
Partición/Descripción del sistema de archivos |
64H |
Partición protegida PC-ARMOUR
(64H es utilizado por la protección de disco PC-ARMOUR del Dr. A. Solomon, con la intención de mantener el disco inaccesible hasta que se proporcione la contraseña correcta y luego se active un gancho INT 13H cargado por encima de la parte superior de la memoria que mostraba CHS = 0-0-2, con una copia de la tabla de particiones real, cuando se solicitó 0-0-1). |
65H |
Novell NetWare 3.86, 3.xx o 4.xx
(Novell Netware 3.0 y versiones posteriores utilizan una partición por unidad. Asigna volúmenes lógicos dentro de estas particiones. Los volúmenes se pueden dividir en varias unidades. El sistema de archivos utilizado se llama Turbo FAT y solo se parece vagamente al sistema de archivos FAT de DOS. Novell Netware solía ser el principal sistema operativo de red disponible. Netware 68 o S -Net (1983) era para un Motorola 68000, Netware 86 para un Intel 8086 o 8088. Netware 286 era para un Intel 80286 y existía en varias versiones que luego se fusionaron con Netware 2.2. Netware 386 fue una reescritura en C para Intel 386, que luego se renombró como Netware 3.x ( 3.0, 3.1, 3.10, 3.11 y 3.12, etc.) versiones. Su sucesor Netware 4.xx tuvo versiones 4.00, 4.01, 4.02, 4.10 y 4.11. Luego vino Intranetware) |
66H |
Partición SMS de Novell Netware
(SMS significa Servicios de administración de almacenamiento. No se usa ahora.) |
67H |
Novell |
68H |
Novell |
69H |
Novell Netware 5+ y Partición NSS de Novell Netware
(NSS significa Servicios de almacenamiento de Novell). |
70H |
Arranque múltiple de DiskSecure |
71H |
Incluido oficialmente como reservado |
73H |
Incluido oficialmente como reservado |
74H |
Incluido oficialmente como reservado |
74H |
Partición de scramdisk
(Scramdisk es un software de cifrado de disco. Admite archivos contenedores, particiones dedicadas tipo 74H y discos ocultos en archivos de audio WAV.) |
75H |
IBM PC/IX |
76H |
Incluido oficialmente como reservado |
77H |
Partición M2FS/M2CS |
77H |
QNX 4.x |
78H |
Sistema de archivos XOSL
(XOSL sistema de archivos del cargador de arranque) |
78H |
QNY 4.x |
79H |
QNZ 4.x |
7EH |
F.I.X. |
7Fh |
Alt-OS-Development Partition Standard |
80H |
MINIX antiguo, MINIX v1.1 a v1.4a |
81H |
MINIX 1.4b y posterior
(MINIX es un sistema operativo similar a Unix escrito por Andy Tanenbaum y estudiantes de la Universidad Vrije, Amsterdam, alrededor de 1989-1991. Funciona en PC (8086 y superiores), Macintosh, Atari, Amiga, Sparc. |
81H |
Principios de Linux |
81H |
Administrador de discos avanzado de Mitac |
82H |
Principal |
82H |
Solaris x86
(Solaris crea una sola partición con ID 82H y luego usa las etiquetas de disco de Sun dentro de la partición para dividirla aún más). |
82H |
Partición de intercambio de Linux |
83H |
Partición nativa de Linux o sistema de archivos nativo de Linux o Linux Ext2fs
(Linux es un sistema operativo similar a Unix escrito por Linus Torvalds y muchos otros en Internet desde 1991. Se ejecuta en PC 386 y posteriores y en una variedad de otro hardware. Se distribuye bajo GPL (Licencia pública general). Varios sistemas de archivos tipos como xiafs, ext2, ext3, reiserfs, etc. todos usan ID 83H). |
84H |
OS/2 oculto C: unidad o OS/2-renumerada partición de tipo 04.
(La partición OS/2-renumerada tipo 04hestá relacionada con la ocultación de la unidad C: de DOS) |
84H |
Partición de hibernación
(Informado para varios modelos de portátiles, por ejemplo, utilizados en Dell Latitudes (con Dell BIOS) que utilizan la utilidad MKS2D). |
85H |
Partición extendida de Linux |
86H |
Antiguo superbloque de partición RAID de Linux |
86H |
Conjunto de bandas/volumen FAT16 (Windows NT) o conjunto de volumen NTFS
(Es un volumen FAT16 tolerante a fallas heredado). |
87H |
Partición duplicada tolerante a fallas HPFS o conjunto de volúmenes NTFS o conjunto de volumen/segmentación NTFS
(Volumen NTFS tolerante a fallas heredado. Partición duplicada tolerante a fallas de HPFS. ) |
8aH |
Partición del kernel de Linux
(Es utilizado por AiR-BOOT) |
Indicador del sistema de archivos Byte en hexadecimal |
Partición/Descripción del sistema de archivos |
8bH |
Volumen heredado FAT32 tolerante a fallas |
8 canales |
Volumen FAT32 tolerante a fallas heredado con BIOS Extended INT 13H. |
8dH |
Partición primaria DOS FAT12 oculta FDISK gratuita
(Free FDISK es el FDISK utilizado por FreeDOS. Oculta los tipos 01H, 04H, 05H, 06H, 0BH, 0CH, 0EH y 0FH añadiendo Número decimal 140 (8CH).) |
8eH |
Partición del administrador de volumen lógico de Linux |
90H |
Partición primaria DOS FAT16 oculta FDISK gratuita |
91H |
Partición extendida de DOS oculta FDISK gratuita |
92H |
Partición FAT16 grande de DOS primaria oculta FDISK gratuita |
93H |
Partición nativa oculta de Linux |
93H |
Sistema de archivos Amoeba |
94H |
Tabla de bloques malos de ameba
(Amoeba es un sistema operativo distribuido escrito por Andy Tanenbaum, junto con Frans Kaashoek, Sape Mullender, Robert van Renesse y otros desde 1981. Funciona en PC (386 y superiores), Sun3, Sparc, 68030. Es gratis para universidades para fines de investigación y enseñanza). |
95H |
Partición nativa MIT EXOPC |
97H |
Partición FAT32 primaria oculta FDISK gratuita |
98H |
Partición FAT32 de DOS primaria oculta FDISK gratuita (LBA) |
99H |
Mylex EISA SCSI o unidad lógica DCE376
(Lo utiliza el adaptador Mylex DCE376 EISA SCSI para particiones que superan los 1024 cilindros de una unidad). |
9aH |
Partición FAT16 de DOS primaria oculta FDISK gratuita (LBA) |
9bH |
Partición extendida (LBA) de DOS oculta FDISK gratuita |
9fH |
BSD/OS |
a0H |
Phoenix NoteBIOS Power Management "Save-to-Disk" partición o partición de hibernación de portátiles
(Se informa para varias computadoras portátiles como IBM Thinkpad, Phoenix NoteBIOS, Toshiba con nombres como suspensión de cero voltios partición, partición suspender en disco, partición guardar en disco, partición de administración de energía, hibernación partición, normalmente al principio o al final del área del disco.) |
a1H |
Partición de hibernación de portátiles
(Se usa como partición "Guardar en disco" en una computadora portátil NEC 6000H. Los tipos A0H y A1H se usan en sistemas con BIOS Phoenix. La utilidad Phoenix PHDISK se utiliza con estos.) |
a1H |
Expansión de volumen de HP (variante SpeedStor) |
a3H |
Incluido oficialmente como Reservado |
a4H |
Incluido oficialmente como Reservado |
a5H |
BSD/386, 386BSD, NetBSD, FreeBSD
(386BSD es un sistema operativo similar a Unix, un puerto de 4.3BSD Net/2 para PC realizado por Bill Jolitz alrededor de 1991). |
a6H |
OpenBSD
(OpenBSD, dirigido por Theo de Raadt, se separó de NetBSD. Intenta hacer hincapié en la seguridad). |
a7H |
SIGUIENTE PASO
(NEXTSTEP se basa en Mach 2.6 y características de Mach 3.0. Es un verdadero sistema operativo y entorno de usuario orientado a objetos. |
a8H |
Mac OS-X
(OS-X de Apple usa este tipo para su partición del sistema de archivos) |
a9H |
NetBSD |
aaH |
Partición de servicio Olivetti Fat 12 de 1,44 MB
(Contiene un DOS 6.22 simple y una utilidad para intercambiar tipos 06H y AAH en la tabla de particiones). |
abH |
Partición de arranque de Mac OS-X
(OS-X de Apple (Darwin Intel) usa este tipo para su partición de arranque). |
abH |
¡VAMOS! partición |
aeH |
Sistema de archivos ShagOS |
afH |
Partición de intercambio de ShagOS |
b0H |
Ficticio de BootStar
(El gestor de arranque BootStar gestiona su propia tabla de particiones, con hasta 15 particiones primarias. Rellena las entradas no utilizadas en el MBR con valores ficticios de BootStar). |
b1H |
Incluido oficialmente como Reservado |
b3H |
Incluido oficialmente como Reservado |
b4H |
Incluido oficialmente como Reservado |
b6H |
Incluido oficialmente como Reservado |
B6H |
Conjunto espejo de Windows NT (maestro), sistema de archivos FAT16 |
b7H |
Sistema de archivos BSDI (intercambio secundario), sistema de archivos BSDI BSD/386 |
B7H |
Conjunto espejo de Windows NT (maestro), sistema de archivos NTFS |
Indicador del sistema de archivos Byte en hexadecimal |
Partición/Descripción del sistema de archivos |
b8H |
Partición de intercambio BSDI BSD/386 (sistema de archivos secundario)
(BSDI (Berkeley Software Design, Inc.) fue fundada por antiguos miembros de CSRG (UCB Computer Systems Research Group). Su sistema operativo, basado en Net/2, se llamaba BSD/386). |
bbH |
Asistente de arranque oculto |
beH |
Partición de arranque de Solaris 8 |
c0H |
Partición protegida DR-DOS/Novell DOS |
C0H |
CTOS |
c0H |
REAL/32 pequeña partición segura |
c0H |
Partición NTFT |
c1H |
DR DOS 6.0 LOGIN.EXE partición FAT de 12 bits protegida |
c2H |
Reservado para DR-DOS 7+ |
c2H |
Linux oculto |
c3H |
Intercambio oculto de Linux |
c4H |
DR DOS 6.0 LOGIN.EXE partición FAT de 16 bits protegida |
c5H |
DRDOS/asegurado (Extendido) |
c6H |
DRDOS/asegurado (FAT-16, >= 32M)
(DR-DOS 6.0 agregará C0H al tipo de partición para un LOGIN.EXE: partición segura para que el usuario no pueda evitar la verificación de la contraseña al arrancar desde un MS-DOS disquete. De lo contrario, parece que los tipos C1H, C4H, C5H, C6H y D1H strong>, D4H, D5H, D6H se usan precisamente como 1H, 4H , 5H y 6H.) |
c6H |
Conjunto de bandas/volumen FAT16 dañado (Windows NT)
(NTFS agregará C0H al tipo de partición para partes deshabilitadas de un conjunto tolerante a fallas. Por lo tanto, uno obtiene los tipos C6H, C7H.) |
c7H |
Conjunto de bandas/volumen NTFS corrupto de Windows NT |
c7H |
Bota Syrinx |
c8H |
Incluido oficialmente como Reservado |
c9H |
Incluido oficialmente como Reservado |
caH |
Incluido oficialmente como Reservado |
cbH |
Reservado para DR-DOS FAT32 seguro |
CCH |
Reservado para DR-DOS protegido FAT32 (LBA) |
cdH |
Volcado de memoria CTOS |
ceH |
Reservado para DR-DOS protegido FAT16 (LBA) |
d0H |
PARTICIÓN GRANDE SEGURO REAL/32
(REAL/32 es una continuación de DR Multi-usuario DOS.) |
d1H |
Antiguo DOS multiusuario protegido FAT12 |
d4H |
Antiguo DOS multiusuario protegido FAT16 <32M |
d5H |
Partición extendida segura multiusuario DOS antigua |
d6H |
Antiguo DOS multiusuario protegido FAT16 >=32M |
d8H |
CP/M-86 |
daH |
Datos que no son FS |
dbH |
Investigación digital CP/M, CP/M concurrente, DOS concurrente |
dbH |
CTOS (SO de Tecnologías Convergentes -Unisys) |
dbH |
Botín SCPU de telemetría KDG
(KDG Telemetry utiliza ID DBH para almacenar una imagen binaria en modo protegido del código que se ejecutará en un módulo SCPU (CPU de supervisión) basado en x86 de la gama DT800 .) |
ddH |
Memdump de CTOS oculto |
deH |
Utilidades del servidor Dell PowerEdge (FAT) |
dfH |
Partición del administrador de disco virtual DG/UX |
dfH |
BootIt EMBRM
(El administrador de arranque BootIt administra su propia tabla de particiones, con hasta 255 particiones primarias). |
e0H |
Reservado por ST Microelectronics para un sistema de archivos denominado ST AVFS. |
e1H |
Acceso DOS o partición extendida SpeedStor FAT de 12 bits
(Es una partición SSTOR en cilindros más de 1023.) |
E2H |
DOS de solo lectura |
e3H |
Dimensiones de almacenamiento |
e4H |
Partición extendida SpeedStor FAT de 16 bits < 1024 cilindros |
e5H |
Incluido oficialmente como Reservado |
e5H |
Tandy DOS con FAT lógico sectorizado |
e6H |
Incluido oficialmente como Reservado |
ebH |
BeOS BFS (BFS1)
(BeOS es un sistema operativo que se ejecuta en Power PC) |
edH |
Reservado para Sprytix de Matthias Paul |
eeH |
Indicación de que este MBR heredado va seguido de un encabezado EFI |
efH |
Partición que contiene un sistema de archivos EFI |
f0H |
Cargador de arranque Linux/PA-RISC |
f1H |
Dimensiones de almacenamiento |
f2H |
Partición secundaria de DOS 3.3+ |
f2H |
Unisys DOS con FAT lógica sectorizada |
f3H |
Incluido oficialmente como Reservado |
f4H |
Partición grande de SpeedStor |
F4H |
Partición Prologue de un solo volumen |
Indicador del sistema de archivos Byte en hexadecimal |
Partición/ Sistema de archivos Descripción |
f5H |
Partición de varios volúmenes de Prologue
(La partición de tipo F4H contiene un volumen y ya no se usa. La partición de tipo F5H contiene de 1 a 10 volúmenes llamados MD0 a MD9. Soporta uno o más sistemas. Cada volumen puede tener como sistema de archivos el sistema de archivos NGF o el sistema de archivos TwinFS. ) |
f6H |
Incluido oficialmente como Reservado |
F6H |
Dimensiones de almacenamiento SpeedStor |
faH |
Emulador x86 Bochs de MandrakeSoft |
fbH |
Partición del sistema de archivos de VMware |
fcH |
Partición de intercambio de VMware
(VMware ofrece máquinas virtuales en las que se puede ejecutar Linux, Windows, FreeBSD.) |
fdH |
Partición raid de Linux con detección automática usando superbloque persistente |
feH |
SpeedStor más de 1024 cilindros |
feH |
paso LAN |
feH |
Partición IBM PS/2 IML (carga inicial de microcódigo)
(Se encuentra al final del disco.) |
feH |
Partición oculta del Administrador de discos de Windows NT
(El Administrador de discos de Windows NT marca las particiones ocultas, es decir, presentes pero a las que no se puede acceder, como tipo FEH). |
feH |
Partición de Linux Logical Volume Manager (antiguo) |
ffH |
Tabla de bloques defectuosos de XENIX |
Registro de arranque de DOS (DBR) / Sector de arranque de DOS
Después de la tabla de particiones, el Registro de arranque de DOS (DBR) o, a veces, llamado Sector de arranque de DOS es la segunda información más importante en su disco duro. La mayoría de las aplicaciones comerciales para la recuperación de discos son capaces de regenerar registros de arranque destruidos
El Registro de arranque de DOS (DBR) para la primera partición en un disco duro generalmente se encuentra en Absolute Sector 63 (el sector 64 en la unidad de disco) o en forma CHS podemos decir C–H–S = 0–1–1 para la mayoría de las unidades.
Sin embargo, esta ubicación puede variar según el SPT (sectores por pista) de la unidad. Por ejemplo, en una unidad antigua de 245 MB que solo tenía 31 SPT, el registro de arranque estaba ubicado en el sector 32 (sector absoluto 31).
El DBR es creado por el comando FORMAT de DOS. Este programa se puede ejecutar desde un disquete de DOS (o directamente desde otro volumen, siguiendo algunos límites del sistema operativo) para crear el DBR después de realizar la partición con el comando FDISK.
El sector en el que reside DBR se convierte en el sector lógico 1 de esa partición en particular para el DOS. El número de sector utilizado por DOS comienza en el sector físico en el que se encuentra DBR.
El primer sector lógico de cada partición de DOS contendrá un registro de arranque de DOS (DBR) o un sector de arranque de DOS. El trabajo del DBR es cargar el sistema operativo desde el disco duro a la memoria principal de la computadora y dar el control del sistema al programa cargado.
Para hacer esto, el DBR contiene un pequeño programa que es ejecutado por el programa ejecutable Master Boot Record (MBR). Todas las particiones de DOS contienen el código del programa para iniciar la máquina, es decir, cargar el sistema operativo, pero el Registro de inicio maestro solo le da control a esa partición, que se especifica como partición activa, en la entrada de la tabla de particiones.
El programa de arranque en DBR busca los dos archivos de programa IBMBIO.COM o IO.SYS e IBMDOS.COM o MSDOS.SYS, en el directorio raíz de la partición. IBMBIO.COM e IBMDOS.COM son dos archivos de programa de sistema ocultos en los sistemas PC-DOS o en los sistemas IBM originales. Mientras que IO.SYS y MSDOS.SYS son dos archivos de programa de sistema ocultos en un sistema operativo MS-DOS provisto con sistemas compatibles con IBM.
Después de eso, el programa IO.SYS (o IBMBIO.COM) carga el programa MSDOS.SYS (o IBMDOS.COM) y el programa COMMAND.COM. Este proceso completo se llama "arranque" de la computadora. Si estos archivos del sistema no están disponibles en el directorio, este programa MBR muestra mensajes de error tranquilizadores como,
“Invalid system disk or Disk I/O error,
Replace the disk, and then press any key…”
En la pantalla y espera a que el usuario coloque un disco de arranque con los programas mencionados anteriormente en la disquetera y presione una tecla.
Dado que el disquete no tiene particiones, no tiene MBR ni tabla maestra de particiones en su sector absoluto 0, sino que contiene el DBR en su primer sector.
La siguiente tabla proporciona un mapa simple del diseño de un disquete de 3½ pulgadas y 1,44 MB después de haber sido formateado con el sistema de archivos FAT12. Muestra donde se encuentran el Registro de Arranque, ambas copias de la FAT, el Directorio Raíz y el inicio del Área de Datos:
Mapa lógico de 3½ pulgadas, disquete de 1,44 MB, formateado con el sistema de archivos FAT12 y con 18 sectores por pista, 80 pistas, 2 caras y 512 bytes por sector (usando 1 sector por clúster). |
Sectores absolutos |
Contenido |
0 |
Registro de arranque |
1 – 9 |
GRASA 1 |
10 – 18 |
FAT 2 |
19 - 32 |
Directorio raíz |
33 – 2879 |
Área de datos |
También puede crear subdirectorios en el Área de datos con archivos que parecen estar contenidos dentro de ellos. De hecho, los subdirectorios no son más que un archivo especial que enumera todos los archivos aparentemente contenidos dentro de este directorio y todos los datos relevantes sobre cada archivo, como la ubicación del clúster de inicio de cada archivo, la fecha, la hora y el tamaño del archivo, etc.
El DBR también contiene información importante sobre la geometría del disco. Esta información se encuentra en el primer sector de cada partición, como:
- Código de salto + NOP
- Nombre y versión del OEM
- Bytes por sector
- Sectores por clúster
- Sectores reservados
- Número de copias de FAT
- Entradas máximas del directorio raíz (pero no disponible para FAT32)
- Número de sectores en la partición de menos de 32 MB (por lo tanto, no disponible para FAT32)
- Descriptor de medios (F8h para discos duros)
- Sectores por FAT (en sistemas FAT anteriores y no disponible para FAT32)
- Sectores por pista
- Número de cabezas
- Número de sectores ocultos en la partición
- Número de sectores en la partición
- Número de sectores por FAT
- Banderas de descripción de información FAT
- Versión de la unidad FAT32
- Número de clúster del inicio del directorio raíz
- Número de sector del sector de información del sistema de archivos
- Número de sector del sector de arranque de respaldo
- Reservado
- Número de unidad lógica de partición
- Firma Extendida (29H)
- Número de serie de la partición
- Nombre del volumen de la partición
- Nombre FAT
- Código ejecutable
- Marcador ejecutable o número mágico (AAH 55H)
Los primeros 3 bytes de DBR contienen una instrucción JMP para omitir la información y hacer posibles las extensiones porque el MBR carga este sector en la memoria y le transfiere la ejecución. Por lo general, estos tres bytes son números hexadecimales en formato algo así como E9 XX XX (Hex) o EB XX 90 (Hex).
Siguiendo la instrucción JMP inicial, el ID de OEM es un campo de 8 bits reservado por Microsoft para la identificación de OEM. El ID de OEM describe el programa que creó el registro de inicio. Suele ser "MSWIN4.0" para Windows 95/98/ME, "IBM 20.0" para OS/2 y "MSDOS5.0" para MS-DOS 4.0 y posterior.
El tercer componente principal del sector de arranque es el bloque de parámetros del BIOS (BPB). El bloque de parámetros del disco es un área de datos muy importante para DOS. Ayuda al DOS a encontrar:
- Bytes por sector
- Sectores por clúster
- Sectores reservados
- Número de FAT
- Número de entradas del directorio raíz
FAT32 DOS Boot Record Format |
Offset |
Description |
Size |
00H |
Jump Code + NOP |
3 Bytes |
03H |
OEM Name and Version |
8 Bytes |
0BH |
Bytes Per Sector |
2 Bytes |
0DH |
Sectors Per Cluster |
1 Byte |
0EH |
Reserved Sectors |
2 Bytes |
10H |
Number of Copies of FAT |
1 Byte |
11H |
Maximum Root Directory Entries (but Not Available for FAT32) |
2 Bytes |
13H |
Number of Sectors in Partition Smaller than 32MB (Therefore Not Available for FAT32) |
2 Bytes |
15H |
Media Descriptor (F8H for Hard Disks) |
1 Byte |
16H |
Sectors Per FAT (In Older FAT Systems and Not Available for FAT32) |
2 Bytes |
18H |
Sectors Per Track |
2 Bytes |
1AH |
Number of Heads |
2 Bytes |
1CH |
Number of Hidden Sectors in Partition |
4 Bytes |
20H |
Number of Sectors in Partition |
4 Bytes |
24H |
Number of Sectors Per FAT |
4 Bytes |
28H |
Flags (Bits 0-4 Indicate Active FAT Copy) (Bit 7 Indicates whether FAT Mirroring is Enabled or Disabled <Clear is Enabled>) (If FAT Mirroring is Disabled, the FAT Information is only written to the copy indicated by bits 0-4) |
2 Bytes |
2AH |
Version of FAT32 Drive (High Byte = Major Version, Low Byte = Minor Version) |
2 Bytes |
2CH |
Cluster Number of the Start of the Root Directory |
4 Bytes |
30H |
Sector Number of the File System Information Sector (Referenced from the Start of the Partition) |
2 Bytes |
32H |
Sector Number of the Backup Boot Sector (Referenced from the Start of the Partition) |
2 Bytes |
34H |
Reserved |
12 Bytes |
40H |
Logical Drive Number of Partition |
1 Byte |
41H |
Unused (Could be High Byte of Previous Entry) |
1 Byte |
42H |
Extended Signature (29H) |
1 Byte |
43H |
Serial Number or 32 – Bit Binary ID of Partition
(Binary ID of 32 Bits provided by the OS itself) |
4 Bytes |
47H |
Volume Name of Partition |
11 Bytes |
52H |
FAT Name (FAT32 in this case) |
8 Bytes |
5AH |
Executable Code |
420 Bytes |
1FEH |
Executable Marker or Magic Number (AAH 55H) |
2 Bytes |
- Sectores totales en volumen lógico (pequeño, para tamaño de volumen lógico inferior o igual a 32 MB)
- Byte de descriptor de medios
- Número de sectores por FA
Esta información nos ayuda a encontrar la ubicación de FAT y algunos otros valores importantes. Poner información incorrecta aquí o corromper estos valores hace imposible el arranque desde la unidad de disco duro. A veces, tener información incorrecta en el bloque de parámetros del disco impedirá el arranque desde la unidad de disco duro y desde la unidad de disquete.
Los bytes por sector casi siempre son 512. Si no es así, debe ser una potencia entera de 2 (por ejemplo, 64, 128 y 256).
La cantidad de sectores por clúster depende del tamaño del clúster. (Vea la sección de Clústeres dada en este capítulo anteriormente). El número de copias de FAT es casi siempre 2.
Número de directorios raíz: Depende del sistema de archivos y del tamaño del volumen. (Consulte los límites del sistema de archivos proporcionados antes y la descripción del directorio raíz a continuación).
Número total de sectores: excluye los sectores ocultos. Si es 0 en el BPB, se utiliza el campo de la información del registro de arranque ampliado y viceversa. Tenga en cuenta que es posible determinar si la información extendida (DOS 4.0 y posterior) está disponible examinando el byte de firma en el desplazamiento 26H.
Todos los sectores anteriores al sector de arranque de una unidad lógica de DOS se consideran sectores 'ocultos'. El DOS no interpreta los sectores ocultos. Las unidades de disquete normales tienen 0 sectores ocultos. Las particiones del disco duro tendrán un número que reflejará su ubicación en el disco. Tenga en cuenta que toda la primera cabeza del primer cilindro generalmente se reserva para la tabla de partición, aunque solo se usa el primer sector.
Descriptor de medios: se utiliza para dar una indicación del tipo de medio o disco. Los valores normales son 0 para una partición DOS extendida y F8H para un disco duro. Los valores de Media Descriptor Bytes se proporcionan en la siguiente tabla.
Media Descriptors |
Type |
Capacity |
Size and type |
F0H |
2.88 MB |
3.5", 2-Sided, 36 Sectors per Track |
F0H |
1.44 MB |
3.5", 2-Sided, 18 Sectors per Track |
F9H |
720 KB |
3.5", 2-Sided, 9 Sectors per Track |
F9H |
1.2 MB |
5.25", 2-Sided, 15 Sectors per Track |
FDH |
360 KB |
5.25", 2-Sided, 9 Sectors per Track |
FFH |
320 KB |
5.25", 2-Sided, 8 Sectors per Track |
FCH |
180 KB |
5.25", 1-Sided, 9 Sectors per Track |
FEH |
160 KB |
5.25", 1-Sided, 8 Sectors per Track |
F8H |
--------- |
Fixed Disk |
Número de Sectores de FAT: Debe ser calculado. El método para calcular el tamaño de FAT se proporciona en la descripción de FAT proporcionada en el capítulo.
El DBR de un sistema de archivos FAT32 se muestra en la siguiente figura:
Sectores por pista (o sectores por cabeza): Sectores por cabeza es el número de sectores agrupados bajo una cabeza. Asimismo, Cabezas por cilindro refleja el número de cilindros por cabeza. Si esta partición es una partición CHS, estos valores deben ser los mismos que devuelve el BIOS. Si no son iguales, debes considerar que el disco ha sido mal configurado y que la partición puede estar inutilizable.
Sectores ocultos: como ya hemos discutido, esta es la cantidad de sectores en el disco físico que preceden al inicio del volumen, antes del propio sector de arranque. Se utiliza durante la secuencia de arranque para calcular el desplazamiento absoluto al directorio raíz y las áreas de datos. Piense en ello como el número de sectores entre el comienzo de esta partición y la tabla de particiones en sí.
Este campo debe ser el mismo que el "número de sectores que preceden a la partición" en la tabla de particiones. Tenga en cuenta que no es necesariamente la dirección LBA física del primer sector, ya que pueden existir particiones secundarias.
Si los sectores ocultos no son los mismos que en la tabla de particiones, puede considerar que el sector de arranque está dañado y que la partición no se puede utilizar. Tenga en cuenta también que la palabra alta generalmente contiene basura en versiones antiguas de DOS.
Si sospecha que un sector de inicio se ha dañado, puede verificar varios de los campos enumerados anteriormente para ver si los valores enumerados allí tienen sentido.
Por ejemplo, los bytes por sector serán 512 en la gran mayoría de los casos. También puede esperar ver cadenas de texto en la sección de código ejecutable del sector de arranque que son apropiadas para el sistema operativo que formateó el disco.
Por ejemplo, las cadenas de texto típicas en volúmenes FAT formateados por MS-DOS incluyen: "Disco de sistema no válido", "Error de E/S del disco", "Reemplace el disco y luego presione cualquier tecla", "Disco que no es del sistema o error de disco", "Reemplazar y presione cualquier tecla cuando esté listo". y "Error de arranque del disco." Las cadenas de texto en volúmenes FAT formateados por Windows NT incluyen: "ARRANQUE: No se pudo (o no se pudo) encontrar NTLDR", "Error de E/S al leer el disco" e "Inserte otro disco".
Pero recuerde que no debe considerar que esta lista incluye todo. Si encuentra otros mensajes en el sector de arranque, esto no indica necesariamente que haya un problema con el sector de arranque. Las diferentes versiones de MS-DOS y Windows NT a veces pueden tener cadenas de mensajes ligeramente diferentes en sus sectores de arranque.
Por otro lado, si no encuentra ningún texto, o si el texto claramente no está relacionado con MS-DOS o Windows NT, debe considerar la posibilidad de que su sector de arranque haya sido infectado por un virus o que algún Es posible que se haya producido otra forma de corrupción de datos.
Para recuperarse de un sector de arranque que ha sido infectado por un virus, generalmente es mejor usar un programa antivirus comercial. Muchos virus y troyanos harán mucho más que simplemente escribir datos en el sector de arranque, por lo que no se recomienda la reparación manual del sector de arranque, ya que es posible que no elimine completamente el virus o el troyano y, en algunos casos, puede hacer más daño que bien. Sin embargo, vamos a tratar con DBR en la sección de programación de este libro.
Si sospecha que el sector de arranque se dañó por algún otro motivo, es posible recuperarse del daño del sector de arranque sin volver a formatear la unidad modificando manualmente los campos descritos anteriormente. Intentaremos superar tales problemas con la programación en técnicas de programación de recuperación en este libro.
Tabla de asignación de archivos (FAT)
Después de DBR están las tablas de asignación de archivos. La tabla de asignación de archivos (FAT) se introdujo en 1977 para almacenar datos en disquetes para el disco básico independiente de Microsoft. El FAT se ha modificado varias veces para adaptarse a las necesidades de expansión. Fue desarrollado para cumplir con los requisitos de un sistema rápido y flexible para administrar datos en medios extraíbles y fijos.
En 1996, FAT32 se introdujo con Windows 95 OSR2. Como comentamos anteriormente, Windows 98/ME admite FAT32 con el tamaño de los discos duros. Ahora, con estos sistemas operativos, se usa comúnmente el sistema de archivos FAT32.
El primer sistema de archivos FAT de DOS (DOS 1.x) usaba un sistema FAT de 12 bits que todavía se usa hoy en día para disquetes. DOS 2.x agregó soporte para discos duros, cambió a entradas FAT de 16 bits debido a volúmenes más grandes.
Alrededor de 1987, DOS 4.0 cambió el manejo de sectores de bajo nivel para usar parámetros de 32 bits para superar el problema de soporte de discos grandes, como ya hemos discutido las limitaciones de los sistemas de archivos.
FAT mantiene un mapa de la superficie completa de la unidad de disco de modo que, qué área está libre, qué área es mala, qué área está ocupada por qué archivo, etc. Cuando se accede a algunos datos almacenados en la superficie del disco , el DOS consulta la FAT para averiguar las áreas de la superficie del disco duro que contienen los datos.
El tipo de FAT a utilizar lo decide el programa FDISK durante la partición del disco duro. Pero la FAT real está escrita por el programa FORMAT de DOS.
La FAT no realiza un seguimiento de todos y cada uno de los sectores en la superficie del disco, sino que administra el área del disco en un grupo de sectores llamado "clúster" o "unidad de asignación" (consulte el Clúster discutido anteriormente, en el mismo capítulo).
Un clúster es la unidad más pequeña de espacio en el disco duro que DOS asigna a un archivo; consta de uno o más sectores según el tamaño de la unidad. El tamaño del clúster lo decide y fija el programa DOS FORMAT durante el formateo de alto nivel de la unidad de disco duro. (Consulte la discusión sobre el "tamaño de los conglomerados", anterior)
En realidad, la FAT es un índice de los clústeres de todo el volumen. El FAT tiene una entrada para cada grupo. Las dos primeras entradas de una FAT contienen información sobre la FAT. La tercera entrada y las subsiguientes en la FAT se asignan a grupos de espacio en disco, comenzando con el primer grupo disponible para uso de archivos
Debido a que FAT es un elemento tan importante, DOS conserva dos copias de FAT, FAT principal o FAT1 y FAT o FAT2 secundaria (normalmente hay dos copias, sin embargo, muchos sistemas operativos nuevos crean más de dos copias de FAT).
Cada FAT ocupa sectores contiguos en el disco, con la 2.ª FAT inmediatamente después de la 1.ª FAT, no hace que el DOS utilice la 2.ª FAT para corregir el problema; en cambio, cuando se actualiza la 1.ª FAT, el DOS la copia a la 2.ª FAT, corrompiendo la 2.ª FAT como bueno, en el proceso.
Esta actualización se realiza cada vez que DOS encuentra que la 1.ª y la 2.ª FAT no coinciden. Por lo tanto, en caso de corrupción de la 1.ª FAT, se debe realizar la reparación inmediatamente utilizando algún software de edición de disco y comparando la 1.ª FAT con la 2.ª FAT. Esto debe hacerse antes de que DOS copie la FAT corrupta a la segunda FAT.
Con la introducción de FAT32, tanto las entradas FAT como la numeración de sectores ahora son de 32 bits. Eso significa que ahora hay 4 294 967 296 valores distintos de 32 bits multiplicados por 512 bytes por sector, lo que da como resultado 2 terabytes (2 199 023 255 552 bytes) como el tamaño de disco máximo posible en FAT32.
El tamaño de la entrada de directorio para cada archivo en FAT 32 es de 4 bytes para contener el valor del clúster de inicio del archivo en lugar de los 2 bytes necesarios en FAT16. El valor más grande acomoda la mayor cantidad de clústeres posibles.
Tradicionalmente, cada entrada de directorio es un registro de 32 bytes, y sigue siendo el mismo. En el medio del registro del directorio hay 10 bytes (bytes 12 a 21) que Microsoft ha reservado para su propio uso futuro. Dos de esos bytes ahora se usan para acomodar los bytes adicionales necesarios para especificar el clúster inicial en FAT32.
Como ya hemos comentado, ha habido versiones de FAT de 12, 16 y 32 bits. Mientras que FAT de 32 bits permite un almacenamiento mucho más eficiente que puede ser hasta un 30 % más eficiente y el uso de discos duros más grandes.
Cuando un programa invoca el sistema de archivos de un sistema operativo para encontrar el contenido de un archivo, el primer valor de clúster, en la entrada de directorio para ese archivo, se lee y se usa para encontrar la cadena FAT. La cadena FAT es la lista de clústeres que contienen datos pertenecientes a un archivo.
Unidad FAT32 Diseño |
Compensación |
Descripción |
Inicio de partición |
Sector de arranque |
Inicio de partición + Número de sectores reservados |
Tablas FAT |
Inicio de partición + Número de sector reservado + (Número de sectores por FAT * 2)
[Asumiendo que FAT Mirroring está Habilitado, esto casi siempre es cierto] |
Directorio raíz |
Inicio de partición + Número de sectores reservados + (Número de sectores por FAT * 2) + Número de sectores en el directorio raíz |
Área de datos |
Las entradas FAT pueden contener valores que indican:
- El siguiente grupo en una cadena FAT para un archivo determinado
- Los clústeres libres, es decir, los clústeres que no están en uso por ningún archivo
- La información de los sectores defectuosos, es decir, el clúster que contiene uno o más sectores que están dañados físicamente y no deben usarse.
- El grupo final de un archivo
Entries of FAT Table |
Number (Hex.) |
Description |
0 |
Free cluster |
???? |
Cluster in use, next cluster in chain |
FF0-FF6 / FFF0-FFF6 |
Cluster is reserved |
FF7 /FFF7 |
Cluster contains bad sectors |
FF8-FFF / FFF8-FFFF |
End of file |
Cada entrada FAT representa una dirección de clúster y contiene un puntero a la siguiente dirección de clúster (entrada FAT) para el archivo. La última entrada FAT de un archivo contiene el valor de clúster final en lugar de un puntero. Las dos primeras entradas de una FAT contienen información sobre la FAT. Estos bytes de la FAT contienen un byte descriptor de medios. Este byte se puede usar para encontrar el tipo de medio de disco del que es esta entrada FAT.
La tercera entrada y las subsiguientes en FAT se asignan a grupos de espacio en disco, comenzando con el primer grupo disponible para uso de archivos. Una entrada FAT puede tener cualquiera de los valores dados en la tabla anterior, según la información que quiera transmitir.
Un 000H en FAT de 12 bits o 0000H en FAT de 16 bits indica que el clúster correspondiente a esta ubicación FAT no está asignado o está vacío. Cualquier valor de FF8H a FFFH en FAT de 12 bits o de FFF8H a FFFFH en FAT de 16 bits indica que este grupo es el último grupo en una cadena de grupos de un archivo.
Valor de FF0H a FF7H en 12 – Bit FAT indica clústeres reservados. Un FF7H en una FAT de 12 bits o FFF7H en una FAT de 16 bits indica que el clúster correspondiente a la ubicación de la FAT es un clúster defectuoso, es decir, básicamente es un clúster que contiene sectores defectuosos. Este clúster no se utiliza para el almacenamiento de datos.
Cualquier otro valor en la tabla FAT es un puntero al siguiente grupo en la cadena de asignación de archivos.
Cómo detecta Windows el apagado incorrecto
Es algo muy común y espero que lo hayas notado muchas veces al usar Windows que si hay algún error: el apagado de tu computadora, debido a cualquier motivo, como falla de energía, software dañado, apagado accidental, etc., cuando reinicie su computadora, el mensaje de Incorrecto - Apagado se muestra en la pantalla durante el proceso de arranque y el sistema operativo escanea el disco en busca de errores.
Las siguientes dos figuras muestran los 256 bytes del comienzo de una FAT de 32 bits; sin embargo, solo necesitamos los 8 bytes iniciales para discutir esto.
En realidad, cuando el sistema operativo Windows se ha cargado en la memoria, es decir, Windows se ha iniciado, el octava byte (o desplazamiento 7H) de FAT se convierte en 07H o F7H de 0FH o FFH.
Microsoft usa el byte 0FH solo para el volumen que contiene el sistema operativo en ejecución y el byte FFH para cualquier otro volumen al que accede.
Una vez que Windows comienza a arrancar, el octava byte se cambia a 07H o F7H, que se volverá a establecer en 0FH o FFH solo si Windows se apaga correctamente.
Si hay un corte de energía, si el interruptor de encendido de la computadora se apaga accidentalmente o si el sistema se reinicia manualmente debido a algún problema de software, este byte permanecerá como 07H o F7H, lo que informa al sistema operativo de Windows cuándo será el próximo vez que se arranca, hubo algún tipo de apagado incorrecto y luego Windows usa su programa de escaneo de disco (Scandisk) para verificar si hay errores en el disco.
Directorio raíz
Después de la última FAT está el directorio raíz. El directorio raíz es como una tabla de contenido para la información almacenada en la unidad de disco duro. La ubicación del Directorio Raíz se puede establecer fácilmente sumando los valores del registro de inicio, ya que se ubica siguiendo las FAT.
El área del directorio mantiene la información sobre el nombre del archivo, la fecha y la hora de creación del archivo, el atributo del archivo, el tamaño del archivo y el grupo inicial del archivo en particular. Cada entrada de directorio que describe esta información sobre un archivo es una información de 32 bytes.
El directorio raíz contiene información sobre los archivos y directorios que se ramifican desde el directorio raíz. Todos los demás directorios se almacenan como archivos, en el mismo formato que el directorio raíz. Anteriormente, el directorio raíz solía tener un tamaño fijo y estar ubicado en una posición fija en el disco, pero ahora es libre de crecer según sea necesario, ya que ahora se trata como un archivo.
La cantidad de archivos que se pueden almacenar en el directorio raíz depende del tipo de FAT que se utilice. Por ejemplo, para un disquete de 1,44 Mb de 3½ pulgadas con FAT de 12 bits, está limitado a 224 entradas, si uno intenta almacenar el archivo 225, DOS mostrará un "Error de creación de archivo". Cuando se utiliza una FAT de 16 bits, se pueden tener un total de 512 entradas en el directorio raíz. Cada directorio principal en un disquete o disco duro también actúa como una entrada de directorio raíz.
La siguiente tabla enumera los límites de las entradas raíz para diferentes medios y FAT:
Descripción del sistema de archivos y medios |
Entradas máximas del directorio raíz |
FDD de 180 000 de 5¼ pulgadas de un solo lado |
64 |
Doble cara 5¼ pulgadas 320K FDD |
64 |
Doble cara 5¼ pulgadas 360K FDD |
112 |
Doble cara 3½ pulgadas 720K FDD |
112 |
FDD de doble cara de 5¼ pulgadas y 1,2 megabytes |
224 |
FDD de 1,44 megabytes de 3½ pulgadas de doble cara |
224 |
Discos de formato DMF de 1,68 megabytes y 3½ pulgadas de doble cara (¡es por eso que Microsoft creó los archivos CAB!) |
16 |
FDD de doble cara de 3½ pulgadas y 2,88 megabytes |
240 |
Discos duros (FAT12 y FAT16) |
512 |
Discos duros con FAT 32 (ya que trata el directorio de ruta como un archivo) |
65,536 |
Esto no significa que con FAT de 16 bits uno esté limitado a almacenar solo 512 archivos en el disco duro. Se pueden usar subdirectorios para almacenar cualquier cantidad de archivos limitados solo por el tamaño de la unidad.
Recuerde que la etiqueta de volumen de un disquete generalmente se almacena dentro del sector de inicio, pero la etiqueta de volumen de un disco duro se almacena como una entrada del directorio raíz y el espacio reservado en el sector de inicio se deja en blanco con espacios. El comando DIR de DOS devuelve el del directorio si está presente, o el del sector de arranque si no lo está.
Las entradas del directorio contienen la entrada en la cadena de clústeres y el nombre del archivo. Por lo tanto, las entradas de directorio más importantes son las del directorio raíz, ya que contiene índices de clúster que apuntan a todos los subdirectorios.
Todos los directorios contienen dos entradas, "." para el directorio actual (este subdirectorio) y ".." para el directorio principal (directorio principal de este subdirectorio). Podemos rastrear estas entradas fácilmente ya que siempre se colocarán al comienzo de un grupo si el grupo contiene un directorio.
La siguiente tabla muestra el formato de una entrada de directorio en el directorio raíz. La siguiente tabla muestra cómo se dividen los 32 bytes de entrada de directorio de un archivo en el directorio raíz para almacenar la información diversa sobre él:
Compensación |
Tamaño |
Descripción |
00H |
8 bytes |
Nombre de archivo
(Consulte también la siguiente tabla para conocer el significado especial del primer carácter del nombre del archivo) |
08H |
3 Bytes |
Extension |
0BH |
1 Byte |
File attributes(See The Table Of File Attributes) |
0CH |
10 Bytes |
Reserved |
16H |
2 Bytes |
Time Created or Last Updated (See Date–Time Format Table) |
18H |
2 Bytes |
Date Created or Last Updated (See Date–Time Format Table) |
1AH |
2 Bytes |
Starting or First cluster of file
(The value 0000H is used in Parent Directory ('..') entries to indicate that the Parent Directory is the Root Directory) |
1CH |
4 Bytes |
File size in Bytes. |
El nombre del archivo contiene el nombre en mayúsculas y si el tamaño del nombre del archivo es menor que los 8 caracteres, los espacios se rellenan con caracteres de espacio del número ASCII 32. El campo de extensión contiene la extensión del archivo, en mayúsculas.
Si el nombre de archivo tiene más de 8 caracteres, Windows crea un nombre de archivo corto a partir de uno largo truncándolo a seis caracteres en mayúsculas y agregando "~1" al final del nombre de archivo base.
Si ya existe otro nombre de archivo con los mismos primeros seis caracteres, el número se incrementa. La extensión se mantiene igual, y cualquier carácter que fuera ilegal en versiones anteriores de Windows y DOS se reemplaza con un guión bajo.
Los nombres de archivo largos se almacenan en entradas de directorio de nombre de archivo largo (LFN) de 32 bytes especialmente formateadas marcadas con bytes de atributo establecidos en 0FH. Para un archivo o subdirectorio determinado, un grupo de una o más entradas de directorio de nombre de archivo largo precede inmediatamente a la única entrada de directorio 8.3 en el disco.
Cada entrada de directorio LFN contiene hasta 13 caracteres del nombre de archivo largo, y el sistema operativo encadena tantos como sea necesario para formar un nombre de archivo largo completo.
Esta es la causa por la que los nombres de archivo largos disminuyen el número máximo posible de entradas del directorio raíz en un sistema de archivos. Cómo admite Windows los nombres de archivo largos, lo discutiremos en detalle más adelante en este capítulo.
El primer byte del nombre del archivo también puede contener información importante sobre el archivo. La información dada por este byte puede ser una de las dadas en la siguiente tabla:
Primer carácter del nombre de archivo |
Valor |
Significado |
00H |
Indica que esta entrada de directorio no se utiliza. |
05H |
Indica que el primer carácter del nombre del archivo es el carácter E5H Pero, en realidad, el archivo no se ha eliminado. (Ver el Significado de E5H) |
E5H |
El archivo se ha borrado y esta entrada de directorio es una entrada de directorio de un archivo eliminado. El área de datos previamente ocupada por ese archivo ahora está libre para asignarse a otro archivo nuevo. |
2EH |
Este es un subdirectorio. El campo de número de clúster de esta entrada contendrá el número de clúster del directorio. |
2EH 2EH |
Dos 2EH en una entrada de directorio indican la entrada de directorio principal de un subdirectorio. El número de clúster de esta entrada contendrá el número de clúster del directorio principal de este directorio. El número de clúster será cero 0000H si el directorio principal es el directorio raíz. |
Los atributos son un campo codificado en binario de 8 bits. La siguiente tabla informa sobre el estado de la bandera de atributos para el archivo dado:
Bits de atributo |
Atributo |
Bit |
Binario |
Hexadecimal |
Read Only File Flag |
0 |
.......? |
01H |
Hidden File Flag |
1 |
......?. |
02H |
System File Flag |
2 |
.....?.. |
04H |
Volume Label Flag
(Indicates that the entry is a volume label) |
3 |
....?... |
08H |
Sub–directory
(in same format as directory) |
4 |
...?.... |
10H |
Archive Bit
(File Modified Since Last Backup) |
5 |
..?..... |
20H |
Reserved (Contains 0) |
6 |
.0...... |
- |
Reserved (Contains 0) |
7 |
0....... |
- |
Un archivo puede tener múltiples atributos. Por ejemplo, un solo archivo puede ser de solo lectura y oculto, o un solo archivo puede tener ambos atributos, el archivo del sistema y el archivo oculto. (Vea el ejemplo dado a continuación para la codificación de entradas de directorio).
Hora y fecha es un campo especialmente codificado de 32 bits (16 bits de hora y 16 bits de fecha). La división de esta codificación de Bits para componer la Hora de creación o última actualización y la Fecha de creación o última actualización de un Archivo, se ha dado en la siguiente tabla:
La entrada para Hora de creación o Última actualización del archivo, que es el byte 16 y 17 en la entrada del directorio, tiene el formato indicado en la tabla anterior. La codificación es la siguiente:
- H es un número binario por hora, que puede variar de 0 a 23
- M es un número binario por minuto, que puede variar de 0 a 59
- S es un número binario para segundos en incrementos de 2 segundos
- La entrada para los datos de creación o última actualización del archivo, que es el byte 18 y
- 19 en la entrada del directorio, tiene el siguiente formato:
- Y es un número binario entre 0 y 127 o año 1980 a 2107
- M es un número binario para el mes, esto podría variar de 1 a 12
- D es un número binario para la fecha, esto podría variar de 1 a 31
Esta entrada de directorio está vinculada con la entrada FAT según el primer valor de clúster. Una vez que el DOS tiene el valor de clúster de inicio de cualquier archivo del Directorio, el DOS puede encontrar el archivo completo utilizando la FAT. El Cluster de Entrada en la cadena es el primer cluster que compone el archivo. Si se establece el indicador de directorio de atributos, este campo apunta a una nueva entrada de directorio.
La entrada de Tamaño de archivo es 4 Bytes. Con esto podemos calcular cómo FAT32 admite el tamaño máximo de un archivo de hasta 4 294 967 295 Bytes, que es aproximadamente 4 GiB. Los 4 Bytes tienen 32 Bits y el máximo tamaño de Archivo posible compuesto por cualquier Binario de 32 Bits podría ser,
= 11111111 11111111 11111111 11111111 (B) Bytes
= 4,294,967,295 (D) Bytes
~ 4 GiB
Por lo tanto, FAT32 admite el tamaño máximo de archivo de hasta 4 GiB.
El tamaño del archivo y el clúster inicial del archivo pueden ser un recurso valioso para la recuperación de datos en la recuperación de archivos dañados, ya que podemos calcular de cuántos clústeres se supone que consta el archivo.
La figura anterior muestra la entrada del directorio raíz para siete archivos diferentes. La codificación de estas entradas se proporciona en la siguiente tabla:
Nombre de archivo largo (LFN)
Como ya comentamos anteriormente en Discusión sobre el directorio raíz, anteriormente el directorio raíz solía tener un tamaño fijo y estar ubicado en una posición fija en el disco, pero ahora es libre de crecer según sea necesario, ya que ahora se trata como un archivo.
Esto es muy importante para los nombres de archivo largos porque cada nombre de archivo largo usa varias entradas de directorio. Agregar compatibilidad con nombres de archivo largos a un sistema operativo que usa nombres de archivo 8.3 no es tan simple como expandir las entradas del directorio para contener más de 11 caracteres.
Si este nuevo sistema operativo devuelve nombres de archivo de 255 caracteres, muchas aplicaciones antiguas, que esperan recibir no más de 11 caracteres, se bloquearán porque un programa tiene que reservar memoria para almacenar los nombres de archivo que lee, y si reserva 16 bytes para un nombre de archivo y el sistema operativo copia (digamos) 32 caracteres en ese espacio, luego se sobrescriben otros datos. Una forma segura de romper una aplicación es copiar datos aleatorios en su espacio de datos.
Para superar este problema, se encontró una solución inteligente en Windows 95, al problema de admitir nombres de archivo largos mientras se preservaba la compatibilidad con versiones anteriores de DOS y aplicaciones de Windows.
Cuando la mayoría de las aplicaciones (excepto las utilidades de disco de bajo nivel, como Norton Disk Doctor) consultan el sistema en busca de nombres de archivos y subdirectorios, no lo hacen leyendo las entradas de directorio directamente del disco, sino utilizando funciones de enumeración integradas en el sistema operativo. .
Como sabemos, una entrada de directorio se marca con la combinación de bits de atributos de etiqueta de volumen, ocultos, de sistema y de solo lectura. Probablemente, si el byte de atributo de Entrada de directorio tiene el valor 0FH, las funciones de enumeración integradas en todas las versiones existentes de DOS y todas las versiones de Windows anteriores a Windows 95 omitirán esa entrada de directorio como si no estuviera allí.
Entonces, la solución fue almacenar dos nombres para cada archivo y subdirectorio, un nombre corto que sea visible para todas las aplicaciones y un nombre largo que sea visible solo para las aplicaciones de Windows 95 (y versiones posteriores) y para las aplicaciones que se han reescrito para agregar soporte para nombres de archivo largos. Los nombres de archivo cortos se almacenan en formatos 8.3 en entradas de directorio convencionales de 32 bytes.
Ya hemos discutido que Windows crea un nombre de archivo corto a partir de uno largo al truncarlo en seis caracteres en mayúsculas y agregar "~1" al final del nombre de archivo base.
Si ya existe otro nombre de archivo con los mismos primeros seis caracteres, el número se incrementa. La extensión se mantiene igual, y cualquier carácter que fuera ilegal en versiones anteriores de Windows y DOS se reemplaza con un guión bajo.
Los nombres de archivo largos se almacenan en entradas de directorio de nombre de archivo largo (LFN) de 32 bytes especialmente formateadas marcadas con bytes de atributo establecidos en 0FH. Para un archivo o subdirectorio determinado, un grupo de una o más entradas de directorio de nombre de archivo largo precede inmediatamente a la única entrada de directorio 8.3 en el disco.
Cada entrada de directorio de nombre de archivo largo contiene hasta 13 caracteres del nombre de archivo largo, y el sistema operativo encadena tantos como sea necesario para formar un nombre de archivo largo completo.
Para una entrada de directorio de nombre de archivo largo, los nombres de archivo se almacenan en formato Unicode, que requiere 2 bytes por carácter en lugar de 1 byte de ASCII. Los caracteres del nombre de archivo se distribuyen entre tres campos separados:
- Los primeros 10 bytes (cinco caracteres) de longitud,
- Los segundos 12 Bytes (seis caracteres),
- Los terceros 4 Bytes (dos caracteres).
- Los cinco bits más bajos del primer byte de la entrada del directorio contienen un número de secuencia que identifica la posición de la entrada del directorio en relación con otras
- Entradas de directorio de nombre de archivo largo asociadas con el mismo archivo.
Si un nombre de archivo largo requiere tres entradas de directorio LFN, el número de secuencia del primero será 1, el del segundo será 2 y el número de secuencia del tercero será 3 y el bit 6 del primer byte del tercero. La entrada se establece en 1 para indicar que es la última entrada de la secuencia.
El campo de atributo aparece en la misma ubicación en las entradas de directorio LFN que en las entradas de directorio 8.3 porque el sistema de archivos no sabe con qué tipo de entrada de directorio está tratando hasta que examina el byte de atributo. El campo de número de clúster inicial también aparece en la misma ubicación, pero en las entradas del directorio LFN su valor siempre es 0. El campo indicador de tipo también contiene 0 en cada nombre de archivo largo.
Uno de los problemas con los nombres de archivo largos es que consumen más espacio en disco que los cortos. Eso no es gran cosa cuando los nombres largos se almacenan en subdirectorios, porque siempre que haya espacio disponible en el disco, los subdirectorios pueden crecer para acomodar entradas de directorio adicionales, pero la cantidad máxima de entradas de directorio disponibles en el directorio raíz es fija y los nombres de archivo largos se desperdician. espacio en el directorio raíz que tiene un tamaño limitado.
Ahora, por ejemplo, si el directorio raíz de un disco duro contiene como máximo 512 entradas de directorio, porque un nombre de 128 caracteres requiere 11 entradas, 10 para el nombre largo y 1 para el nombre corto, podría crear solo 46 archivos y subdirectorios en el directorio raíz si cada uno tuviera un nombre de 128 caracteres.
El problema desaparece para FAT32 también porque el directorio raíz bajo FAT32 también puede crecer porque en el sistema FAT32 el directorio raíz se trata como un archivo que puede crecer en tamaño.
Área de datos (o Área de archivos)
Después del Directorio Raíz, comienza el Área de Datos (o Área de Archivos). Más bien podemos decir que el resto del volumen después del directorio raíz es el área de datos.
El área de datos contiene los datos reales almacenados en la superficie del disco. DOS usa el número de clúster 2 para el primer sector del área de datos, por lo tanto, debemos tener en cuenta al realizar varios cálculos que el número de clúster debe comenzar desde 2.
Cuando formateamos una unidad de disco duro, el comando FORMAT de DOS no destruye ni sobrescribe los datos en el área de datos. El comando FORMAT solo elimina la entrada del directorio y las entradas FAT y no toca el área de datos real.
Esto hace posible la recuperación de un disco duro formateado accidentalmente, lo que no es posible en todos los casos de disquetes formateados accidentalmente. Como en el formato completo de Windows, el área de datos del disquete se rellena con caracteres F6H y se sobrescribe toda la información.
DOS utiliza un puntero de 16 bits/32 bits denominado puntero de "Último clúster utilizado" (LCU) para almacenar el último número de clúster utilizado. Inicialmente, este valor de puntero es cero, cuando se escribe alguna información en un clúster en particular, ese número de clúster se almacena en el puntero LCU.
Después de esto, cada vez que se va a escribir la nueva información, DOS busca un clúster libre a partir del número de LCU en adelante. Esto obliga a que los nuevos datos escritos en el disco permanezcan contiguos mientras los datos se escriben en el área nueva no utilizada.
Ahora, la comprensión de los datos en caso de una eliminación accidental sería mucho más fácil ya que el archivo se encuentra en un área contigua en el disco. Una vez que se alcanza el final del disco o se restablece el sistema, el valor del puntero de la LCU se restablece a cero.
Pero el problema no dura aquí. Prácticamente no es posible que solo cree archivos nuevos en su disco y nunca elimine o modifique ningún archivo de los almacenados anteriormente. Usar solo LCU tiene problemas si crea y elimina muchos archivos, ya que esto obligará a los nuevos datos a moverse más y más hacia las pistas internas del disco duro.
Por lo tanto, si cualquier archivo, que estaba almacenado en el disco, se mueve o elimina, los clústeres en el área de datos que estaban ocupados por el archivo ahora se configuran como clústeres no asignados disponibles en el área de datos y listos para escribir nuevos datos. en ellos. Al hacer esto, el sistema operativo no necesita mover todos los datos a las pistas internas del disco.
Pero una gran cantidad de eliminación y creación de archivos fragmenta los datos en el disco y esto provoca la fragmentación de los datos.
Datos fragmentados y desfragmentados
Ya hemos discutido que cada archivo en el disco se almacena como una lista enlazada de grupos mediante los cuales los datos contenidos en un archivo pueden ubicarse en cualquier parte del disco. Si tiene un archivo de 10 MB almacenado en un disco que usa clústeres de 4096 bytes, está usando 2560 clústeres. Estos grupos pueden estar en diferentes pistas, diferentes platos del disco, de hecho, pueden estar en cualquier parte.
Aunque un archivo se puede distribuir por todo el disco, esta está lejos de ser la situación preferida. La razón es el rendimiento lento indeseable. Los discos duros son dispositivos relativamente lentos, principalmente porque tienen partes mecánicas. Cada vez que el disco duro tiene que mover los cabezales a una pista diferente, toma un tiempo equivalente a miles y miles de ciclos de procesador.
Por lo tanto, queremos minimizar el grado en que cada archivo se distribuye por el disco. En el caso ideal, cada archivo sería de hecho completamente contiguo. Eso significa que cada clúster que usa se ubicaría uno tras otro en el disco. Esto permitiría leer todo el archivo, si es necesario, sin mucho movimiento mecánico del disco duro.
En realidad, el sistema de archivos comienza con todos o la mayoría de sus archivos contiguos, pero como resultado de la creación y eliminación de archivos durante un período de tiempo, los datos en el disco se fragmentan cada vez más.
Consideremos un ejemplo simple para comprender la fragmentación. La siguiente tabla representa el uso de los 12 clústeres. Inicialmente, la tabla está vacía:
cluster 1 |
cluster 2 |
cluster 3 |
cluster 4 |
cluster 5 |
cluster 6 |
cluster 7 |
cluster 8 |
cluster 9 |
cluster 10 |
cluster 11 |
cluster 12 |
Ahora supongamos que creamos cuatro archivos, Archivo A, B, C y D en este disco. El archivo A toma 1 clúster, el archivo B toma 4, el archivo C toma 2 y el archivo D toma 3. Los almacenamos en el espacio libre disponible y comienzan todos contiguos como se muestra en la siguiente figura:
Después de un tiempo, eliminemos el archivo C y, al hacer esto, los dos grupos que estaban ocupados por el archivo C ahora están libres o sin asignar. Esto deja el disco con el aspecto de la siguiente figura:
Ahora, creamos un nuevo Archivo E que necesita 3 clústeres. Pero, como no quedan bloques contiguos en el disco que tengan 3 grupos de largo, tenemos que dividir E en dos fragmentos, usando parte del espacio que antes ocupaba C. Ahora nuestro disco se verá como la figura que se muestra a continuación. :
Después de un período de tiempo, eliminemos los archivos A y E y creemos el archivo F que ocupa 5 grupos. El disco ahora se parece a la figura que se muestra a continuación:
Ahora vemos que el archivo F termina dividiéndose en tres fragmentos. Este tipo de datos en el disco se denominan datos fragmentados. El ejemplo anterior es un ejemplo muy simplificado de fragmentación, porque los discos reales tienen miles de archivos y miles de clústeres, por lo que el problema se magnifica. Sin embargo, esto te da una idea general de lo que sucede.
Lo que hace un programa de desfragmentación (como el programa DEFRAG de Microsoft, SpeedDisk de Norton) es reorganizar el disco para que los archivos vuelvan a estar en forma contigua. Después de ejecutar la utilidad de desfragmentación del disco, los datos desfragmentados en el disco de los que hablábamos se verán como la figura que se muestra a continuación:
Los datos fragmentados y desfragmentados tienen mucha importancia durante la recuperación de datos, en muchos casos.
Consideremos que tenemos dos discos bloqueados para la recuperación de datos, uno tiene datos fragmentados y el otro se desfragmentó recientemente. Y debe realizar la recuperación de datos recopilando los datos de la superficie de ambos discos, ya que la información FAT y Root de los archivos está dañada. En tal tipo de casos el porcentaje de recuperación será proporcional a la desfragmentación de los datos en el disco.
Obviamente, la recuperación de datos del disco desfragmentado será fácil y el porcentaje de recuperación de datos también será alto pero, por otro lado, la recuperación de datos del disco fragmentado será difícil y llevará mucho tiempo, así como el porcentaje de los datos recuperados también serán decepcionantes.
Identificar la causa de la corrupción de datos
Hay algunos pasos específicos que, si se siguen en secuencia, pueden ayudarnos a encontrar el área de corrupción. Estos pasos se han descrito con el procedimiento de recuperación de la siguiente manera:
Arranque el sistema con disquete de arranque
Arranque su sistema con un disquete o CD de arranque del sistema operativo que estaba usando. Intente leer las unidades lógicas C: o D: o lo que sea. Si se puede acceder a la(s) unidad(es), simplemente copie todos los datos de la unidad. Ahora puede averiguar por qué el disco no se inicia correctamente, con menos estrés.
Verificar la información de MBR
La primera y más importante pieza de datos en el disco duro es el MBR y la tabla que contiene, la tabla de particiones. La herramienta de edición de disco pequeño llamada “TTEDITOR.EXE” se proporciona en el disco incluido con este libro. O puede usar cualquier otro programa para analizar el disco duro.
Diskedit será el programa más adecuado para analizar el disco con fines de recuperación de datos. Bueno, cualquier programa que te parezca fácil de usar está sobre ti. Intente leer MBR y especialmente su tabla de particiones.
Como ha visto en la descripción de MBR, discutida en este capítulo, en la segunda parte de la mitad de MBR, hay un texto legible que se muestra como un mensaje de error por esto, si hay algún problema con él. Estos mensajes de texto se muestran algo así como:
“Invalid partition table, Setup can not continue”
“Error loading operating system, Setup can not continue”
Si estos mensajes de error no están disponibles, esto indica la corrupción de MBR. También puede haber algún mensaje ilegal en lugar de este como, "Su sistema ha sido pirateado por..." o cualquier otro mensaje inesperado. Indica que hay algo gravemente mal con el MBR, y lo más probable es que se deba a alguna infección VIRAL
Ahora revise la tabla de particiones de MBR después de los 446 bytes iniciales. Si la tabla de particiones está en blanco, no verá ningún mensaje de error en el momento del arranque. DOS ignora una unidad no particionada. Si no hay ningún disquete de arranque en la unidad A:, el sistema solicitará que se inserte un disquete de arranque en la unidad A:.
Lo importante a tener en cuenta aquí es que la tabla de particiones no debe estar en blanco en una unidad que funcionaba anteriormente, por lo que algo la borró. Si la tabla de particiones está en blanco, restaure el MBR desde la copia de seguridad.
Si la copia de seguridad no funciona, incluso después de completar con éxito el proceso de restauración, hay daño físico en este sector. Pruebe las técnicas de programación de recuperación de datos, dadas en los siguientes capítulos para recuperar los datos. Si no eres programador en absoluto, mejor acudir a cualquier buen centro de recuperación de datos.
Si no tiene ninguna copia de seguridad de MBR, intente escribir la tabla de particiones manualmente con alguna herramienta de edición de disco, como Diskedit, sin embargo, es muy difícil hacerlo en algunos casos.
Para aquellos usuarios que no son programadores y tampoco tienen ninguna copia de seguridad, pueden usar el método que he estado usando desde el momento en que desarrollé mi proyecto de recuperación de datos, en mis días de universidad.
Lo que tienes que hacer es buscar la computadora cerca de ti, que tenga casi el mismo tamaño de disco, con la misma cantidad de particiones y lo más importante, el mismo sistema operativo que estaba en tu computadora.
Sin embargo, funciona completamente, la mayor parte del tiempo. Pero si no es así, al menos puede ayudarte a acceder a la primera partición de tu disco. Incluso su sistema operativo también se iniciará normalmente, si se instaló en la primera partición y si la otra información no está dañada.
Si MBR está bien, Verifique DBR
Si el MBR está bien, verifique el DBR (Registro de arranque de DOS). Como ya hemos comentado, este es el primer sector en la partición de DOS y contiene un pequeño programa que carga los archivos ocultos y arranca el sistema operativo.
El DBR también contiene mucha información importante sobre la FAT, los clústeres del directorio raíz y el tamaño de la partición, etc. Use alguna utilidad similar a Diskedit para leer la información del DBR si el DBR está dañado o tiene información ilegal. Restaure el DBR desde la copia de seguridad. .
Todo el software profesional para la recuperación de datos es capaz de reescribir el DBR. Discutiremos sobre cómo reescribir el DBR de la partición con programación en los próximos capítulos del libro.
También puede reescribir el DBR de la partición con la ayuda de Diskedit proporcionando la información adecuada.
También hay una manera muy fácil de averiguar el área de corrupción. Los mensajes de error que se muestran en la pantalla tienen alguna causa específica para mostrarse. La descripción de algunos mensajes de error importantes es la siguiente:
Mensaje |
Descripción |
“Sector not found reading drive” |
Este mensaje puede aparecer durante cualquier operación de DOS. Por lo general, es causado por el desvanecimiento o la pérdida de una ID de sector. |
“Data error reading drive” |
Este mensaje puede aparecer durante cualquier operación de DOS. Es causado por fallar la verificación de datos: CRC (Comprobación de redundancia cíclica) o ECC (Código de corrección de errores). Esta "comprobación de datos" se refiere al mecanismo utilizado para comprobar si los datos leídos del disco son fiables. |
“ 0 hard disk(s) found" |
Se muestra si el BIOS de la computadora no detecta el disco duro. Compruebe las conexiones de los cables de alimentación y datos del disco duro. Si las conexiones están bien, el problema puede deberse a algún error de hardware del disco duro. |
“Hard Drive failure, presione F1 para continuar” |
Lo mismo que arriba |
“Invalid drive specification” |
Se muestra en la condición en que el sistema no reconoce el hardware, o no hay información de partición, o falta el controlador de dispositivo de la unidad. |
“Invalid configuration presione F1 para continuar” |
Si el disco duro está disponible, la batería de la placa base está agotada y el sistema ha perdido su información de configuración SETUP o el disco no responde. |
“Invalid partition table” |
Este es el mensaje de error de MBR. Se muestra cuando la tabla de particiones del MBR no tiene la información de partición válida. |
“Error loading operating system” |
Este es el mensaje de error de MBR. Se muestra debido a cualquier tipo de corrupción de información MBR. |
“Missing operating system” |
Lo mismo que arriba. |
“Disk boot failure” |
Es el mensaje de error DBR. Normalmente, el disco duro debería estar accesible si arranca desde el disquete. Aunque no es de arranque, eso no debería afectar el acceso a los datos de la unidad. |
“non system disk or disk error” |
Lo mismo que arriba. |
“Bad or missing command interpreter” |
Este mensaje se muestra debido a un intérprete de comandos incorrecto o faltante. Por ejemplo, si el operador no encuentra command.com en la ruta actual o si command.com está dañado. |
Página modificada el: 05/01/2022