Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Tecnología del PC

[Home]  [Inicio]  [Índice]


8.1.2c  El Sector de Arranque

§1  Sector de arranque

De todos los sectores de una unidad de disco, el primero de la primera cabeza del primer cilincro (CHS  0,0,1), tiene una importancia y significado especial.  Es el sitio al que se dirige la BIOS cuando busca si existe en el sistema un dispositivo cargable ( 4.3).  Por esta razón se denomina sector de arranque MBR ("Master boot record") o bloque maestro de carga ("Master boot block").  Sus 512 bytes contienen tres bloques con información sobre la arquitectura física y lógica del disco: el  Código maestro de carga ; la  Tabla de particiones , y la Firma .

Nota:  Debido a que los disquetes no pueden contener particiones, son una excepción a esta regla y su primer sector, denominado sector de carga del volumen, tiene una estructura ligeramente distinta (ver sector de carga 8.1.2c2).

§2  Código maestro de carga MBC

Si el disco es "bootable", los primeros 446 bytes del MBR (sector de arranque), están ocupados por un pequeño trozo de código denominado código maestro de carga MBC  ("Master Boot Code") o cargador inicial (bootstrap loader), que es cargado por la BIOS para comenzar el proceso de carga. El bootstrap loader repasa la tabla maestra de particiones (ver a continuación) buscando una partición activa. En caso de encontrarla, busca su sector inicial ( 8.1.2c2), carga su código en memoria, y le transfiere el control.  Dicho código es ya capaz de cargar y ejecutar cualquier otro programa situado en cualquier partición del disco.  Que a su vez inicializará directamente el SO, o tal vez una utilidad conocida como gestor de arranque, que permite elegir entre distintas alternativas.

Como vemos, es un proceso en cadena:  el bootstrap loader es cargado en memoria por un programa situado en la BIOS, y a su vez es capaz de continuar la carga del Sistema Operativo.

§2  Tabla maestra de particiones MPT 

A continuación del MBC, se sitúa la tabla maestra de particiones MPT ("Master Partition Table").  Está constituida por cuatro trozos de 16 bytes (4 entradas) que contienen información sobre las particiones definidas en la unidad.

Nota:  las particiones a que nos referimos son las denominadas particiones primarias o volúmenes [2].  Hay que recordar que solo hay sitio para cuatro, por lo que un disco duro solo puede contener cuatro particiones primarias.  Cualquier otra que pueda establecerse, se denomina partición secundaria o volumen lógico y debe estar contenida en alguna de las primarias.

Los desplazamientos de cada una de las 4 entradas son respectivamente 1BEh (446); 1CEh (462);  1DEh (478) y 1EEh (494). Cada entrada contiene la siguiente información [3] (T = tamaño del campo en bytes):

T Descripción
1 Estado de la partición (00h = Inactiva;  80h = Activa)
1 Principio de la partición (cabeza).
2

Principio de la partición (Cilindro/Sector en forma codificada).

La codificación, bastante enrevesada. Se justifica porque en el momento de su diseño, la conservación de espacio era una preocupación fundamental en el mundo informático (la misma que condujo al famoso episodio del Y2K) y porque existen dos datos empaquetados en una palabra de 16 bits, que a su vez están en forma invertida; "Back-words" o "Little endian" ( E2.2.6a).  De los 16 bits disponibles, 6 se reservan para el sector y 10 para el cilindro.  Lo que conduce a un máximo de 64 = 26 sectores, y 1024 = 210 cilindros.   El esquema de distribución de bits es el siguiente:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

bits 7-0 del cilindro

bits 9-8

cilindro 

bits 5-0 del sector

Estos valores, junto a las 256 = 28 posibilidades par las cabezas señaladas en el byte anterior, originarían posteriormente numerosos inconvenientes a la hora de manejar discos muy grandes  (6.2).

1 Tipo de partición ID.  Contiene detalles sobre el formato de la partición.  Por ejemplo, si es FAT-12, FAT-16 o FAT-32; si será accedida utilizando direccionamiento CHS tradicional; ECHS, o LBA ( 6.2).
ID Descripción
01h Partición primaria FAT12 o volumen lógico (volumen de menos de 32,680 sectores)
04h Partición primaria FAT16 o volumen lógico (32,680–65,535 sectores o 16 MB–33 MB)
05h Partición DOS Extendida
06h Partición FAT16 BIGDOS o volumen lógico (33 MB–4 GB)
07h Partición NTFS o volumen lógico ("Installable File System")
0Bh Partición FAT32 o volumen lógico (hasta 2048 GB)
0Ch Partición FAT32 o volumen lógico usando extensiones de la INT 13h BIOS
0Eh Partición FAT16 BIGDOS o volumen lógico usando extensiones de la INT 13h BIOS
0Fh Partición DOS extendida usando extensiones de la INT 13h BIOS
12h Partición EISA
42h Dynamic disk volume
86h Legacy FT FAT16 disk
87h Legacy FT NTFS disk
8Bh Legacy FT volume formateado con FAT32
8Ch Legacy FT formateado con FAT32 usando extensiones de la INT 13h BIOS

Nota:  MS-DOS solo puede acceder a las particiones o volúmenes señalados en negrita.

1 Final de la partición (cabeza).
2 Final de la partición (Cilindro/Sector en forma codificada).
4 Número de sectores entre el MBR y el primer sector de la partición.
4 Número de sectores en la partición.

Para que un disco "maestro" (cuyo MBR pueda ser accedido por el proceso de carga de la BIOS) sea "bootable", se precisa que alguna de las entradas de la tabla contenga un 80h en el bit de estado, señalando cual es partición activa Recuerde que esta indicación es necesaria incluso si solo existe una partición y que en caso de haber varias, solo una puede estar activa!.

§3  Firma del sector de carga

Los dos últimos bytes del sector de arranque (MBR) contienen dos caracteres (55h, AAh). que son denominados firma del sector de carga ("Boot record signature")

§4  Ejemplo

A continuación se muestra el volcado ASCII del sector de arranque MBR de un disco, utilizando la utilidad debug del DOS ( DEBUG).

Se trata de una unidad C... 

177C:0100  EB 58 90 4D 53 57 49 4E-34 2E 31 00 02 08 20 00   .X.MSWIN4.1... .
177C:0110  02 00 00 00 00 F8 00 00-3F 00 F0 00 3F 00 00 00   ........?...?...
177C:0120  A0 0B 7D 00 34 1F 00 00-00 00 00 00 02 00 00 00   ..}.4...........
177C:0130  01 00 06 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
177C:0140  80 00 29 0B 1A 55 20 4E-4F 20 4E 41 4D 45 20 20   ..)..U NO NAME 
177C:0150  20 20 46 41 54 33 32 20-20 20 FA 33 C9 8E D1 BC   FAT32 .3....
177C:0160  F8 7B 8E C1 BD 78 00 C5-76 00 1E 56 16 55 BF 22   .{...x..v..V.U."
177C:0170  05 89 7E 00 89 4E 02 B1-0B FC F3 A4 8E D9 BD 00   ..~..N..........
177C:0180  7C C6 45 FE 0F 8B 46 18-88 45 F9 38 4E 40 7D 25   |.E...F..E.8N@}%
177C:0190  8B C1 99 BB 00 07 E8 97-00 72 1A 83 EB 3A 66 A1   .........r...:f.
177C:01A0  1C 7C 66 3B 07 8A 57 FC-75 06 80 CA 02 88 56 02   .|f;..W.u.....V.
177C:01B0  80 C3 10 73 ED BF 02 00-83 7E 16 00 75 45 8B 46   ...s.....~..uE.F
177C:01C0  1C 8B 56 1E B9 03 00 49-40 75 01 42 BB 00 7E E8   ..V....I@u.B..~.
177C:01D0  5F 00 73 26 B0 F8 4F 74-1D 8B 46 32 33 D2 B9 03   _.s&..Ot..F23...
177C:01E0  00 3B C8 77 1E 8B 76 0E-3B CE 73 17 2B F1 03 46   .;.w..v.;.s.+..F
177C:01F0  1C 13 56 1E EB D1 73 0B-EB 27 83 7E 2A 00 77 03   ..V...s..'.~*.w.
177C:0200  E9 FD 02 BE 7E 7D AC 98-03 F0 AC 84 C0 74 17 3C   ....~}.......t.<
177C:0210  FF 74 09 B4 0E BB 07 00-CD 10 EB EE BE 81 7D EB   .t............}.
177C:0220  E5 BE 7F 7D EB E0 98 CD-16 5E 1F 66 8F 04 CD 19   ...}.....^.f....
177C:0230  41 56 66 6A 00 52 50 06-53 6A 01 6A 10 8B F4 60   AVfj.RP.Sj.j...`
177C:0240  80 7E 02 0E 75 04 B4 42-EB 1D 91 92 33 D2 F7 76   .~..u..B....3..v
177C:0250  18 91 F7 76 18 42 87 CA-F7 76 1A 8A F2 8A E8 C0   ...v.B...v......
177C:0260  CC 02 0A CC B8 01 02 8A-56 40 CD 13 61 8D 64 10   ........V@..a.d.
177C:0270  5E 72 0A 40 75 01 42 03-5E 0B 49 75 B4 C3 03 18   ^r.@u.B.^.Iu....
177C:0280  01 27 0D 0A 44 69 73 63-6F 20 64 65 20 73 69 73   .'..Disco de sis
177C:0290  74 65 6D 61 20 69 6E 63-6F 72 72 65 63 74 6F 0D   tema incorrecto.
177C:02A0  0A 45 72 72 6F 72 20 45-2F 53 20 0D 0A 43 61 6D   .Error E/S ..Cam
177C:02B0  62 69 65 20 65 6C 20 20-64 69 73 63 6F 20 79 20   bie el disco y 
177C:02C0  70 72 65 73 69 6F 6E 65-20 75 6E 61 20 74 65 63   presione una tec
177C:02D0  6C 61 0D 0A 00 00 00 00-49 4F 20 20 20 20 20 20   la......IO 
177C:02E0  53 59 53 4D 53 44 4F 53-20 20 20 53 59 53 7E 01   SYSMSDOS SYS~.
177C:02F0  00 57 49 4E 42 4F 4F 54-20 53 59 53 00 00 55 AA   .WINBOOT SYS..U.

§5  Resumen

Una vez realizado el formateo físico de la unidad ( 8.1.2), la MPT es creada mediante un programa especial; fdisk.exe en los Sistemas DOS/Windows y /sbin/fdisk en Linux ( 8.1.2c3), que se encarga de realizar las "particiones" del disco. En cambio, el código del bootstrap loader es instalado en su caso por el programa de instalación del Sistema Operativo.

Un disco pude no ser "bootable" por carecer de cargador inicial en su MBR, o la señal "activa" en alguna de sus particiones. Pero para ser utilizable debe contener al menos una partición, y por consiguiente una entrada en su MPT.  En el primer caso, la BIOS es incapaz de continuar el proceso de carga, resultando un mensaje de error del tipo: "No Boot device available o quizás en las BIOS antiguas: "NO ROM BASIC - System Halted.  Sin embargo, una vez cargado el SO, si su MBR contiene una entrada en su MPT, el volumen correspondiente podrá ser utilizado sin ningún problema como área de almacenamiento.

Nota:  La razón de este último mensaje es que los primitivos PCs IBM tenían un BASIC pregrabado en la ROM de la BIOS, de forma que si no podía encontrarse un dispositivo de donde cargar el sistema, la BIOS exhibía este mensaje de error del BASIC.

  Inicio.


[2]  En algunos Sistemas las particiones son denominadas "Disk slices" y las entradas en la tabla, etiquetas de disco ("disklabels").

[3]  Los parámetros de más de un byte están almacenados en forma de palabras invertidas ("Back-words") o "Little endian" ( E2.2.6a), y como es usual, los desplazamientos empiezan por cero desde el comienzo del sector.  El primer byte tiene desplazamiento cero.  El último 511 (1FFh).