Al encender el equipo, el bios intenta leer el primer sector de la unidad de disco "A:" a la posición 0000h:7c00h. Si no hay disco insertado en la unidad "A:", el bios lee el "master boot record" (sector de arranque maestro, situado en el cilindro 0, cara cero, sector 1 del disco duro), que contiene un corto programa de arranque y la descripción de las particiones.
Una vez averiguada la partición activa se carga el sector de arranque correspondiente (que está situado en el primer sector de dicha partición) y se le transfiere el control.
El mbr ocupa 512 bytes (00h a 1ffh) y tiene dos partes básicas:
el código de arranque maestro y la tabla de particiones:
OFFSET | BYTES | DESCRIPCION |
000h | 446 | Código de arranque maestro |
1beh | 16 | Formato de la primera partición |
1ceh | 16 | Formato de la segunda partición |
1deh | 16 | Formato de la tercera partición |
1eeh | 16 | Formato de la cuarta partición |
1feh | 2 | Firma. Si es 55aah, indica sector de arranque válido. |
La tabla de particiones contiene cuatro entradas de 16 bytes. Cada
entrada está dividida en varios campos que contienen los datos necesarios
para describir una partición:
OFFSET | BYTES | DESCRIPCION | NOTAS |
1beh | 1 | Indicador de arranque | (1) |
1bfh | 3 | Comienzo de partición | (2) |
1c2h | 1 | Indicador de sistema operativo | (3) |
1c3h | 3 | Final de partición | (2) |
1c6h | 4 | Número de sectores anteriores | (4) |
1cah | 4 | Número de sectores totales | (5) |
1)
80h indica partición activa; 00h indica partición no-activa.
2)
El comienzo y el final de la partición viene indicado con
tres bytes, que indican en qué cara, sector y cilindro se inician
y terminan, utilizando un formato comprimido:
- El primer byte indica la cara o cabeza (head).
- Los dos primeros bits del segundo byte son los bits altos del
número de cilindro. Los 6 bits siguientes indican el número
de sector.
- El tercer byte contiene los bits bajos del número de cilindro.
De este modo, un cilindro se referencia con 10 bits. Los ocho bajos
están contenidos en el tercer byte del indicador de partición
y los dos altos son los bits 6 y 7 del segundo byte del indicador de partición.
Por ejemplo, el indicador de final de partición de mi portátil
contiene los bytes "3F BF 0B".
Así que, según hemos dicho, la cara
se calcularía tomando los bits marcados en rojo,
el cilindro con los bits marcados en verde
y el sector con los bits marcados en blanco:
3FH = 00111111b
BFH = 10111111b
0BH = 00001011b
Por tanto:
Cara
= 00111111b = 63 decimal.
Cilindro
= 1000001011b = 523 decimal.
Sector
= 111111b = 63 decimal.
La numeración de caras y cilindros comienza en cero; la de los sectores en 1. En este ejemplo, tendríamos 64 caras (0-63), 524 cilindros (0-523) y 63 sectores (1-63).
3)
Las claves de indicador de sistema operativo son las siguientes:
00h | Vacío |
01h | Dos con fat de 12 bits |
02h | Xenix root |
03h | Xenix user |
04h | Dos con fat de 16 bits |
05h | Dos 3.3+ extendida |
06h | Dos 3.31+ |
07h | Qnx |
07h | OS/2 Hpfs |
07h | Windows NT NTFS |
07h | Unix avanzado |
08h | AIX arrancable |
09h | AIX datos |
09h | Coherent filesystem |
0ah | OS/2 gestor de arranque |
0ah | Coherent swap |
0bh | Windows 95 Fat32 |
0ch | Windows 95 Fat 32 (LBA) |
0eh | Windows 95 Fat 16 (LBA) |
0fh | Windows 95 Extendida |
10h | OPUS |
11h | OS/2 Boot manager hidden 12 bit fat |
12h | Compaq diagnostics partition |
14h | OS/2 Boot manager hidden sub 32-M 16 bit fat |
16h | OS/2 Boot manager hidden over 32-M 16 bit fat |
17h | OS/2 Boot manager hidden HPFS |
18h | AST special windows swap file |
24h | Nec MS-DOS 3.x |
3ch | PowerQuest PartitionMagic recovery partition |
40h | Venix 80286 |
42h | SFS (Secure file system) |
50h | Disk manager r/o |
51h | Disk manager r/w |
51h | Novell |
52h | CP/M |
52h | Microport System V/386 |
56h | GoldenBow VFeature |
61h | SpeedStor |
63h | Unix SysV /386 |
63h | Mach |
63h | GNU Hurd |
64h | Novell Netware |
65h | Novell Netware 3.11 |
70h | DiskSecure multi-boot |
75h | PC/IX |
80h | Minix 1.1 |
81h | Minix 1.4b+ |
81h | Linux |
81h | Mitac |
82h | Linux swap partition |
83h | Linux native file system |
84h | OS/2 renumbered type 04h partition |
93h | Amoeba |
94h | Amoeba bbt |
a5h | FreeBSD |
b7h | BSDI |
b8h | BSDI |
c1h | Dr-Dos 6 de 12 bits |
c4h | Dr-Dos 6 de 16 bits |
c6h | Dr-Dos 6 ampliada |
c7h | Cyrnix boot |
dbh | CP/M, Concurrent CP/M, Concurrent DOS |
dbh | CTOS (Convergent Technologies OS) |
e1h | SpeedStor de 12 bits |
e4h | SpeedStor de 16 bits |
f2h | DOS 3.3+, secundaria |
f4h | SpeedStor |
feh | LANstep |
ffh | Xenix, bloques dañados |
Número de sectores que preceden a la partición.
5)
Longitud de la partición en sectores.
5)
Longitud de la partición en sectores.