Tabla de particiones GUID
# Tabla de particiones GUID

La tabla de particiones GUID (GPT) es un estándar para la colocación de la tabla de particiones en un disco duro físico. Es parte del estándar Extensible Firmware Interface (EFI) propuesto por Intel para reemplazar el viejo BIOS del PC, heredada del IBM PC original. La GPT sustituye al Master Boot Record (MBR) usado con el BIOS.

## Características

Mientras que el MBR comienza con el código de arranque maestro (Master Boot Code), que contienen un binario ejecutable que identifica la partición activa e inicia el proceso de arranque, la GPT se basa en las capacidades extendidas del EFI para estos procesos. A pesar de que una entrada de MBR comienza el disco, con propósitos de protectividad y compatibilidad con el viejo esquema BIOS PC, la GPT propiamente dicha comienza con la cabecera de la tabla de particiones.

GPT usa un moderno modo de direccionamiento lógico (LBA, logical block addressing) en lugar del modelo cilindro-cabeza-sector (CHS) usado con el MBR. La información de MBR heredado está almacenada en el LBA 0, la cabecera GPT está en el LBA 1, y la tabla de particiones en sí en los bloques sucesivos. En los sistemas operativos Windows de 64-bits, 16.384 bytes, o lo que es lo mismo, 32 sectores, están reservados para la GPT, dejando el bloque LBA 34 como el primer sector usable del disco.

GPT proporciona asimismo redundancia. La cabecera GPT y la tabla de particiones están escritas tanto al principio como al final del disco.

### Alineación

La estructura de la GPT se define en base a bloques LBA de 512 bytes.

Los discos duros actuales trabajan internamente con sectores de 4096 bytes, mientras que le ofrecen a los sistemas operativos (incluyendo sus gestores de arranque) bloques de 512 bytes. Esto se ha mantenido por compatibilidad con los gestores de arranque antiguos. Dado que 4096 es 8 veces 512, es conveniente hacer que las particiones comiencen en un múltiplo de 8 bloques, para que las escrituras de los sistemas operativos se correspondan con escrituras a nivel hardware.

## MBR heredado (legacy) (LBA 0)

El motivo de que se haya mantenido un MBR al principio del disco es evitar que las herramientas antiguas de manejo de discos basados en MBR, que no reconocen los discos basados en GPT, se confundan y pudieran estropear el disco. Para evitar esto, este MBR de seguridad especifica que el disco contiene una única partición que abarca toda la unidad GPT. El indicador de sistema (System ID) para esta partición es 0xEE, lo que indica que debe interpretarse el disco como GPT. El EFI ignora el MBR. Algunos sistemas operativos de 32 bits que no pueden leer discos GPT reconocen sin embargo este System ID y presentan el disco como disco GPT inaccesible.

## Cabecera de tabla de particiones (LBA 1)

La cabecera de la tabla de particiones define los bloques de disco que pueden ser utilizados por el usuario (bloques usables). También define el número y tamaño de las entradas de partición que conforman la tabla de particiones. En Windows Server 2003 de 64 bits, hay 128 entradas de partición reservadas, cada una de 128 bytes de longitud. Así, se pueden crear hasta 128 particiones.

La cabecera contiene el GUID del disco (Globally Unique Identifier, Identificador Global Único). Registra su propio tamaño y localización (siempre LBA 1), y el tamaño y la localización de la cabecera y tabla de la GPT secundarias (siempre en el último sector del disco). Es importante que también contiene una suma de comprobación CRC32 para sí mismo y para la tabla de partición, que se verifica por los procesos EFI durante el arranque. Ya que EFI utiliza y verifica esta suma de comprobación, no se deberían usar editores hexadecimales para modificar el contenido de la GPT. Tales modificaciones invalidarían la suma de comprobación. En este caso, el EFI sobrescribiría la GPT primaria con la secundaria, o, si ambas copias contuviesen una suma de comprobación inválida, no podría acceder al disco.

## Entradas de partición (LBAs 2 al 33)

Las entradas de partición son sencillas y claras. Los primeros 16 bytes designan el tipo de partición GUID. Por ejemplo, el GUID para una partición de sistema EFI es {28732AC1-1FF8-D211-BA4B-00A0C93EC93B}. Los siguientes 16 bytes contienen otro GUID único para la partición. Los bloques LBA de comienzo y final que delimitan la partición en el disco también se registran aquí, codificados como enteros de 64 bits. También se reserva un espacio para los nombres de las particiones y otros atributos.

Formato de entrada de partición GUID :

| Offset | Longitud | Contenido |
| - | - | - |
| 0 (0x00) | 16 bytes | Tipo de partición GUID |
| 16 (0x10) | 16 bytes | GUID único de partición |
| 32 (0x20) | 8 bytes | Inicio LBA (little endian) |
| 40 (0x28) | 8 bytes | Fin LBA (inclusive, generalmente impar) |
| 48 (0x30) | 8 bytes | Indicadores (p.ej. bit 60 denota solo lectura) |
| 56 (0x38) | 72 bytes | Nombre de partición (36 caracteres UTF-16LE) |
| | 128 bytes totales |
