Todos los sistemas operativos de computadoras personales modernos admiten GPT. Algunos, incluidos macOS y Microsoft Windows en la arquitectura x86, admiten el arranque desde particiones GPT solo en sistemas con firmware EFI, pero FreeBSD y la mayoría de las distribuciones Linux pueden arrancar desde particiones GPT en sistemas con la interfaz BIOS o de firmware EFI.
Historia
El esquema de particionamiento Master Boot Record (MBR), ampliamente utilizado desde principios de los años 1980, impuso limitaciones para el uso del hardware moderno. El tamaño disponible para las direcciones de bloque y la información relacionada está limitado a 32 bits. Para los discos duros con sectores de 512 bytes, las entradas de la tabla de particiones MBR permiten un tamaño máximo de 2 TiB (2³² × 512 bytes) o 2,20 TB (2,20 × 10¹² bytes). [1]
A finales de los años 1990, Intel desarrolló un nuevo formato de tabla de particiones como parte de lo que finalmente se convirtió en la Interfaz de firmware extensible unificada (UEFI). La tabla de particiones GUID se especifica en el capítulo 5 de la especificación UEFI 2.8. [2] GPT utiliza 64 bits para direcciones de bloques lógicos, lo que permite un tamaño máximo de disco de 2 64 sectores. Para discos con sectores de 512 bytes, el tamaño máximo es 8 ZiB (2 64 × 512 bytes) o 9,44 ZB (9,44 × 10²¹ bytes). [1] Para discos con sectores de 4096 bytes, el tamaño máximo es 64 ZiB (2 64 × 4096 bytes) o 75,6 ZB (75,6 × 10²¹ bytes).
En 2010, los fabricantes de discos duros introdujeron unidades con sectores de 4096 bytes ( Advanced Format ). [3] Para compatibilidad con hardware y software heredados, esas unidades incluyen una tecnología de emulación ( 512e ) que presenta sectores de 512 bytes a la entidad que accede al disco duro, a pesar de sus sectores físicos subyacentes de 4096 bytes. [4] El rendimiento podría degradarse en las operaciones de escritura, cuando la unidad se ve obligada a realizar dos operaciones de lectura-modificación-escritura para satisfacer una única operación de escritura desalineada de 4096 bytes. [4] Desde abril de 2014, las unidades de clase empresarial sin tecnología de emulación ( 4K nativo ) han estado disponibles en el mercado. [5] [6]
La disponibilidad de soporte para sectores lógicos de 4 KB dentro de los sistemas operativos difiere entre sus tipos, proveedores y versiones. [7] Por ejemplo, Microsoft Windows admite unidades nativas de 4K desde Windows 8 y Windows Server 2012 (ambos lanzados en 2012) en UEFI . [8]
Características
Al igual que MBR, GPT utiliza direccionamiento de bloque lógico (LBA) en lugar del direccionamiento histórico de sector de culata (CHS). El MBR protector se almacena en LBA 0 y el encabezado GPT está en LBA 1, con un encabezado GPT de respaldo almacenado en el LBA final. El encabezado GPT tiene un puntero a la tabla de particiones ( Partition Entry Array ), que normalmente está en LBA 2. Cada entrada en la tabla de particiones tiene un tamaño de 128 bytes. La especificación UEFI estipula que se asigna un mínimo de 16.384 bytes, independientemente del tamaño del sector, para Partition Entry Array. [9] Por lo tanto, en un disco con sectores de 512 bytes, se utilizan al menos 32 sectores para la Matriz de Entrada de Partición, y el primer bloque utilizable está en LBA 34 o superior, mientras que en un disco con sectores de 4.096 bytes, se utilizan al menos 4 sectores para la Matriz de Entrada de Partición, y el primer bloque utilizable está en LBA 6 o superior.
Variantes de MBR
MBR protector (LBA 0)
Para lograr una compatibilidad limitada con versiones anteriores, el espacio del registro de arranque maestro (MBR) heredado todavía está reservado en la especificación GPT, pero ahora se utiliza de una manera que evita que las utilidades de disco basadas en MBR reconozcan incorrectamente y posiblemente sobrescriban los discos GPT. Esto se conoce como MBR protector . [10]
Una única partición de tipo EEh , que abarca toda la unidad GPT (donde "entera" en realidad significa la mayor parte de la unidad que se puede representar en un MBR), se indica y se la identifica como GPT. Los sistemas operativos y las herramientas que no pueden leer discos GPT generalmente reconocerán que el disco contiene una partición de tipo desconocido y ningún espacio vacío, y normalmente se negarán a modificar el disco a menos que el usuario solicite y confirme explícitamente la eliminación de esta partición. Esto minimiza los borrados accidentales. [10] Además, los sistemas operativos compatibles con GPT pueden verificar el MBR protector y, si el tipo de partición incluida no es del tipo EEh o si hay múltiples particiones definidas en el dispositivo de destino, el sistema operativo puede negarse a manipular la tabla de particiones. [11]
Si el tamaño real del disco excede el tamaño máximo de partición representable utilizando las entradas LBA de 32 bits heredadas en la tabla de particiones MBR, el tamaño registrado de esta partición se recorta al máximo, ignorando así el resto del disco. Esto equivale a un tamaño máximo informado de 2 TiB, suponiendo un disco con 512 bytes por sector (consulte 512e ). Daría como resultado 16 TiB con sectores de 4 KiB ( 4Kn ), pero dado que muchos sistemas operativos y herramientas más antiguos están codificados para un tamaño de sector de 512 bytes o están limitados a cálculos de 32 bits, exceder el límite de 2 TiB podría causar problemas de compatibilidad. [10]
MBR híbrido (LBA 0 + GPT)
En los sistemas operativos que admiten el arranque basado en GPT a través de servicios BIOS en lugar de EFI, el primer sector también puede seguir utilizándose para almacenar la primera etapa del código del cargador de arranque, pero modificado para reconocer particiones GPT. El cargador de arranque en el MBR no debe asumir un tamaño de sector de 512 bytes. [10]
Encabezado de la tabla de particiones (LBA 1)
El encabezado de la tabla de particiones define los bloques utilizables en el disco. También define la cantidad y el tamaño de las entradas de partición que conforman la tabla de particiones (desplazamientos 80 y 84 en la tabla). [2] : 119
Entradas de partición (LBA 2–33)
Después del encabezado principal y antes del encabezado de respaldo, la Matriz de Entrada de Partición describe las particiones, utilizando un tamaño mínimo de 128 bytes para cada bloque de entrada. [12] La ubicación inicial de la matriz en el disco y el tamaño de cada entrada se dan en el encabezado GPT. Los primeros 16 bytes de cada entrada designan el identificador único global (GUID) del tipo de partición. Por ejemplo, el GUID para una partición de sistema EFI es C12A7328-F81F-11D2-BA4B-00A0C93EC93B . Los segundos 16 bytes son un GUID único para la partición. Luego siguen los LBA de 64 bits inicial y final, los atributos de partición y el nombre de partición Unicode de 36 caracteres (máximo) . Como es la naturaleza y el propósito de los GUID y según RFC 4122, no se necesita un registro central para garantizar la unicidad de los designadores de tipo de partición GUID. [13] [2] : 2200
Los atributos de la tabla de particiones de 64 bits se comparten entre los atributos comunes de 48 bits para todos los tipos de particiones y los atributos específicos de cada tipo de 16 bits:
Google define los atributos específicos de tipo para el kernel de ChromeOS como: [17]
Compatibilidad con sistemas operativos
Sistemas UNIX y similares
Windows: versiones de 32 bits
Windows 7 y versiones anteriores no admiten UEFI en plataformas de 32 bits y, por lo tanto, no permiten el arranque desde particiones GPT. [32]
Windows: versiones de 64 bits
Limitado a 128 particiones por disco. [32]
GUID de tipo de partición
"GUID de tipo de partición" significa que cada tipo de partición está estrictamente identificado por un número GUID exclusivo de ese tipo y, por lo tanto, las particiones del mismo tipo tendrán todas el mismo "GUID de tipo de partición". Cada partición también tiene un "GUID exclusivo de partición" como entrada independiente, que, como su nombre lo indica, es una identificación exclusiva para cada partición.
^ Agregar ULLun sufijo a una constante entera la convierte en de tipo unsigned long long int.
^ Existe implementación de terceros (GPTTSD)
^ Windows XP de 64 bits normalmente no admite el arranque desde discos GPT, pero existen métodos no oficiales para arrancar XP desde él. [37]
^ Solo si utiliza su paquete de servicio 1 o 2
^ En una configuración de varios discos, un cargador de arranque que no sea UEFI (unidad de arranque) requiere particionamiento basado en MBR, mientras que una unidad del sistema puede usar particionamiento GUID.
^ Los GUID de esta tabla se escriben según RFC 4122, es decir, en orden de bytes big-endian , reconocibles por la posición de los bits de versión. Por ejemplo, el GUID de una partición de sistema EFI ( ), cuando se serializa en estructuras de datos GPT (little-endian), corresponde a la secuencia hexadecimal . Los primeros tres bloques se intercambian en bytes a little-endian, el último es una matriz de bytes. Consulte los detalles en TN2166 [11]C12A7328-F81F-11D2-BA4B-00A0C93EC93B28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B
^ La formación de este GUID no sigue la definición de GUID; se forma utilizando los códigos ASCII para la cadena " Hah!IdontNeedEFI ". Esta formación del valor "GUID" anula la garantía de unicidad del GUID.
^ ab Algunos fabricantes de computadoras tienen sus propios GUID para particiones que son análogas a la partición del sistema EFI, pero que contienen cargadores de arranque para iniciar herramientas de recuperación específicas del fabricante. [44]
^ ab Anteriormente, Linux usaba el mismo GUID para las particiones de datos que Windows (Partición de datos básica: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ). Linux nunca tuvo un GUID de tipo de partición único separado definido para sus particiones de datos. Esto creó problemas al iniciar Linux y Windows en modo dual en la configuración UEFI-GPT. El nuevo GUID (datos del sistema de archivos de Linux: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) fue definido conjuntamente por los desarrolladores de GPT fdisk y GNU Parted. [46] Se identifica como el código de tipo 0x8300 en GPT fdisk.
^ ab El GUID para /usrSolaris se utiliza como un GUID genérico para ZFS en macOS.
^ ab NetBSD y MidnightBSD habían utilizado los GUID de FreeBSD antes de que se crearan sus GUID únicos.
^ El sistema de archivos Ceph utiliza GUID para marcar el estado de preparación en el que se encuentra un disco. [68] [69]
^ Los GUID heredados de Fuchsia tenían dos rarezas: los UUID no se generaban aleatoriamente (varias series de bits eran comunes entre particiones) y las particiones se identificaban de forma única por el GUID de tipo. El esquema estandarizado utiliza GUID generados aleatoriamente y las particiones con ranuras (por ejemplo zircon_{a,b,r}, ) comparten el mismo tipo y se distinguen por su nombre y GUID único. [84]
Referencias
^ ab "Preguntas frecuentes: Límites de particiones de unidades" (PDF) . www.uefi.org . 2010 . Consultado el 12 de diciembre de 2020 .
^ abc "Unified Extensible Firmware Interface (UEFI) Specification" (PDF) . www.uefi.org . 29 de agosto de 2022. pág. 110 . Consultado el 23 de junio de 2023 .
^ Swinburne, Richard (1 de abril de 2010). "Los hechos: discos duros de formato avanzado 4K". www.bit-tech.net . Consultado el 12 de diciembre de 2020 .
^ ab Smith, Ryan (18 de diciembre de 2009). "Formato avanzado de Western Digital: comienza la transición al sector 4K". www.anandtech.com . Archivado desde el original el 28 de diciembre de 2020 . Consultado el 12 de diciembre de 2020 .
^ "Hoja de datos del disco duro Enterprise Capacity 3.5" (PDF) . Seagate Technology . 23 de abril de 2014. p. 2. Archivado (PDF) desde el original el 12 de agosto de 2014 . Consultado el 10 de agosto de 2014 .
^ "WD Re Datacenter Distribution Specification Sheet" (PDF) . Western Digital . 21 de enero de 2016. p. 2. Archivado (PDF) desde el original el 6 de septiembre de 2015 . Consultado el 14 de febrero de 2016 .
^ "Actualización de compatibilidad de discos con formato avanzado (4K) (Windows)". 28 de noviembre de 2012. Archivado desde el original el 11 de enero de 2013. Consultado el 3 de enero de 2013 .
^ "Política de soporte de Microsoft para discos duros con sector 4K en Windows". Microsoft . Archivado desde el original el 19 de agosto de 2011 . Consultado el 24 de octubre de 2013 .
^ "Especificación UEFI". UEFI.org .
^ abcd Smith, Roderick (3 de julio de 2012). "Aproveche al máximo las unidades de disco grandes con GPT y Linux". IBM . Consultado el 14 de diciembre de 2020 .
^ abcd "Nota técnica TN2166: Secretos de la GPT". Apple Developer . Apple . 2006-11-06 . Consultado el 2014-04-16 .
^ El encabezado GPT contiene un campo que especifica el tamaño de una entrada de la tabla de particiones. El mínimo requerido es de 128 bytes, pero las implementaciones deben permitir otros valores. Consulte "Biblioteca para desarrolladores de Mac". Developer.Apple.com . Apple . Consultado el 13 de julio de 2014 .
^ Leach, P.; Mealling, M.; Salz, R. (julio de 2005). Un espacio de nombres URN de identificador único universal (UUID). Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC4122 . RFC 4122. Consultado el 18 de diciembre de 2020 .{{citation}}: Mantenimiento CS1: año ( enlace )
^ Elliott, Rob (4 de enero de 2010). «e09127r3 EDD-4 Hybrid MBR Boot Code Annex» (PDF) . www.t13.org . Archivado desde el original (PDF) el 20 de agosto de 2020 . Consultado el 16 de diciembre de 2020 .
^ "GPT | Microsoft Docs". 31 de agosto de 2016.
^ "CREATE_PARTITION_PARAMETERS (vds.h) - Aplicaciones Win32 | Microsoft Docs". 9 de febrero de 2023.
^ "Formato de disco". Chromium.org . Consultado el 9 de febrero de 2022 .
^ "Ubuntu en MacBook". Documentación de la comunidad . Ubuntu.
^ "Preguntas frecuentes sobre GNU Parted".
^ "mklabel". Manual de Parted . GNU.
^ "fdisk: añadir compatibilidad con GPT". kernel.org. 2013-09-27 . Consultado el 2013-10-18 .
^ Bueso, Davidlohr (28 de septiembre de 2013). «Actualizaciones de fdisk y compatibilidad con GPT» . Consultado el 18 de octubre de 2013 .
^ "Definición de DISK_MAX_PARTS". Archivado desde el original el 26 de marzo de 2020. Consultado el 26 de marzo de 2020 .
^ "Mitos y realidades sobre las Mac Intel". rEFIt . Fuente: forge.
^ "Esquemas de partición disponibles en la Utilidad de Discos en Mac". Soporte técnico de Apple . Consultado el 8 de noviembre de 2024 .
^ "Cambios significativos de NetBSD 5.0 a 6.0"..
^ "Cambios significativos de NetBSD 5.0 a 6.0 (NetBSD/i386)"..
^ "Cambios significativos de NetBSD 5.0 a 6.0 (NetBSD/amd64)"..
^ "OpenBSD 5.9"..
^ "Arranque desde un sistema de archivos raíz ZFS". Oracle. Archivado desde el original el 10 de diciembre de 2011.
^ "idisk(1M)". Hewlett-Packard.
^ abcd "Preguntas frecuentes sobre Windows y GPT". msdn.microsoft.com . 1 de junio de 2017 . Consultado el 14 de diciembre de 2020 .
^ Windows 8 de 32 bits admite el arranque desde una PC basada en UEFI (solo x86-32) utilizando discos basados en GPT.
^ Windows 8.1 de 32 bits admite el arranque desde una PC basada en UEFI (solo x86-32) utilizando discos basados en GPT.
^ Windows 10 de 32 bits admite el arranque desde una PC basada en UEFI (solo x86-32) utilizando discos basados en GPT.
^ Microsoft aumenta el límite de velocidad con la disponibilidad de ediciones de 64 bits de Windows Server 2003 y Windows XP Professional Archivado el 10 de noviembre de 2010 en Wayback Machine.
^ Windows 8 de 64 bits admite el arranque desde una PC basada en UEFI (solo x86-64) utilizando discos basados en GPT.
^ Windows 8.1 de 64 bits admite el arranque desde una PC basada en UEFI (solo x86-64) utilizando discos basados en GPT.
^ Windows 10 de 64 bits admite el arranque desde una PC basada en UEFI (solo x86-64) utilizando discos basados en GPT.
^ El lanzamiento más extraño de Microsoft: Windows Server 2022 se vuelve disponible de manera silenciosa
^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 28 de julio de 2013.{{cite web}}: CS1 maint: copia archivada como título ( enlace )
^ "F6F: Funtoo Linux y la tecnología Intel Rapid Start". Blog.adios.tw. 2012-10-30 . Consultado el 2014-01-29 .
^ GPT fdisk: parttypes.cc, línea 198
^ abcde "PARTITION_INFORMATION_GPT - Aplicaciones Win32". Microsoft Docs . Consultado el 21 de agosto de 2021 .
^ Smith, Rod (23 de junio de 2011). "Necesidad de un código de tipo GUID GPT de Linux único (PATCH incluido)". bug-parted (Lista de correo) . Consultado el 12 de abril de 2016 .
^ Sergei Antonov (31 de julio de 2014). "libfdisk: (gpt) agregar GUID de espacios de almacenamiento de Microsoft". util-linux/util-linux.git - El repositorio de código de util-linux . Consultado el 21 de agosto de 2021 .
^ Problemas conocidos con la réplica de almacenamiento
^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb Especificación de particiones detectables (DPS)
^ abcde generador automático systemd-gpt(8)
^ Directorios de inicio
^ La especificación del cargador de arranque
^ ab "[dm-crypt] GUID GPT LUKS". Saout.de. Archivado desde el original el 2014-02-03 . Consultado el 2014-01-29 .
^ ab "[dm-crypt] GUID GPT LUKS". Saout.de. Archivado desde el original el 2014-02-03 . Consultado el 2014-01-29 .
^ ab "código fuente de pyuefi".
^ "Código fuente de udisks-2.7.4". GitHub . 10 de julio de 2022.
^ Guía del usuario de GNU/Hurd: Instalación, Instalación desde Internet
^ Hurd y GRUB utilizan el mismo sistema de archivos ext2 de Linux para ejecutarse y ya no admiten "UFS".sistema de archivos
^ Hurd utiliza el mismo sistema de archivos de intercambio de Linux
^ abcdef "Manual del administrador del sistema FreeBSD gpart(8)" . Consultado el 21 de agosto de 2021 .
^ "Agregar un tipo de partición para nandfs a los esquemas apm, bsd, gpt y vtoc8. · freebsd/freebsd-src@f24a822 · GitHub". GitHub . Consultado el 21 de agosto de 2021 .
^ "Registro CVS para src/sys/sys/disklabel_gpt.h". Cvsweb.netbsd.org . Consultado el 29 de enero de 2014 .
^ "Formato de disco: los proyectos de Chromium". Chromium.org . Consultado el 29 de enero de 2014 .
^ "Formato de disco: los proyectos de Chromium". Chromium.org . Consultado el 18 de enero de 2024 .
^ "Constantes e identificadores". CoreOS . Consultado el 26 de julio de 2018 .
^ "La especificación del cargador de arranque". freedesktop.org . Consultado el 5 de enero de 2017 .
^ "Guía del usuario del dispositivo de bloque SPDK" . Consultado el 20 de enero de 2021 .
^ "Marco de estado de Barebox" . Consultado el 21 de mayo de 2021 .
^ Villemoes, Rasmus (17 de noviembre de 2020). "RFC: GUID de tipo de partición para el entorno U-Boot". Lista de correo U-Boot (Lista de correo) . Consultado el 28 de septiembre de 2021 .
^ "Código fuente de U-boot 2021.07: include/part_efi.h". 20 de noviembre de 2020. Consultado el 28 de septiembre de 2021 .
^ ab zircon/sistema/público/zircon/hw/gpt.h
^ "[paver] agrega compatibilidad con un nuevo esquema de particiones" . Consultado el 22 de octubre de 2021 .
Enlaces externos
Microsoft TechNet: Sectores de disco en discos GPT (página archivada)
Implementación de Microsoft Windows: conversión de MBR a GPT sin pérdida de datos
Microsoft TechNet: Solución de problemas de discos y sistemas de archivos
Microsoft TechNet: Uso de unidades GPT
Microsoft: Preguntas frecuentes sobre el uso de discos GPT en Windows
Microsoft Technet: Cómo funcionan los discos y volúmenes básicos. Algunas cifras un poco específicas de MS pero buenas relacionan GPT con el formato MBR más antiguo y el MBR protector, muestran diseños de discos completos y cómo interpretar los volcados hexadecimales de la tabla de particiones.
Conexión de desarrolladores de Apple: secretos de GPT
Aproveche al máximo los discos de gran tamaño con GPT y Linux
Convertir el arranque x86_64 de Windows Vista SP1+ o 7 desde el modo BIOS-MBR al modo UEFI-GPT sin reinstalar
Compatibilidad con GPT (esquema de partición) y discos duros de más de 2,19 TB en Microsoft Windows XP
Configuración de un volumen RAID en Linux con discos de más de 2 TB