Registro de Arranque Maestro (MBR)

El Master Boot Record (MBR) o Registro de Arranque Maestro es el primer sector físico (Sector 0) de un dispositivo de almacenamiento de datos dividido bajo el esquema de particionado tradicional. Ocupa exactamente 512 bytes al inicio del disco y contiene la información crítica necesaria para inicializar el arranque del sistema operativo y definir la estructura de particiones.

Estructura Interna del MBR

Los 512 bytes que componen el sector MBR están divididos estrictamente en tres secciones principales:

Estructura del Sector MBR (512 Bytes)

Offset (Bytes)

Tamaño (Bytes)

Descripción

0x0000 - 0x01BD

446 bytes

Código de arranque principal (*Bootstrap code*): Código ejecutable del cargador de arranque.

0x01BE - 0x01FE

64 bytes

Tabla de particiones primarias: 4 entradas de 16 bytes cada una.

0x01FE - 0x01FF

2 bytes

Firma de arranque (*Magic Number*): Valor binario 0x55AA para validar el sector.

1. Código de Arranque Principal (446 Bytes)

Es el código en lenguaje ensamblador que ejecuta la BIOS tras completar el POST (Power-On Self-Test). Su función principal es examinar la tabla de particiones en busca de la partición activa (marcada como arrancable o bootable), cargar el sector de arranque de dicha partición (Volume Boot Record o VBR) en memoria RAM y transferirle el control de la ejecución.

2. Tabla de Particiones Primarias (64 Bytes)

Contiene 4 entradas fijas de 16 bytes cada una, lo que impone la limitación histórica de un máximo de 4 particiones primarias por disco físico (o 3 primarias y 1 extendida).

Cada entrada de 16 bytes describe:

  • Estado de la partición (1 byte): Indica si la partición es activa/arrancable (0x80) o inactiva (0x00).

  • Geometría CHS inicial (3 bytes): Cilindro, Cabeza y Sector donde inicia la partición (en desuso).

  • Tipo de sistema de archivos (1 byte): Código identificador del sistema de archivos (ej. 0x83 para Linux, 0x07 para NTFS/exFAT).

  • Geometría CHS final (3 bytes): Cilindro, Cabeza y Sector donde finaliza la partición.

  • Dirección LBA inicial (4 bytes): Sector de inicio en direccionamiento lógico de bloques (Logical Block Addressing).

  • Número total de sectores (4 bytes): Tamaño total de la partición medido en número de sectores.

3. Firma de Arranque (2 Bytes)

Los últimos dos bytes del sector (posiciones 510 y 511) deben contener la secuencia hex 0x55AA. Si la BIOS no detecta este valor específico al examinar el sector 0, considerará que el dispositivo no es arrancable (No bootable device found).

Limitaciones del Esquema MBR

  • Límite de capacidad (2 TiB): Al utilizar campos de 32 bits para registrar el número de sectores LBA, el tamaño máximo direccionable por MBR es de $2^{32} times 512text{ bytes} = 2.199.023.255.552text{ bytes}$ (2 TiB).

  • Número de particiones: Limitado a 4 particiones primarias. Para superar este límite se requiere crear una partición extendida que albergue Particiones Lógicas mediante EBR (Extended Boot Record).

  • Sin redundancia: A diferencia del esquema GPT, el MBR no guarda copias de respaldo de la tabla de particiones; si el sector 0 se corrompe, el disco pierde el acceso a la estructura de datos.

Inspección de MBR desde la Terminal

En sistemas Linux, es posible volcar y examinar el sector MBR de un disco mediante el uso de la herramienta dd y un visor hexadecimal:

# Extraer el sector MBR (512 bytes) a un archivo
# sudo dd if=/dev/sda of=mbr_backup.bin bs=512 count=1

# Inspeccionar el contenido en formato hexadecimal
# hexdump -C mbr_backup.bin