stringtranslate.com

Tabla de particiones GUID

El diseño de un disco con la tabla de particiones GUID. En este ejemplo, cada bloque lógico tiene un tamaño de 512 bytes y cada entrada tiene 128 bytes. Se supone que las entradas de partición correspondientes están ubicadas en LBA  2–33. Las direcciones LBA negativas indican una posición desde el final del volumen, donde −1 es el último bloque direccionable.

La tabla de particiones GUID ( GPT ) es un estándar para el diseño de tablas de particiones de un dispositivo de almacenamiento físico de computadora , como una unidad de disco duro o una unidad de estado sólido , que utiliza identificadores únicos universales (UUID), que también se conocen como identificadores únicos globales (GUID). Formando parte del estándar Unified Extensible Firmware Interface (UEFI) ( reemplazo propuesto por Unified EFI Forum para el BIOS de PC ), sin embargo también se usa para algunos BIOS, debido a las limitaciones de las tablas de particiones del registro de arranque maestro (MBR), que usan 32 bits para el direccionamiento de bloques lógicos (LBA) de sectores de disco tradicionales de 512 bytes .

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 de Linux pueden arrancar desde particiones GPT en sistemas con la interfaz de firmware BIOS o 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 direcciones de bloque e información relacionada está limitado a 32 bits. Para 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:

Microsoft define los atributos específicos de tipo para la partición de datos básica como: [15] [16]

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. [31]

Windows: versiones de 64 bits

Limitado a 128 particiones por disco. [31]

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.

Véase también

Notas

  1. ^ Agregar ULLun sufijo a una constante entera la convierte en de tipo unsigned long long int.
  2. ^ Existe implementación de terceros (GPTTSD)
  3. ^ Windows XP de 64 bits normalmente no admite el arranque desde discos GPT, pero existen métodos no oficiales para arrancar XP desde él. [36]
  4. ^ Solo si utiliza su paquete de servicio 1 o 2
  5. ^ En una configuración de varios discos, el cargador de arranque que no es UEFI (unidad de arranque) requiere particionamiento basado en MBR, mientras que una unidad del sistema puede usar particionamiento GUID.
  6. ^ 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
  7. ^ 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.
  8. ^ 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. [43]
  9. ^ 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. [45] Se identifica como el código de tipo 0x8300 en GPT fdisk.
  10. ^ ab El GUID para /usrSolaris se utiliza como un GUID genérico para ZFS en macOS.
  11. ^ ab NetBSD y MidnightBSD habían utilizado los GUID de FreeBSD antes de que se crearan sus GUID únicos.
  12. ^ El sistema de archivos Ceph utiliza GUID para marcar el estado de preparación en el que se encuentra un disco. [67] [68]
  13. ^ The legacy Fuchsia GUIDs had two oddities: UUIDs were not generated randomly (several runs of bits were common between partitions), and partitions were uniquely identified by type GUID. The standardized scheme uses randomly-generated GUIDs, and slotted partitions (e.g. zircon_{a,b,r}) share the same type and are distinguished by name and unique GUID.[83]

References

  1. ^ a b "FAQ: Drive Partition Limits" (PDF). www.uefi.org. 2010. Retrieved 12 December 2020.
  2. ^ a b c "Unified Extensible Firmware Interface (UEFI) Specification" (PDF). www.uefi.org. 29 August 2022. p. 110. Retrieved 23 June 2023.
  3. ^ Swinburne, Richard (1 April 2010). "The Facts: 4K Advanced Format Hard Disks". www.bit-tech.net. Retrieved 12 December 2020.
  4. ^ a b Smith, Ryan (18 December 2009). "Western Digital's Advanced Format: The 4K Sector Transition Begins". www.anandtech.com. Archived from the original on 28 December 2020. Retrieved 12 December 2020.
  5. ^ "Enterprise Capacity 3.5 HDD Data Sheet" (PDF). Seagate Technology. April 23, 2014. p. 2. Archived (PDF) from the original on 2014-08-12. Retrieved August 10, 2014.
  6. ^ "WD Re Datacenter Distribution Specification Sheet" (PDF). Western Digital. January 21, 2016. p. 2. Archived (PDF) from the original on 2015-09-06. Retrieved February 14, 2016.
  7. ^ "Advanced format (4K) disk compatibility update (Windows)". November 28, 2012. Archived from the original on 2013-01-11. Retrieved January 3, 2013.
  8. ^ "Microsoft support policy for 4K sector hard drives in Windows". Microsoft. Archived from the original on 2011-08-19. Retrieved October 24, 2013.
  9. ^ "UEFI specification". UEFI.org.
  10. ^ a b c d Smith, Roderick (3 July 2012). "Make the most of large drives with GPT and Linux". IBM. Retrieved 14 December 2020.
  11. ^ a b c d "Technical Note TN2166: Secrets of the GPT". Apple Developer. Apple. 2006-11-06. Retrieved 2014-04-16.
  12. ^ The GPT header contains a field that specifies the size of a partition table entry. The minimum required is 128 bytes, but implementations must allow for other values. See "Mac Developer Library". Developer.Apple.com. Apple. Retrieved 2014-07-13.
  13. ^ Leach, P.; Mealling, M.; Salz, R. (July 2005). A Universally Unique IDentifier (UUID) URN Namespace. Internet Engineering Task Force. doi:10.17487/RFC4122. RFC 4122. Retrieved 18 December 2020.{{citation}}: CS1 maint: year (link)
  14. ^ Elliott, Rob (4 January 2010). "e09127r3 EDD-4 Hybrid MBR Boot Code Annex" (PDF). www.t13.org. Archived from the original (PDF) on 20 August 2020. Retrieved 16 December 2020.
  15. ^ "GPT | Microsoft Docs". 31 August 2016.
  16. ^ "CREATE_PARTITION_PARAMETERS (vds.h) - Win32 apps | Microsoft Docs". 9 February 2023.
  17. ^ "Disk Format". Chromium.org. Retrieved 2022-02-09.
  18. ^ "Ubuntu on MacBook". Community Documentation. Ubuntu.
  19. ^ "GNU Parted FAQ".
  20. ^ "mklabel". Parted Manual. GNU.
  21. ^ "fdisk: add GPT support". kernel.org. 2013-09-27. Retrieved 2013-10-18.
  22. ^ Bueso, Davidlohr (2013-09-28). "fdisk updates and GPT support". Retrieved 2013-10-18.
  23. ^ "DISK_MAX_PARTS define". Archived from the original on 2020-03-26. Retrieved 2020-03-26.
  24. ^ "Myths and Facts About Intel Macs". rEFIt. Source forge.
  25. ^ "Significant changes from NetBSD 5.0 to 6.0"..
  26. ^ "Significant changes from NetBSD 5.0 to 6.0 (NetBSD/i386)"..
  27. ^ "Significant changes from NetBSD 5.0 to 6.0 (NetBSD/amd64)"..
  28. ^ "OpenBSD 5.9"..
  29. ^ "Booting from a ZFS Root File System". Oracle. Archived from the original on 2011-12-10.
  30. ^ "idisk(1M)". Hewlett-Packard.
  31. ^ a b c d "Windows and GPT FAQ". msdn.microsoft.com. 1 June 2017. Retrieved 14 December 2020.
  32. ^ Windows 8 32-bit supports booting from UEFI-based PC (x86-32 only) using GPT-based disks.
  33. ^ Windows 8.1 32-bit supports booting from UEFI-based PC (x86-32 only) using GPT-based disks.
  34. ^ Windows 10 32-bit supports booting from UEFI-based PC (x86-32 only) using GPT-based disks.
  35. ^ Microsoft raises the speed limit with the availability of 64-bit editions of Windows Server 2003 and Windows XP Professional Archived 2010-11-10 at the Wayback Machine
  36. ^ http://windowsenthusiasts1.epizy.com/WindowsXPUEFI.html?i=1 [bare URL]
  37. ^ Windows 8 64-bit supports booting from UEFI-based PC (x86-64 only) using GPT-based disks.
  38. ^ Windows 8.1 64-bit supports booting from UEFI-based PC (x86-64 only) using GPT-based disks.
  39. ^ Windows 10 64-bit supports booting from UEFI-based PC (x86-64 only) using GPT-based disks.
  40. ^ Microsoft's 'Weirdest Release': Windows Server 2022 Quietly Becomes Generally Available
  41. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2013-07-28.{{cite web}}: CS1 maint: archived copy as title (link)
  42. ^ "F6F: Funtoo Linux and Intel Rapid Start Technology". Blog.adios.tw. 2012-10-30. Retrieved 2014-01-29.
  43. ^ GPT fdisk: parttypes.cc, line 198
  44. ^ a b c d e "PARTITION_INFORMATION_GPT - Win32 apps". Microsoft Docs. Retrieved 2021-08-21.
  45. ^ Smith, Rod (23 June 2011). "Need for a unique Linux GPT GUID type code (PATCH included)". bug-parted (Mailing list). Retrieved 12 April 2016.
  46. ^ Sergei Antonov (2014-07-31). "libfdisk: (gpt) add Microsoft Storage Spaces GUID". util-linux/util-linux.git - The util-linux code repository. Retrieved 2021-08-21.
  47. ^ Known issues with Storage Replica
  48. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z 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 The Discoverable Partitions Specification (DPS)
  49. ^ a b c d e systemd-gpt-auto-generator(8)
  50. ^ Home Directories
  51. ^ The Boot Loader Specification
  52. ^ a b "[dm-crypt] LUKS GPT GUID". Saout.de. Archived from the original on 2014-02-03. Retrieved 2014-01-29.
  53. ^ a b "[dm-crypt] LUKS GPT GUID". Saout.de. Archived from the original on 2014-02-03. Retrieved 2014-01-29.
  54. ^ a b "pyuefi source code".
  55. ^ "udisks-2.7.4 source code". GitHub. 10 July 2022.
  56. ^ The GNU/Hurd User's Guide: Installing, Internet Install
  57. ^ Hurd and GRUB use the same Linux ext2 file system to run and it no longer supports "UFS". file system
  58. ^ Hurd uses the same Linux swap file system
  59. ^ a b c d e f "FreeBSD System Manager's Manual gpart(8)". Retrieved 2021-08-21.
  60. ^ "Add a partition type for nandfs to the apm, bsd, gpt and vtoc8 schemes. · freebsd/freebsd-src@f24a822 · GitHub". GitHub. Retrieved 2021-08-21.
  61. ^ "CVS log for src/sys/sys/disklabel_gpt.h". Cvsweb.netbsd.org. Retrieved 2014-01-29.
  62. ^ "Disk Format - The Chromium Projects". Chromium.org. Retrieved 2014-01-29.
  63. ^ "Disk Format - The Chromium Projects". Chromium.org. Retrieved 2024-01-18.
  64. ^ "Constants and IDs". CoreOS. Retrieved 2018-07-26.
  65. ^ src/add-ons/kernel/partitioning_systems/gpt/gpt_known_guids.h
  66. ^ http://www.midnightbsd.org/cgi-bin/cvsweb.cgi/src/sys/sys/gpt.h.diff?r1=1.4;r2=1.5[permanent dead link] src/sys/sys/gpt.h
  67. ^ Script to set up a ceph disk: ceph-disk, lines 76-81
  68. ^ ceph-disk labels
  69. ^ QNX Power-safe filesystem
  70. ^ "gpt.ini (github.com/android-ia/device-androidia-mixins)". GitHub.
  71. ^ "gpt.ini (github.com/android-ia/device-androidia)". GitHub.
  72. ^ "gpt.ini (github.com/android-ia/vendor_intel_baytrail)". GitHub.
  73. ^ "gpt-sample.ini (github.com/android-ia/platform_bootable_userfastboot)". GitHub.
  74. ^ "gpt_ini2bin.py (android.googlesource.com/platform/hardware/bsp/intel)".
  75. ^ "gpt.c (github.com/android-ia/platform_bootable_userfastboot)". GitHub.
  76. ^ "gpt_ini2bin.py (github.com/android-ia/vendor_intel_common)". GitHub.
  77. ^ "The Boot Loader Specification". freedesktop.org. Retrieved 2017-01-05.
  78. ^ "SPDK Block Device User Guide". Retrieved 2021-01-20.
  79. ^ "Marco de estado de Barebox" . Consultado el 21 de mayo de 2021 .
  80. ^ 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 .
  81. ^ "Código fuente de U-boot 2021.07: include/part_efi.h". 20 de noviembre de 2020. Consultado el 28 de septiembre de 2021 .
  82. ^ ab zircon/sistema/público/zircon/hw/gpt.h
  83. ^ "[paver] agrega compatibilidad con un nuevo esquema de particiones" . Consultado el 22 de octubre de 2021 .

Enlaces externos