Un registro de arranque extendido ( EBR ), [1] o registro de arranque de partición extendida ( EPBR ), [nota 1] es un descriptor para una partición lógica bajo el sistema común de particionamiento de unidades de disco DOS. En ese sistema, cuando una (y solo una) entrada de registro de partición en el registro de arranque maestro (MBR) se designa como partición extendida , entonces esa partición se puede subdividir en varias particiones lógicas. La estructura real de esa partición extendida se describe mediante uno o más EBR, que se encuentran dentro de la partición extendida. El primer EBR (y a veces el único) siempre estará ubicado en el primer sector de la partición extendida.
A diferencia de las particiones primarias, que se describen todas mediante una única tabla de particiones dentro del MBR y, por lo tanto, están limitadas en número, cada EBR precede a la partición lógica que describe. [nota 2] Si sigue otra partición lógica, entonces la primera EBR contendrá una entrada que apunta a la siguiente EBR; por lo tanto, varias EBR forman una lista enlazada . [nota 3] Esto significa que la cantidad de unidades lógicas que se pueden formar dentro de una partición extendida está limitada solo por la cantidad de espacio de disco disponible en la partición extendida dada. [nota 4]
Mientras que en las versiones de Windows hasta XP las particiones lógicas dentro de la partición extendida se alineaban siguiendo convenciones llamadas "geometría de unidad" o "CHS" , desde Windows Vista se alinean con un límite de 1 MiB. Debido a esta diferencia en la alineación, el Administrador de discos lógicos de XP (Administración de discos) puede eliminar estas particiones extendidas sin previo aviso. [2]
Los EBR tienen esencialmente la misma estructura que el MBR; excepto que se supone que solo se deben usar las dos primeras entradas de la tabla de particiones, además de tener la firma de registro de arranque obligatoria (o número mágico ) de 0xAA55 al final del sector. [1] Esta firma de 2 bytes aparece en un editor de discos como 0x55 primero y 0xAA último, porque las PC compatibles con IBM almacenan palabras hexadecimales en orden little-endian (ver la tabla a continuación).
Compensaciones dentro de los sectores del EBR | Contenido | Tamaño | |
---|---|---|---|
Maleficio | Dic | bytes | |
000 – 1BD | 000 – 445 | Generalmente no se utiliza; normalmente se llena con ceros; puede contener otro cargador de arranque, es decir, un registro de arranque de partición, por ejemplo, junto con Particiones activas avanzadas | 446 |
1BE – 1CD | 446 – 461 | Primera entrada de la tabla de particiones | 16 |
1CE – 1DD | 462 – 477 | Segunda entrada de la tabla de particiones | 16 |
1DE – 1ED | 478 – 493 | No utilizado [3] tercera entrada llena de ceros | 16 |
1EE – 1FD | 494 – 509 | No utilizado [3] cuarta entrada llena de ceros | 16 |
1FE - 1FF | 510 - 511 | Firma 55AAh en orden de red big-endian , igual que 0xAA55 little-endian . En el disco: 0x55 en el desplazamiento 510 y 0xAA en el desplazamiento 511. | 2 |
EBR, tamaño total: 446 +(4×16) +2 = | 512 |
IBM Boot Manager (incluido con los sistemas operativos OS/2 y algunas versiones anteriores de Partition Magic ) añade al menos una entrada de 9 bytes (que comienza en el desplazamiento 0x18A ) a cada sector EBR. La entrada consta de un byte de valor de indicador (que indica si la partición está en el menú de IBM Boot Manager) seguido de una cadena ASCII de 8 bytes que es el nombre que se utilizará en el menú. Si la partición no está incluida en el menú de arranque (como las particiones de solo datos), el byte de indicador es cero; en cuyo caso, el siguiente campo de 8 bytes puede contener una representación ASCII del número de sector inicial de esa partición (en hexadecimal).
Compensaciones | Dentro de la entrada | Bytes | Descripción |
---|---|---|---|
Maleficio | Dic | ||
1?E 1 | 0 | 1 | Indicador de arranque (80 h para activo; de lo contrario, 00 h) |
1?F - 1?1 | 1 – 3 | 3 | Dirección del sector de la culata del cilindro CHS : inicio de la partición |
1?2 | 4 | 1 | Código de tipo de partición |
1?3 - 1?5 | 5 – 7 | 3 | Dirección del sector de la culata del CHS : extremo de la partición |
1?6 - 1?9 | 8 – 11 | 4 | Dirección de bloque lógico LBA : inicio de partición |
1?A - 1?D | 12 – 15 | 4 | Tamaño de la partición (en sectores) |
1 : Para 1?E leer 1BE u 1CE obtener el desplazamiento hexadecimal de la primera o segunda entrada, respectivamente |
El tipo de partición de una partición extendida es 0x05 ( direccionamiento CHS ) o 0x0F ( direccionamiento LBA ). [4] DR DOS 6.0 y versiones posteriores admiten particiones extendidas seguras utilizando 0xC5 , que son invisibles para otros sistemas operativos. Dado que las versiones no habilitadas para LBA de DR-DOS hasta la 7.03 incluida no reconocen el tipo de partición 0x0F y otros sistemas operativos no reconocen el tipo 0xC5 , esto también se puede utilizar para ocupar espacio hasta los primeros 8 GB del disco para su uso bajo DR-DOS (para unidades lógicas en particiones seguras o no seguras), y aún así usar 0x0F para asignar el resto del disco para sistemas operativos habilitados para LBA de una manera no conflictiva. De manera similar, Linux admite el concepto de una segunda cadena de partición extendida con el tipo 0x85 : este tipo está oculto (desconocido) para otros sistemas operativos que solo admiten una cadena. [5] Otros tipos de particiones extendidas que pueden contener EBR incluyen los tipos deliberadamente ocultos 0x15 , 0x1F , 0x91 y 0x9B , los tipos de acceso restringido 0x5E y 0x5F y los tipos seguros 0xCF y 0xD5 . Sin embargo, estos deben tratarse como privados para los sistemas operativos y las herramientas que los respaldan y no deben montarse de otra manera.
Las direcciones CHS de una partición son difíciles de interpretar sin conocer la geometría del disco (virtual), porque las traducciones de CHS a LBA se basan en el número de cabezales y el número de sectores por pista. Sin embargo, la dirección de inicio LBA dada y el tamaño de partición dado en sectores permiten calcular una geometría de disco que coincida con las direcciones CHS dadas cuando esto sea posible. El direccionamiento CHS con 24 bits siempre utiliza 6 bits para hasta 63 sectores por pista (1...63), y el acceso al disco INT 13h generalmente utiliza 8 bits para hasta 256 cabezales (0...255), dejando 10 bits para hasta 1024 cilindros (0...1023). Las direcciones CHS ATA siempre utilizan 4 bits para hasta 16 cabezales (0...15), esto deja 14 bits para hasta 16,383 cilindros ( {{{1}}} ) en las traducciones de direcciones CHS ATA-5 de 24 bits. [6]
Las siguientes son reglas generales que se aplican únicamente a los valores que se encuentran en los campos de 4 bytes de las entradas de la tabla de particiones de un EBR (consulte las tablas anteriores). Estos valores dependen de las herramientas de particionamiento utilizadas para crearlos o modificarlos y, de hecho, la mayoría de los sistemas operativos que utilizan el esquema de particionamiento extendido (incluidos Microsoft MS-DOS y Windows, y Linux) ignoran el valor de "tamaño de partición" en las entradas que apuntan a otro sector EBR. Una excepción es que el valor debe ser uno o mayor para los sistemas operativos Linux.
La primera entrada de una tabla de particiones EBR apunta a la partición lógica que pertenece a ese EBR:
La segunda entrada de una tabla de partición EBR contendrá cero bytes si es el último EBR en la partición extendida; de lo contrario, apunta al siguiente EBR en la cadena EBR.
Observaciones:
Los diagramas anteriores no están a escala: las delgadas líneas blancas entre cada "EBR" y su "partición" lógica representan el resto de un área no utilizada, generalmente de 63 sectores [nota 2] de longitud; incluido el único sector EBR (mostrado en un tamaño muy exagerado).
En algunos sistemas, puede existir un gran espacio sin utilizar entre el final de una partición lógica y la próxima EBR, o entre la última partición lógica y el final de toda la partición extendida, si alguna partición lógica creada previamente ha sido eliminada o redimensionada (reducida).
La intercalación de EBR y particiones que se muestra arriba es habitual, pero no obligatoria. Es legítimo tener dos o más EBR consecutivos seguidos de dos o más regiones de datos de partición.
Linux y sistemas operativos similares designan los discos duros IDE/dev/hda
como primer disco duro, /dev/hdb
segundo disco duro, etc. Asimismo, en SCSI y en núcleos posteriores, los discos duros IDE y SATA se identifican como /dev/sda
primer disco, etc.
Las hasta cuatro particiones definidas en el registro de arranque maestro se designan como /dev/hda1
... /dev/hda4
para /dev/hda
. La quinta partición en este esquema, por ejemplo, /dev/hda5
, corresponde a la primera unidad lógica . La sexta partición /dev/hda6
correspondería entonces a la segunda unidad lógica , o en otras palabras, los contenedores de particiones extendidas no se cuentan. Solo la partición extendida más externa definida en el MBR (una de /dev/hda1
... /dev/hda4
) tiene un nombre en este esquema. [7]
Esto muestra una partición extendida con 6000 sectores y 3 particiones lógicas.
Observación: Ni una partición extendida pequeña con solo 3 MB ni un disco duro con 20 sectores por pista son realistas, pero estos valores se han elegido para que este ejemplo sea más legible.
La siguiente salida de una herramienta de línea de comandos [ which? ] muestra la disposición de un disco con dos unidades lógicas. Se eliminan los detalles de las particiones FAT y NTFS , la línea anotada con Linux tiene /dev/hda6
un sistema de archivos extendido . El comienzo de /dev/hda5
muestra que los sistemas operativos involucrados PC DOS 7 , Windows NT y Debian no insisten en ninguna alineación de partición extendida con un espacio:
\\.\PHYSICALDRIVE0 (asumiendo geometría CHS 99999 255 63) id. [3189-3188] MBR CHS 0 0 1 en 0, final 0 0 1, tamaño 1CHS sin usar 0 0 2 en 1, final 0 0 63, tamaño 621:*06: CHS 0 1 1 en 63, fin 260 254 63, tamaño 4192902 bigFAT2:05: CHS 261 0 1 en 4192965, final 757 254 63, tamaño 7984305 => EXT3: 17: CHS 758 0 1 en 12177270, final 1522 254 63, tamaño 12289725 NTFS4: 1C: CHS 1523 0 1 en 24466995, final 1825 254 63, tamaño 4867695 FAT32 (desplazamiento extendido 4192965) total 29334690=> EXT CHS 261 0 1 en 0, fin 261 0 1, tamaño 15:06: CHS 261 0 2 en 1, final 384 254 63, tamaño 1992059 bigFAT6:05: CHS 385 0 1 en 1992060, final 757 254 63, tamaño 5992245 => EXT (desplazamiento extendido 6185025) total 7984305=> EXT CHS 385 0 1 en 0, fin 385 0 1, tamaño 1CHS 385 0 2 sin usar en 1, extremo 385 0 63, tamaño 626:83: CHS 385 1 1 en 63, final 757 254 63, tamaño 5992182 Linux7:00: CHS 0 0 0 en 0, fin 0 0 0, tamaño 0 sin usar total 5992245bigFAT CHS 0 1 1 a las 63, final 260 254 63, tamaño 4192902PC DOS 7 (tamaño de clúster 64, número 65506) total 4192902 NTFS CHS 758 0 1 en 12177270, final 1522 254 63, tamaño 12289725[1C81-013D] (tamaño del grupo 8, número 1536215) total 12289725 FAT32 CHS 1523 0 1 en 24466995, final 1825 254 63, tamaño 4867695[C417-9E22] (tamaño del grupo 8, número 607271) total 4867695bigFAT CHS 261 0 2 en 4192966, final 384 254 63, tamaño 1992059FAT SWAP (tamaño de clúster 32, número 62236) total 1992059
Para ver otro ejemplo, consulte el "CÓMO de partición de Linux" . [8]
[0x05] admite discos de 8,4 GB como máximo: con el tipo 05, DOS/Windows no utilizará la llamada de BIOS extendida, incluso si está disponible. Consulte el tipo 0f a continuación. El uso del tipo 05 para particiones extendidas de más de 8 GB puede provocar la corrupción de datos con MSDOS.