Reactos
at listview 839 lines 42 kB view raw
1/* 2 * PROJECT: ReactOS Setup Library 3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) 4 * PURPOSE: MBR and GPT Partition types 5 * COPYRIGHT: Copyright 2018-2025 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org> 6 */ 7 8#include "precomp.h" 9#include "partinfo.h" 10 11/* MBR PARTITION TYPES *******************************************************/ 12 13/* 14 * This partition type list is based from: 15 * - the kernelDisk.c module of the Visopsys Operating System (see license below), 16 * - Paragon Hard-Disk Manager, 17 * - Haiku OS (Copyright 2003-2011, Haiku, Inc., under the terms of the MIT License) 18 * https://git.haiku-os.org/haiku/tree/src/add-ons/kernel/partitioning_systems/intel/PartitionMap.cpp#n52 (DEAD_LINK) 19 * - and the following websites: 20 * http://www.win.tue.nl/~aeb/partitions/partition_types-1.html 21 * https://en.wikipedia.org/wiki/Partition_type#List_of_partition_IDs 22 * https://www.magnumdb.com/search?q=PARTITION_* 23 */ 24/* 25 * kernelDisk.c 26 * 27 * Visopsys Operating System 28 * Copyright (C) 1998-2020 J. Andrew McLaughlin 29 * 30 * This program is free software; you can redistribute it and/or modify it 31 * under the terms of the GNU General Public License as published by the Free 32 * Software Foundation; either version 2 of the License, or (at your option) 33 * any later version. 34 * 35 * This program is distributed in the hope that it will be useful, but 36 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 37 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 38 * for more details. 39 * 40 * You should have received a copy of the GNU General Public License along 41 * with this program; if not, write to the Free Software Foundation, Inc., 42 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 43 */ 44 45typedef struct _MBR_PARTITION_TYPE 46{ 47 UCHAR Type; 48 PCSTR Description; 49} MBR_PARTITION_TYPE, *PMBR_PARTITION_TYPE; 50 51/* Known MBR partition type codes and descriptions */ 52const MBR_PARTITION_TYPE MbrPartitionTypes[] = 53{ 54 { 0x00, "(Empty)" }, // PARTITION_ENTRY_UNUSED 55 { 0x01, "FAT12" }, // PARTITION_FAT_12 56 { 0x02, "XENIX root" }, // PARTITION_XENIX_1 - "XENIX Type 1" 57 { 0x03, "XENIX /usr" }, // PARTITION_XENIX_2 - "XENIX Type 2" 58 { 0x04, "FAT16 (< 32 MB)" }, // PARTITION_FAT_16 59 { 0x05, "Extended" }, // PARTITION_EXTENDED - "Extended partition MS-DOS V4" 60 { 0x06, "FAT16" }, // PARTITION_HUGE - "Huge partition MS-DOS V4" 61 { 0x07, "NTFS/HPFS/exFAT" }, // PARTITION_IFS 62 { 0x08, "OS/2 or AIX boot partition" }, 63 { 0x09, "AIX data partition" }, 64 { 0x0A, "OS/2 Boot Manager" }, // PARTITION_OS2BOOTMGR - "OS/2 Boot Manager/OPUS/Coherent swap" 65 { 0x0B, "FAT32" }, // PARTITION_FAT32 66 { 0x0C, "FAT32 (LBA)" }, // PARTITION_FAT32_XINT13 67 { 0x0E, "FAT16 (LBA)" }, // PARTITION_XINT13 68 { 0x0F, "Extended (LBA)" }, // PARTITION_XINT13_EXTENDED 69 { 0x10, "OPUS" }, 70 { 0x11, "Hidden FAT12" }, 71 { 0x12, "FAT diagnostic (Compaq)" }, // PARTITION_EISA - "EISA partition" 72 { 0x13, "BTRON" }, 73 { 0x14, "Hidden FAT16 (< 32 MB)" }, 74 { 0x16, "Hidden FAT16" }, 75 { 0x17, "Hidden NTFS/HPFS" }, 76 { 0x18, "AST SmartSleep" }, 77 { 0x1B, "Hidden FAT32" }, 78 { 0x1C, "Hidden FAT32 (LBA)" }, 79 { 0x1E, "Hidden FAT16 (LBA)" }, 80 { 0x24, "NEC DOS 3.x" }, 81 { 0x27, "Microsoft Recovery partition" }, // PARTITION_MSFT_RECOVERY - "Microsoft recovery partition" 82 { 0x28, "Main OS partition" }, // PARTITION_MAIN_OS - "Main OS partition" 83 { 0x29, "OS Data partition" }, // PARTIITON_OS_DATA - "OS data partition" 84 { 0x2A, "AtheOS File System (AFS)" }, // PARTITION_PRE_INSTALLED - "PreInstalled partition" 85 { 0x2B, "SyllableSecure (SylStor)" }, // PARTITION_BSP - "BSP partition" 86 { 0x2C, "DPP partition" }, // PARTITION_DPP - "DPP partition" 87 { 0x2D, "Windows System partition" }, // PARTITION_WINDOWS_SYSTEM - "Windows system partition" 88 { 0x32, "NOS" }, 89 { 0x35, "JFS on OS/2 or eCS" }, 90 { 0x38, "THEOS v3.2 2GB partition" }, 91 { 0x39, "Plan 9" }, 92 { 0x3A, "THEOS v4 4GB partition" }, 93 { 0x3B, "THEOS v4 extended partition" }, 94 { 0x3C, "PartitionMagic recovery partition" }, 95 { 0x3D, "Hidden NetWare" }, 96 { 0x40, "Venix 80286 or Lynx" }, 97 { 0x41, "PowerPC PReP boot" }, // PARTITION_PREP - "PowerPC Reference Platform (PReP) Boot Partition" 98 { 0x42, "Win2K Dynamic Volume extended" }, // PARTITION_LDM - "Logical Disk Manager partition" 99 { 0x43, "Old Linux" }, 100 { 0x44, "GoBack" }, 101 { 0x45, "Priam or Boot-US Boot Manager" }, 102 { 0x4D, "QNX4.x" }, 103 { 0x4E, "QNX4.x 2nd partition" }, 104 { 0x4F, "QNX4.x 3rd partition" }, 105 { 0x50, "OnTrack Disk Manager R/O" }, 106 { 0x51, "OnTrack Disk Manager R/W or Novell" }, 107 { 0x52, "CP/M" }, 108 { 0x53, "OnTrack DM6 Aux3" }, 109 { 0x54, "OnTrack DM6 Dynamic Drive Overlay" }, // PARTITION_DM - "OnTrack Disk Manager partition" 110 { 0x55, "EZ-Drive" }, // PARTITION_EZDRIVE - "EZ-Drive partition" 111 { 0x56, "Golden Bow VFeature Partitioned Volume" }, 112 { 0x5C, "Priam EDisk" }, 113 { 0x61, "SpeedStor" }, 114 { 0x62, "Pick" }, 115 { 0x63, "GNU HURD or Unix System V (SCO, ISC Unix, UnixWare)" }, // PARTITION_UNIX 116 { 0x64, "Novell NetWare 286, 2.xx" }, 117 { 0x65, "Novell NetWare 386, 3.xx or 4.xx" }, 118 { 0x66, "Novell NetWare SMS partition" }, 119 { 0x67, "Novell" }, 120 { 0x68, "Novell" }, 121 { 0x69, "Novell NetWare 5+" }, 122 { 0x70, "DiskSecure Multi-Boot" }, 123 { 0x75, "IBM PC/IX" }, 124 { 0x78, "XOSL boot loader" }, 125 { 0x7E, "Veritas VxVM public" }, 126 { 0x7F, "Veritas VxVM private" }, 127 { 0x80, "Old MINIX" }, 128 { 0x81, "Linux or MINIX" }, 129 { 0x82, "Linux swap or Solaris" }, 130 { 0x83, "Linux Native" }, 131 { 0x84, "Hibernate" }, // PARTITION_HIBERNATION - "Hibernation partition for laptops" 132 { 0x85, "Linux Extended" }, 133 { 0x86, "FAT16 mirrored" }, 134 { 0x87, "NTFS/HPFS mirrored" }, 135 { 0x88, "Linux plaintext partition table" }, 136 { 0x8B, "FAT32 mirrored" }, 137 { 0x8C, "FAT32 (LBA) mirrored" }, 138 { 0x8E, "Linux LVM" }, 139 { 0x93, "Hidden Linux or Amoeba" }, 140 { 0x94, "Amoeba Bad Block Table" }, 141 { 0x96, "CDFS/ISO-9660" }, 142 { 0x9F, "BSD/OS" }, 143 { 0xA0, "Laptop Hibernate" }, // PARTITION_DIAGNOSTIC - "Diagnostic partition on some HP notebooks" 144 { 0xA1, "Laptop Hibernate (NEC 6000H)" }, 145 { 0xA5, "BSD, NetBSD, FreeBSD" }, 146 { 0xA6, "OpenBSD" }, 147 { 0xA7, "NeXTStep" }, 148 { 0xA8, "Darwin UFS" }, // Also known as "MacOS-X" 149 { 0xA9, "NetBSD" }, 150 { 0xAB, "Darwin boot" }, 151 { 0xAF, "Apple HFS/HFS+" }, 152 { 0xB1, "QNX6.x" }, 153 { 0xB2, "QNX6.x" }, 154 { 0xB3, "QNX6.x" }, 155 { 0xB6, "NT FAT16 corrupt mirror" }, 156 { 0xB7, "BSDI BSD/386 FS" }, // Alternatively, "NT NTFS corrupt mirror" 157 { 0xB8, "BSDI BSD/386 swap" }, 158 { 0xBB, "Boot Wizard hidden" }, 159 { 0xBC, "Paragon Backup capsule" }, 160 { 0xBE, "Solaris 8 boot partition" }, 161 { 0xBF, "Solaris 10 x86" }, 162 { 0xC0, "NTFT" }, // Alternatively, "CTOS" or "REAL/32 or DR-DOS or Novell-DOS secure partition" 163 { 0xC1, "DR-DOS FAT12" }, 164 { 0xC2, "Hidden Linux" }, 165 { 0xC3, "Hidden Linux swap" }, 166 { 0xC4, "DR-DOS FAT16 (< 32 MB)" }, 167 { 0xC5, "DR-DOS Extended" }, 168 { 0xC6, "DR-DOS FAT16" }, 169 { 0xC7, "HPFS mirrored" }, // Alternatively, "Syrinx boot" 170 { 0xCB, "DR-DOS FAT32" }, 171 { 0xCC, "DR-DOS FAT32 (LBA)" }, 172 { 0xCE, "DR-DOS FAT16 (LBA)" }, 173 { 0xD0, "MDOS" }, 174 { 0xD1, "MDOS FAT12" }, 175 { 0xD4, "MDOS FAT16 (< 32 MB)" }, 176 { 0xD5, "MDOS Extended" }, 177 { 0xD6, "MDOS FAT16" }, 178 { 0xD7, "Microsoft Storage Spaces Data" }, // PARTITION_SPACES_DATA - "Storage Spaces protective partition" 179 { 0xD8, "CP/M-86" }, 180 { 0xDB, "Digital Research CP/M" }, 181 { 0xDE, "Dell OEM" }, // PARTITION_DELL - "Dell partition" 182 { 0xDF, "BootIt EMBRM (FAT16/32)" }, 183 { 0xE1, "SpeedStor FAT12" }, 184 { 0xE3, "SpeedStor (0xE3)" }, 185 { 0xE4, "SpeedStor FAT16" }, 186 { 0xE5, "Tandy MSDOS" }, 187 { 0xE6, "SpeedStor (0xE6)" }, 188 { 0xE7, "Microsoft Storage Spaces Protective" }, // PARTITION_SPACES - "Storage Spaces protective partition" 189 { 0xE8, "Linux Unified Key Setup partition" }, 190 { 0xEA, "Rufus private partition" }, 191 { 0xEB, "BeOS/Haiku BFS" }, 192 { 0xEC, "SkyOS SkyFS" }, 193 { 0xEE, "EFI GPT protective" }, // PARTITION_GPT - "GPT protective partition" 194 { 0xEF, "EFI System partition" }, // PARTITION_SYSTEM - "System partition" 195 { 0xF0, "Linux/PA-RISC boot loader" }, 196 { 0xF1, "SpeedStor (0xF1)" }, 197 { 0xF2, "DOS 3.3+ second" }, 198 { 0xF4, "SpeedStor (0xF4)" }, 199 { 0xF5, "SpeedStor (0xF5)" }, 200 { 0xF6, "SpeedStor (0xF6)" }, 201 { 0xFA, "Bochs" }, 202 { 0xFB, "VMware FS" }, 203 { 0xFC, "VMware swap/VMKCORE" }, 204 { 0xFD, "Linux RAID auto" }, 205 { 0xFE, "NT hidden or IBM PS/2 IML or Veritas VM" }, // PARTITION_IBM - "IBM IML partition" 206 { 0xFF, "XENIX Bad Block Table or Veritas VM" }, 207}; 208 209 210/* GPT PARTITION TYPES *******************************************************/ 211 212#define GUID_CONST(l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ 213 { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } 214 215#if 0 216// 217// NOTE: For information only: The uncommented GUIDs below 218// are new ones defined in diskguid.h in Windows 10. 219// 220 221/* Partition GUIDs */ 222#include <initguid.h> 223#include <diskguid.h> 224 225/* 226 * EFI specification 227 */ 228// DEFINE_GUID(PARTITION_ENTRY_UNUSED_GUID, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); // Entry unused 229// DEFINE_GUID(PARTITION_SYSTEM_GUID, 0xC12A7328, 0xF81F, 0x11D2, 0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B); // EFI system partition 230DEFINE_GUID(PARTITION_LEGACYMBR_GUID, 0x024DEE41, 0x33E7, 0x11D3, 0x9D, 0x69, 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F); 231 232/* 233 * Microsoft Windows / ReactOS 234 */ 235// DEFINE_GUID(PARTITION_BASIC_DATA_GUID, 0xEBD0A0A2, 0xB9E5, 0x4433, 0x87, 0xC0, 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7); // Basic data partition 236DEFINE_GUID(PARTITION_MAIN_OS_GUID, 0x57434F53, 0x8F45, 0x405E, 0x8A, 0x23, 0x18, 0x6D, 0x8A, 0x43, 0x30, 0xD3); // Main OS partition 237DEFINE_GUID(PARTITION_OS_DATA_GUID, 0x57434F53, 0x23F2, 0x44D5, 0xA8, 0x30, 0x67, 0xBB, 0xDA, 0xA6, 0x09, 0xF9); // OS data partition 238DEFINE_GUID(PARTITION_LEGACY_BL_GUID, 0x424CA0E2, 0x7CB2, 0x4FB9, 0x81, 0x43, 0xC5, 0x2A, 0x99, 0x39, 0x8B, 0xC6); // Legacy boot loader partition 239DEFINE_GUID(PARTITION_LEGACY_BL_GUID_BACKUP, 0x424C3E6C, 0xD79F, 0x49CB, 0x93, 0x5D, 0x36, 0xD7, 0x14, 0x67, 0xA2, 0x88); // Legacy boot loader backup partition 240/** Logical Disk Manager (LDM) **/ 241// DEFINE_GUID(PARTITION_LDM_METADATA_GUID, 0x5808C8AA, 0x7E8F, 0x42E0, 0x85, 0xD2, 0xE1, 0xE9, 0x04, 0x34, 0xCF, 0xB3); // Logical Disk Manager metadata partition 242// DEFINE_GUID(PARTITION_LDM_DATA_GUID, 0xAF9B60A0, 0x1431, 0x4F62, 0xBC, 0x68, 0x33, 0x11, 0x71, 0x4A, 0x69, 0xAD); // Logical Disk Manager data partition 243// DEFINE_GUID(PARTITION_MSFT_RESERVED_GUID, 0xE3C9E316, 0x0B5C, 0x4DB8, 0x81, 0x7D, 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE); // Microsoft reserved space 244DEFINE_GUID(PARTITION_MSFT_RECOVERY_GUID, 0xDE94BBA4, 0x06D1, 0x4D40, 0xA1, 0x6A, 0xBF, 0xD5, 0x01, 0x79, 0xD6, 0xAC); // Microsoft recovery partition 245DEFINE_GUID(PARTITION_MSFT_SNAPSHOT_GUID, 0xCADDEBF1, 0x4400, 0x4DE8, 0xB1, 0x03, 0x12, 0x11, 0x7D, 0xCF, 0x3C, 0xCF); // Microsoft shadow copy partition 246DEFINE_GUID(PARTITION_CLUSTER_GUID, 0xDB97DBA9, 0x0840, 0x4BAE, 0x97, 0xF0, 0xFF, 0xB9, 0xA3, 0x27, 0xC7, 0xE1); // Cluster metadata partition 247/** Storage Spaces & Replica **/ 248DEFINE_GUID(PARTITION_SPACES_GUID, 0xE75CAF8F, 0xF680, 0x4CEE, 0xAF, 0xA3, 0xB0, 0x01, 0xE5, 0x6E, 0xFC, 0x2D); // Storage Spaces protective partition 249DEFINE_GUID(PARTITION_SPACES_DATA_GUID, 0xE7ADDCB4, 0xDC34, 0x4539, 0x9A, 0x76, 0xEB, 0xBD, 0x07, 0xBE, 0x6F, 0x7E); // Storage Spaces protective partition 250DEFINE_GUID(PARTITION_STORAGE_REPLICA_GUID, 0x558D43C5, 0xA1AC, 0x43C0, 0xAA, 0xC8, 0xD1, 0x47, 0x2B, 0x29, 0x23, 0xD1); 251DEFINE_GUID(PARTITION_PATCH_GUID, 0x8967A686, 0x96AA, 0x6AA8, 0x95, 0x89, 0xA8, 0x42, 0x56, 0x54, 0x10, 0x90); // Patch partition 252DEFINE_GUID(PARTITION_PRE_INSTALLED_GUID, 0x57434F53, 0x7FE0, 0x4196, 0x9B, 0x42, 0x42, 0x7B, 0x51, 0x64, 0x34, 0x84); // PreInstalled partition 253DEFINE_GUID(PARTITION_WINDOWS_SYSTEM_GUID, 0x57434F53, 0xE3E3, 0x4631, 0xA5, 0xC5, 0x26, 0xD2, 0x24, 0x38, 0x73, 0xAA); // Windows system partition 254/** IoT partitions **/ 255DEFINE_GUID(PARTITION_BSP_GUID, 0x57434F53, 0x4DF9, 0x45B9, 0x8E, 0x9E, 0x23, 0x70, 0xF0, 0x06, 0x45, 0x7C); // BSP partition 256DEFINE_GUID(PARTITION_DPP_GUID, 0x57434F53, 0x94CB, 0x43F0, 0xA5, 0x33, 0xD7, 0x3C, 0x10, 0xCF, 0xA5, 0x7D); // Device provisioning (DPP) partition 257 258#endif 259 260/* 261 * This partition type GUIDs list is based from: 262 * - the kernelDisk.c and gpt.h modules of the Visopsys Operating System 263 * (see license above), 264 * - NetBSD (Copyright (c) 2002 Marcel Moolenaar), 265 * http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/sys/disklabel_gpt.h?rev=1.14&content-type=text/plain&only_with_tag=MAIN 266 * - Haiku OS (Copyright 2003-2011, Haiku, Inc., under the terms of the MIT License) 267 * https://git.haiku-os.org/haiku/tree/src/add-ons/kernel/partitioning_systems/gpt/gpt_known_guids.h#n56 268 * - and the following websites: 269 * https://www.liquisearch.com/guid_partition_table/partition_type_guids 270 * https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs 271 * https://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/ 272 * https://systemd.io/DISCOVERABLE_PARTITIONS/ 273 * https://www.magnumdb.com/search?q=PARTITION_* 274 */ 275 276typedef struct _GPT_PARTITION_TYPE 277{ 278 GUID Guid; 279 PCSTR Description; 280} GPT_PARTITION_TYPE, *PGPT_PARTITION_TYPE; 281 282/* Known GPT partition type GUIDs and descriptions */ 283const GPT_PARTITION_TYPE GptPartitionTypes[] = 284{ 285 /* 286 * EFI specification 287 */ 288 { // PARTITION_ENTRY_UNUSED_GUID, 289 GUID_CONST(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), 290 "Unused partition" }, // "Unused entry" 291 { // PARTITION_SYSTEM_GUID, 292 GUID_CONST(0xC12A7328, 0xF81F, 0x11D2, 0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B), 293 "EFI/GPT System Partition" }, // "GPT Free Block" 294 { // PARTITION_LEGACYMBR_GUID, 295 GUID_CONST(0x024DEE41, 0x33E7, 0x11D3, 0x9D, 0x69, 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F), 296 "Legacy Master Boot Record Partition" }, 297 298 /* 299 * Various 300 */ 301 // GRUB 2 - "Hah!IdontNeedEFI" 302 { GUID_CONST(0x21686148, 0x6449, 0x6E6F, 0x74, 0x4E, 0x65, 0x65, 0x64, 0x45, 0x46, 0x49), 303 "GRUB 2 BIOS Boot partition" }, 304 // Intel Fast Flash (iFFS) partition (for Intel Rapid Start technology) 305 { GUID_CONST(0xD3BFE2DE, 0x3DAF, 0x11DF, 0xBA, 0x40, 0xE3, 0xA5, 0x56, 0xD8, 0x95, 0x93), 306 "Intel Fast Flash (iFFS) partition" }, 307 { GUID_CONST(0xF4019732, 0x066E, 0x4E12, 0x82, 0x73, 0x34, 0x6C, 0x56, 0x41, 0x49, 0x4F), 308 "Sony boot partition" }, 309 { GUID_CONST(0xBFBFAFE7, 0xA34F, 0x448A, 0x9A, 0x5B, 0x62, 0x13, 0xEB, 0x73, 0x6C, 0x22), 310 "Lenovo boot partition" }, 311 312 /* 313 * Microsoft Windows / ReactOS 314 */ 315 { // PARTITION_BASIC_DATA_GUID, 316 GUID_CONST(0xEBD0A0A2, 0xB9E5, 0x4433, 0x87, 0xC0, 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7), 317 "Microsoft Basic Data partition" }, 318 { // PARTITION_MAIN_OS_GUID, 319 GUID_CONST(0x57434F53, 0x8F45, 0x405E, 0x8A, 0x23, 0x18, 0x6D, 0x8A, 0x43, 0x30, 0xD3), 320 "Main OS partition" }, 321 { // PARTITION_OS_DATA_GUID, 322 GUID_CONST(0x57434F53, 0x23F2, 0x44D5, 0xA8, 0x30, 0x67, 0xBB, 0xDA, 0xA6, 0x09, 0xF9), 323 "OS Data partition" }, 324 { // PARTITION_LEGACY_BL_GUID, 325 GUID_CONST(0x424CA0E2, 0x7CB2, 0x4FB9, 0x81, 0x43, 0xC5, 0x2A, 0x99, 0x39, 0x8B, 0xC6), 326 "Microsoft Legacy Boot Loader partition" }, 327 { // PARTITION_LEGACY_BL_GUID_BACKUP, 328 GUID_CONST(0x424C3E6C, 0xD79F, 0x49CB, 0x93, 0x5D, 0x36, 0xD7, 0x14, 0x67, 0xA2, 0x88), 329 "Microsoft Legacy Boot Loader backup partition" }, 330 { // PARTITION_LDM_METADATA_GUID, 331 GUID_CONST(0x5808C8AA, 0x7E8F, 0x42E0, 0x85, 0xD2, 0xE1, 0xE9, 0x04, 0x34, 0xCF, 0xB3), 332 "Microsoft LDM MetaData partition" }, 333 { // PARTITION_LDM_DATA_GUID, 334 GUID_CONST(0xAF9B60A0, 0x1431, 0x4F62, 0xBC, 0x68, 0x33, 0x11, 0x71, 0x4A, 0x69, 0xAD), 335 "Microsoft LDM Data partition" }, 336 { // PARTITION_MSFT_RESERVED_GUID, 337 GUID_CONST(0xE3C9E316, 0x0B5C, 0x4DB8, 0x81, 0x7D, 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE), 338 "Microsoft Reserved partition" }, 339 { // PARTITION_MSFT_RECOVERY_GUID, 340 GUID_CONST(0xDE94BBA4, 0x06D1, 0x4D40, 0xA1, 0x6A, 0xBF, 0xD5, 0x01, 0x79, 0xD6, 0xAC), 341 "Microsoft Recovery partition" }, 342 { // PARTITION_MSFT_SNAPSHOT_GUID, 343 GUID_CONST(0xCADDEBF1, 0x4400, 0x4DE8, 0xB1, 0x03, 0x12, 0x11, 0x7D, 0xCF, 0x3C, 0xCF), 344 "Microsoft Shadow Copy partition" }, 345 { // PARTITION_CLUSTER_GUID, 346 GUID_CONST(0xDB97DBA9, 0x0840, 0x4BAE, 0x97, 0xF0, 0xFF, 0xB9, 0xA3, 0x27, 0xC7, 0xE1), 347 "Microsoft Cluster MetaData partition" }, 348 { // PARTITION_SPACES_GUID, 349 GUID_CONST(0xE75CAF8F, 0xF680, 0x4CEE, 0xAF, 0xA3, 0xB0, 0x01, 0xE5, 0x6E, 0xFC, 0x2D), 350 "Microsoft Storage Spaces partition" }, 351 { // PARTITION_SPACES_DATA_GUID, 352 GUID_CONST(0xE7ADDCB4, 0xDC34, 0x4539, 0x9A, 0x76, 0xEB, 0xBD, 0x07, 0xBE, 0x6F, 0x7E), 353 "Microsoft Storage Spaces Data" }, 354 { // PARTITION_STORAGE_REPLICA_GUID, 355 GUID_CONST(0x558D43C5, 0xA1AC, 0x43C0, 0xAA, 0xC8, 0xD1, 0x47, 0x2B, 0x29, 0x23, 0xD1), 356 "Microsoft Storage Replica partition" }, 357 { // PARTITION_PATCH_GUID, 358 GUID_CONST(0x8967A686, 0x96AA, 0x6AA8, 0x95, 0x89, 0xA8, 0x42, 0x56, 0x54, 0x10, 0x90), 359 "Microsoft Patch partition" }, 360 { // PARTITION_PRE_INSTALLED_GUID, 361 GUID_CONST(0x57434F53, 0x7FE0, 0x4196, 0x9B, 0x42, 0x42, 0x7B, 0x51, 0x64, 0x34, 0x84), 362 "Microsoft PreInstalled partition" }, 363 { // PARTITION_WINDOWS_SYSTEM_GUID, 364 GUID_CONST(0x57434F53, 0xE3E3, 0x4631, 0xA5, 0xC5, 0x26, 0xD2, 0x24, 0x38, 0x73, 0xAA), 365 "Windows System partition" }, 366 { // PARTITION_BSP_GUID, 367 GUID_CONST(0x57434F53, 0x4DF9, 0x45B9, 0x8E, 0x9E, 0x23, 0x70, 0xF0, 0x06, 0x45, 0x7C), 368 "BSP partition" }, 369 { // PARTITION_DPP_GUID, 370 GUID_CONST(0x57434F53, 0x94CB, 0x43F0, 0xA5, 0x33, 0xD7, 0x3C, 0x10, 0xCF, 0xA5, 0x7D), 371 "Device provisioning (DPP) partition" }, 372 373 /* 374 * IBM 375 */ 376 // "IBM General Parallel File System (GPFS) partition" 377 { GUID_CONST(0x37AFFC90, 0xEF7D, 0x4E96, 0x91, 0xC3, 0x2D, 0x7A, 0xE0, 0x55, 0xB1, 0x74), 378 "IBM GPFS" }, 379 { GUID_CONST(0x9E1A2D38, 0xC612, 0x4316, 0xAA, 0x26, 0x8B, 0x49, 0x52, 0x1E, 0x5A, 0x8B), 380 "IBM PowerPC PReP boot" }, 381 382 /* 383 * HP-UX 384 */ 385 { GUID_CONST(0x75894C1E, 0x3AEB, 0x11D3, 0xB7, 0xC1, 0x7B, 0x03, 0xA0, 0x00, 0x00, 0x00), 386 "HP-UX Data partition" }, 387 { GUID_CONST(0xE2A1E728, 0x32E3, 0x11D6, 0xA6, 0x82, 0x7B, 0x03, 0xA0, 0x00, 0x00, 0x00), 388 "HP-UX Service partition" }, 389 390 /* 391 * freedesktop.org / systemd 392 */ 393 /* Root partitions */ 394 { GUID_CONST(0x44479540, 0xF297, 0x41B2, 0x9A, 0xF7, 0xD1, 0x31, 0xD5, 0xF0, 0x45, 0x8A), 395 "Freedesktop Root partition (x86)" }, 396 { GUID_CONST(0x4F68BCE3, 0xE8CD, 0x4DB1, 0x96, 0xE7, 0xFB, 0xCA, 0xF9, 0x84, 0xB7, 0x09), 397 "Freedesktop Root partition (x86-64)" }, 398 { GUID_CONST(0x69DAD710, 0x2CE4, 0x4E3C, 0xB1, 0x6C, 0x21, 0xA1, 0xD4, 0x9A, 0xBE, 0xD3), 399 "Freedesktop Root partition (32-bit ARM)" }, 400 { GUID_CONST(0xB921B045, 0x1DF0, 0x41C3, 0xAF, 0x44, 0x4C, 0x6F, 0x28, 0x0D, 0x3F, 0xAE), 401 "Freedesktop Root partition (64-bit ARM/AArch64)" }, 402 { GUID_CONST(0x993D8D3D, 0xF80E, 0x4225, 0x85, 0x5A, 0x9D, 0xAF, 0x8E, 0xD7, 0xEA, 0x97), 403 "Freedesktop Root partition (IA64)" }, 404 /* Root dm-verity partitions */ 405 { GUID_CONST(0xD13C5D3B, 0xB5D1, 0x422A, 0xB2, 0x9F, 0x94, 0x54, 0xFD, 0xC8, 0x9D, 0x76), 406 "Freedesktop Root verity partition (x86)" }, 407 { GUID_CONST(0x2C7357ED, 0xEBD2, 0x46D9, 0xAE, 0xC1, 0x23, 0xD4, 0x37, 0xEC, 0x2B, 0xF5), 408 "Freedesktop Root verity partition (x86-64)" }, 409 { GUID_CONST(0x7386CDF2, 0x203C, 0x47A9, 0xA4, 0x98, 0xF2, 0xEC, 0xCE, 0x45, 0xA2, 0xD6), 410 "Freedesktop Root verity partition (32-bit ARM)" }, 411 { GUID_CONST(0xDF3300CE, 0xD69F, 0x4C92, 0x97, 0x8C, 0x9B, 0xFB, 0x0F, 0x38, 0xD8, 0x20), 412 "Freedesktop Root verity partition (64-bit ARM/AArch64)" }, 413 { GUID_CONST(0x86ED10D5, 0xB607, 0x45BB, 0x89, 0x57, 0xD3, 0x50, 0xF2, 0x3D, 0x05, 0x71), 414 "Freedesktop Root verity partition (IA64)" }, 415 /* User partitions */ 416 { GUID_CONST(0x75250D76, 0x8CC6, 0x458E, 0xBD, 0x66, 0xBD, 0x47, 0xCC, 0x81, 0xA8, 0x12), 417 "Freedesktop /usr partition (x86)" }, 418 { GUID_CONST(0x8484680C, 0x9521, 0x48C6, 0x9C, 0x11, 0xB0, 0x72, 0x06, 0x56, 0xF6, 0x9E), 419 "Freedesktop /usr partition (x86-64)" }, 420 { GUID_CONST(0x7D0359A3, 0x02B3, 0x4F0A, 0x86, 0x5C, 0x65, 0x44, 0x03, 0xE7, 0x06, 0x25), 421 "Freedesktop /usr partition (32-bit ARM)" }, 422 { GUID_CONST(0xB0E01050, 0xEE5F, 0x4390, 0x94, 0x9A, 0x91, 0x01, 0xB1, 0x71, 0x04, 0xE9), 423 "Freedesktop /usr partition (64-bit ARM/AArch64)" }, 424 { GUID_CONST(0x4301D2A6, 0x4E3B, 0x4B2A, 0xBB, 0x94, 0x9E, 0x0B, 0x2C, 0x42, 0x25, 0xEA), 425 "Freedesktop /usr partition (IA64)" }, 426 /* User dm-verity partitions */ 427 { GUID_CONST(0x8F461B0D, 0x14EE, 0x4E81, 0x9A, 0xA9, 0x04, 0x9B, 0x6F, 0xB9, 0x7A, 0xBD), 428 "Freedesktop /usr verity partition (x86)" }, 429 { GUID_CONST(0x77FF5F63, 0xE7B6, 0x4633, 0xAC, 0xF4, 0x15, 0x65, 0xB8, 0x64, 0xC0, 0xE6), 430 "Freedesktop /usr verity partition (x86-64)" }, 431 { GUID_CONST(0xC215D751, 0x7BCD, 0x4649, 0xBE, 0x90, 0x66, 0x27, 0x49, 0x0A, 0x4C, 0x05), 432 "Freedesktop /usr verity partition (32-bit ARM)" }, 433 { GUID_CONST(0x6E11A4E7, 0xFBCA, 0x4DED, 0xB9, 0xE9, 0xE1, 0xA5, 0x12, 0xBB, 0x66, 0x4E), 434 "Freedesktop /usr verity partition (64-bit ARM/AArch64)" }, 435 { GUID_CONST(0x6A491E03, 0x3BE7, 0x4545, 0x8E, 0x38, 0x83, 0x32, 0x0E, 0x0E, 0xA8, 0x80), 436 "Freedesktop /usr verity partition (IA64)" }, 437 /* Native */ 438 { GUID_CONST(0x933AC7E1, 0x2EB4, 0x4F13, 0xB8, 0x44, 0x0E, 0x14, 0xE2, 0xAE, 0xF9, 0x15), 439 "Freedesktop /home partition" }, 440 { GUID_CONST(0x3B8F8425, 0x20E0, 0x4F3B, 0x90, 0x7F, 0x1A, 0x25, 0xA7, 0x6F, 0x98, 0xE8), 441 "Freedesktop /srv (server data) partition" }, 442 /* Variable data */ 443 { GUID_CONST(0x4D21B016, 0xB534, 0x45C2, 0xA9, 0xFB, 0x5C, 0x16, 0xE0, 0x91, 0xFD, 0x2D), 444 "Freedesktop /var partition" }, 445 { GUID_CONST(0x7EC6F557, 0x3BC5, 0x4ACA, 0xB2, 0x93, 0x16, 0xEF, 0x5D, 0xF6, 0x39, 0xD1), 446 "Freedesktop /var/tmp partition" }, 447 /* Boot partition */ 448 // "Extended Boot Loader Partition" / "Shared boot loader configuration" 449 { GUID_CONST(0xBC13C2FF, 0x59E6, 0x4262, 0xA3, 0x52, 0xB2, 0x75, 0xFD, 0x6F, 0x71, 0x72), 450 "Freedesktop /boot partition" }, 451 452 /* 453 * Linux 454 */ 455 { GUID_CONST(0x0FC63DAF, 0x8483, 0x4772, 0x8E, 0x79, 0x3D, 0x69, 0xD8, 0x47, 0x7D, 0xE4), 456 "Linux data" }, 457 { GUID_CONST(0xA19D880F, 0x05FC, 0x4D3B, 0xA0, 0x06, 0x74, 0x3F, 0x0F, 0x84, 0x91, 0x1E), 458 "Linux RAID partition" }, 459 { GUID_CONST(0x0657FD6D, 0xA4AB, 0x43C4, 0x84, 0xE5, 0x09, 0x33, 0xC8, 0x4B, 0x4F, 0x4F), 460 "Linux Swap partition" }, 461 // Logical Volume Manager (LVM) 462 { GUID_CONST(0xE6D6D379, 0xF507, 0x44C2, 0xA2, 0x3C, 0x23, 0x8F, 0x2A, 0x3D, 0xF9, 0x28), 463 "Linux LVM partition" }, 464 { GUID_CONST(0x8DA63339, 0x0007, 0x60C0, 0xC4, 0x36, 0x08, 0x3A, 0xC8, 0x23, 0x09, 0x08), 465 "Linux reserved" }, 466 { GUID_CONST(0x7FFEC5C9, 0x2D00, 0x49B7, 0x89, 0x41, 0x3E, 0xA1, 0x0A, 0x55, 0x86, 0xB7), 467 "Linux Plain dm-crypt partition" }, 468 { GUID_CONST(0xCA7D7CCB, 0x63ED, 0x4C53, 0x86, 0x1C, 0x17, 0x42, 0x53, 0x60, 0x59, 0xCC), 469 "Linux LUKS partition" }, 470 471 /* 472 * FreeBSD 473 */ 474 { GUID_CONST(0x83BD6B9D, 0x7F41, 0x11DC, 0xBE, 0x0B, 0x00, 0x15, 0x60, 0xB8, 0x4F, 0x0F), 475 "FreeBSD Boot" }, 476 { GUID_CONST(0x516E7CB4, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B), 477 "FreeBSD Data" }, 478 { GUID_CONST(0x516E7CB5, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B), 479 "FreeBSD Swap" }, 480 // Unix File System (UFS) 481 { GUID_CONST(0x516E7CB6, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B), 482 "FreeBSD UFS" }, 483 /* The following is unused but documented here to avoid reuse. 484 * GUID_CONST(0x516E7CB7, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B); 485 */ 486 // Vinum volume manager 487 { GUID_CONST(0x516E7CB8, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B), 488 "FreeBSD Vinum" }, 489 { GUID_CONST(0x516E7CBA, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B), 490 "FreeBSD ZFS" }, 491 492 /* 493 * MidnightBSD 494 */ 495 { GUID_CONST(0x85D5E45E, 0x237C, 0x11E1, 0xB4, 0xB3, 0xE8, 0x9A, 0x8F, 0x7F, 0xC3, 0xA7), 496 "MidnightBSD Boot" }, 497 { GUID_CONST(0x85D5E45A, 0x237C, 0x11E1, 0xB4, 0xB3, 0xE8, 0x9A, 0x8F, 0x7F, 0xC3, 0xA7), 498 "MidnightBSD Data" }, 499 { GUID_CONST(0x85D5E45B, 0x237C, 0x11E1, 0xB4, 0xB3, 0xE8, 0x9A, 0x8F, 0x7F, 0xC3, 0xA7), 500 "MidnightBSD Swap" }, 501 // Unix File System (UFS) 502 { GUID_CONST(0x0394EF8B, 0x237E, 0x11E1, 0xB4, 0xB3, 0xE8, 0x9A, 0x8F, 0x7F, 0xC3, 0xA7), 503 "MidnightBSD UFS" }, 504 // Vinum volume manager 505 { GUID_CONST(0x85D5E45C, 0x237C, 0x11E1, 0xB4, 0xB3, 0xE8, 0x9A, 0x8F, 0x7F, 0xC3, 0xA7), 506 "MidnightBSD Vinum" }, 507 { GUID_CONST(0x85D5E45D, 0x237C, 0x11E1, 0xB4, 0xB3, 0xE8, 0x9A, 0x8F, 0x7F, 0xC3, 0xA7), 508 "MidnightBSD ZFS" }, 509 510 /* 511 * NetBSD 512 */ 513 { GUID_CONST(0x49F48D32, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48), 514 "NetBSD Swap" }, 515 { GUID_CONST(0x49F48D5A, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48), 516 "NetBSD FFS" }, 517 { GUID_CONST(0x49F48D82, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48), 518 "NetBSD LFS" }, 519 // NetBSD RAID Frame 520 { GUID_CONST(0x49F48DAA, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48), 521 "NetBSD RAID" }, 522 // NetBSD CCD 523 { GUID_CONST(0x2DB519C4, 0xB10F, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48), 524 "NetBSD Concatenated partition" }, 525 // NetBSD CGD 526 { GUID_CONST(0x2DB519EC, 0xB10F, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48), 527 "NetBSD Encrypted partition" }, 528 529 /* 530 * OpenBSD 531 */ 532 { GUID_CONST(0x824CC7A0, 0x36A8, 0x11E3, 0x89, 0x0A, 0x95, 0x25, 0x19, 0xAD, 0x3F, 0x61), 533 "OpenBSD Data" }, 534 535 /* 536 * DragonFlyBSD 537 */ 538 { GUID_CONST(0x9D087404, 0x1CA5, 0x11DC, 0x88, 0x17, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 539 "DragonFlyBSD L32" }, 540 { GUID_CONST(0x3D48CE54, 0x1D16, 0x11DC, 0x86, 0x96, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 541 "DragonFlyBSD L64" }, 542 { GUID_CONST(0xBD215AB2, 0x1D16, 0x11DC, 0x86, 0x96, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 543 "DragonFlyBSD Legacy" }, 544 { GUID_CONST(0xDBD5211B, 0x1CA5, 0x11DC, 0x88, 0x17, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 545 "DragonFlyBSD Concatenated partition" }, 546 { GUID_CONST(0x61DC63AC, 0x6E38, 0x11DC, 0x85, 0x13, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 547 "DragonFlyBSD Hammer" }, 548 { GUID_CONST(0x5CBB9AD1, 0x862D, 0x11DC, 0xA9, 0x4D, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 549 "DragonFlyBSD Hammer 2" }, 550 { GUID_CONST(0x9D58FDBD, 0x1CA5, 0x11DC, 0x88, 0x17, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 551 "DragonFlyBSD Swap" }, 552 // Unix File System (UFS) 553 { GUID_CONST(0x9D94CE7C, 0x1CA5, 0x11DC, 0x88, 0x17, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 554 "DragonFlyBSD UFS" }, 555 // Vinum volume manager 556 { GUID_CONST(0x9DD4478F, 0x1CA5, 0x11DC, 0x88, 0x17, 0x01, 0x30, 0x1B, 0xB8, 0xA9, 0xF5), 557 "DragonFlyBSD Vinum" }, 558 559 /* 560 * Apple / MacOS Darwin 561 */ 562 { GUID_CONST(0x6A898CC3, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 563 "Apple ZFS / Solaris /usr" }, 564 // APPLE_HFS "Apple data partition" / "Mac OS X Hierarchical File System Plus (HFS+) partition" 565 { GUID_CONST(0x48465300, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 566 "MacOS X HFS+" }, 567 // "Apple APFS container" 568 { GUID_CONST(0x7C3457EF, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 569 "APFS FileVault volume container" }, 570 { GUID_CONST(0x55465300, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 571 "Apple UFS container" }, 572 { GUID_CONST(0x52414944, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 573 "Apple RAID" }, 574 { GUID_CONST(0x52414944, 0x5F4F, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 575 "Apple RAID offline" }, 576 { GUID_CONST(0x426F6F74, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 577 "Apple Boot partition (Recovery HD)" }, 578 { GUID_CONST(0x4C616265, 0x6C00, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 579 "Apple Label" }, 580 { GUID_CONST(0x5265636F, 0x7665, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 581 "Apple TV Recovery partition" }, 582 { GUID_CONST(0x53746F72, 0x6167, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC), 583 "Apple Core Storage (Lion FileVault) Container" }, 584 { GUID_CONST(0xB6FA30DA, 0x92D2, 0x4A9A, 0x96, 0xF1, 0x87, 0x1E, 0xC6, 0x48, 0x62, 0x00), 585 "SoftRAID_Status" }, 586 { GUID_CONST(0x2E313465, 0x19B9, 0x463F, 0x81, 0x26, 0x8A, 0x79, 0x93, 0x77, 0x38, 0x01), 587 "SoftRAID_Scratch" }, 588 { GUID_CONST(0xFA709C7E, 0x65B1, 0x4593, 0xBF, 0xD5, 0xE7, 0x1D, 0x61, 0xDE, 0x9B, 0x02), 589 "SoftRAID_Volume" }, 590 { GUID_CONST(0xBBBA6DF5, 0xF46F, 0x4A89, 0x8F, 0x59, 0x87, 0x65, 0xB2, 0x72, 0x75, 0x03), 591 "SoftRAID_Cache" }, 592 593 /* 594 * Solaris / Illumos 595 */ 596 { GUID_CONST(0x6A82CB45, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 597 "Solaris Boot" }, 598 { GUID_CONST(0x6A85CF4D, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 599 "Solaris Root" }, 600 { GUID_CONST(0x6A87C46F, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 601 "Solaris Swap" }, 602 { GUID_CONST(0x6A8B642B, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 603 "Solaris Backup" }, 604 // See MacOS "Apple ZFS partition" 605 // { GUID_CONST(0x6A898CC3, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 606 // "Solaris /usr" }, 607 { GUID_CONST(0x6A8EF2E9, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 608 "Solaris /var" }, 609 { GUID_CONST(0x6A90BA39, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 610 "Solaris /home" }, 611 { GUID_CONST(0x6A9283A5, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 612 "Solaris Alternate sector" }, 613 { GUID_CONST(0x6A945A3B, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 614 "Solaris Reserved" }, 615 { GUID_CONST(0x6A9630D1, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 616 "Solaris Reserved" }, 617 { GUID_CONST(0x6A980767, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 618 "Solaris Reserved" }, 619 { GUID_CONST(0x6A96237F, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 620 "Solaris Reserved" }, 621 { GUID_CONST(0x6A8D2AC7, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31), 622 "Solaris Reserved" }, 623 624 /* 625 * ChromeOS 626 */ 627 { GUID_CONST(0xFE3A2A5D, 0x4F32, 0x41A7, 0xB7, 0x25, 0xAC, 0xCC, 0x32, 0x85, 0xA3, 0x09), 628 "ChromeOS kernel" }, 629 { GUID_CONST(0x3CB8E202, 0x3B7E, 0x47DD, 0x8A, 0x3C, 0x7F, 0xF2, 0xA1, 0x3C, 0xFC, 0xEC), 630 "ChromeOS rootfs" }, 631 { GUID_CONST(0x2E0A753D, 0x9E48, 0x43B0, 0x83, 0x37, 0xB1, 0x51, 0x92, 0xCB, 0x1B, 0x5E), 632 "ChromeOS future use" }, 633 634 /* 635 * Haiku 636 */ 637 { GUID_CONST(0x42465331, 0x3BA3, 0x10F1, 0x80, 0x2A, 0x48, 0x61, 0x69, 0x6B, 0x75, 0x21), 638 "Haiku BFS" }, 639 640 /* 641 * Container Linux 642 */ 643 { GUID_CONST(0x5DFBF5F4, 0x2848, 0x4BAC, 0xAA, 0x5E, 0x0D, 0x9A, 0x20, 0xB7, 0x45, 0xA6), 644 "/usr partition (coreos-usr)" }, 645 { GUID_CONST(0x3884DD41, 0x8582, 0x4404, 0xB9, 0xA8, 0xE9, 0xB8, 0x4F, 0x2D, 0xF5, 0x0E), 646 "Resizable rootfs (coreos-resize)" }, 647 { GUID_CONST(0xC95DC21A, 0xDF0E, 0x4340, 0x8D, 0x7B, 0x26, 0xCB, 0xFA, 0x9A, 0x03, 0xE0), 648 "OEM customizations (coreos-reserved)" }, 649 { GUID_CONST(0xBE9067B9, 0xEA49, 0x4F15, 0xB4, 0xF6, 0xF3, 0x6F, 0x8C, 0x9E, 0x18, 0x18), 650 "Root filesystem on RAID (coreos-root-raid)" }, 651 652 /* 653 * Ceph 654 */ 655 { GUID_CONST(0x45B0969E, 0x9B03, 0x4F30, 0xB4, 0xC6, 0xB4, 0xB8, 0x0C, 0xEF, 0xF1, 0x06), 656 "Ceph Journal" }, 657 { GUID_CONST(0x45B0969E, 0x9B03, 0x4F30, 0xB4, 0xC6, 0x5E, 0xC0, 0x0C, 0xEF, 0xF1, 0x06), 658 "dm-crypt journal" }, 659 { GUID_CONST(0x4FBD7E29, 0x9D25, 0x41B8, 0xAF, 0xD0, 0x06, 0x2C, 0x0C, 0xEF, 0xF0, 0x5D), 660 "Ceph OSD" }, 661 { GUID_CONST(0x4FBD7E29, 0x9D25, 0x41B8, 0xAF, 0xD0, 0x5E, 0xC0, 0x0C, 0xEF, 0xF0, 0x5D), 662 "dm-crypt OSD" }, 663 { GUID_CONST(0x89C57F98, 0x2FE5, 0x4DC0, 0x89, 0xC1, 0xF3, 0xAD, 0x0C, 0xEF, 0xF2, 0xBE), 664 "Ceph Disk in creation" }, 665 { GUID_CONST(0x89C57F98, 0x2FE5, 0x4DC0, 0x89, 0xC1, 0x5E, 0xC0, 0x0C, 0xEF, 0xF2, 0xBE), 666 "dm-crypt disk in creation" }, 667 { GUID_CONST(0xCAFECAFE, 0x9B03, 0x4F30, 0xB4, 0xC6, 0xB4, 0xB8, 0x0C, 0xEF, 0xF1, 0x06), 668 "Ceph Block" }, 669 { GUID_CONST(0x30CD0809, 0xC2B2, 0x499C, 0x88, 0x79, 0x2D, 0x6B, 0x78, 0x52, 0x98, 0x76), 670 "Ceph Block DB" }, 671 { GUID_CONST(0x5CE17FCE, 0x4087, 0x4169, 0xB7, 0xFF, 0x05, 0x6C, 0xC5, 0x84, 0x73, 0xF9), 672 "Ceph Block write-ahead log" }, 673 { GUID_CONST(0xFB3AABF9, 0xD25F, 0x47CC, 0xBF, 0x5E, 0x72, 0x1D, 0x18, 0x16, 0x49, 0x6B), 674 "Lockbox for dm-crypt keys" }, 675 { GUID_CONST(0x4FBD7E29, 0x8AE0, 0x4982, 0xBF, 0x9D, 0x5A, 0x8D, 0x86, 0x7A, 0xF5, 0x60), 676 "Ceph Multipath OSD" }, 677 { GUID_CONST(0x45B0969E, 0x8AE0, 0x4982, 0xBF, 0x9D, 0x5A, 0x8D, 0x86, 0x7A, 0xF5, 0x60), 678 "Ceph Multipath journal" }, 679 { GUID_CONST(0xCAFECAFE, 0x8AE0, 0x4982, 0xBF, 0x9D, 0x5A, 0x8D, 0x86, 0x7A, 0xF5, 0x60), 680 "Ceph Multipath block" }, 681 { GUID_CONST(0x7F4A666A, 0x16F3, 0x47A2, 0x84, 0x45, 0x15, 0x2E, 0xF4, 0xD0, 0x3F, 0x6C), 682 "Ceph Multipath block" }, 683 { GUID_CONST(0xEC6D6385, 0xE346, 0x45DC, 0xBE, 0x91, 0xDA, 0x2A, 0x7C, 0x8B, 0x32, 0x61), 684 "Ceph Multipath block DB" }, 685 { GUID_CONST(0x01B41E1B, 0x002A, 0x453C, 0x9F, 0x17, 0x88, 0x79, 0x39, 0x89, 0xFF, 0x8F), 686 "Ceph Multipath block write-ahead log" }, 687 { GUID_CONST(0xCAFECAFE, 0x9B03, 0x4F30, 0xB4, 0xC6, 0x5E, 0xC0, 0x0C, 0xEF, 0xF1, 0x06), 688 "dm-crypt block" }, 689 { GUID_CONST(0x93B0052D, 0x02D9, 0x4D8A, 0xA4, 0x3B, 0x33, 0xA3, 0xEE, 0x4D, 0xFB, 0xC3), 690 "dm-crypt block DB" }, 691 { GUID_CONST(0x306E8683, 0x4FE2, 0x4330, 0xB7, 0xC0, 0x00, 0xA9, 0x17, 0xC1, 0x69, 0x66), 692 "dm-crypt block write-ahead log" }, 693 { GUID_CONST(0x45B0969E, 0x9B03, 0x4F30, 0xB4, 0xC6, 0x35, 0x86, 0x5C, 0xEF, 0xF1, 0x06), 694 "dm-crypt LUKS journal" }, 695 { GUID_CONST(0xCAFECAFE, 0x9B03, 0x4F30, 0xB4, 0xC6, 0x35, 0x86, 0x5C, 0xEF, 0xF1, 0x06), 696 "dm-crypt LUKS block" }, 697 { GUID_CONST(0x166418DA, 0xC469, 0x4022, 0xAD, 0xF4, 0xB3, 0x0A, 0xFD, 0x37, 0xF1, 0x76), 698 "dm-crypt LUKS block DB" }, 699 { GUID_CONST(0x86A32090, 0x3647, 0x40B9, 0xBB, 0xBD, 0x38, 0xD8, 0xC5, 0x73, 0xAA, 0x86), 700 "dm-crypt LUKS block write-ahead log" }, 701 { GUID_CONST(0x4FBD7E29, 0x9D25, 0x41B8, 0xAF, 0xD0, 0x35, 0x86, 0x5C, 0xEF, 0xF0, 0x5D), 702 "dm-crypt LUKS OSD" }, 703 704 /* 705 * QNX 706 */ 707 { GUID_CONST(0xCEF5A9AD, 0x73BC, 0x4601, 0x89, 0xF3, 0xCD, 0xEE, 0xEE, 0xE3, 0x21, 0xA1), 708 "Power-safe (QNX6) file system" }, 709 710 /* 711 * Plan 9 712 */ 713 { GUID_CONST(0xC91818F9, 0x8025, 0x47AF, 0x89, 0xD2, 0xF0, 0x30, 0xD7, 0x00, 0x0C, 0x2C), 714 "Plan 9 partition" }, 715 716 /* 717 * VMware ESX 718 */ 719 { GUID_CONST(0xAA31E02A, 0x400F, 0x11DB, 0x95, 0x90, 0x00, 0x0C, 0x29, 0x11, 0xD1, 0xB8), 720 "VMware VMFS" }, 721 { GUID_CONST(0x9D275380, 0x40AD, 0x11DB, 0xBF, 0x97, 0x00, 0x0C, 0x29, 0x11, 0xD1, 0xB8), 722 "VMware VMKCORE" }, 723 { GUID_CONST(0x9198EFFC, 0x31C0, 0x11DB, 0x8F, 0x78, 0x00, 0x0C, 0x29, 0x11, 0xD1, 0xB8), 724 "VMware Reserved" }, 725 { GUID_CONST(0x381CFCCC, 0x7288, 0x11E0, 0x92, 0xEE, 0x00, 0x0C, 0x29, 0x11, 0xD0, 0xB2), 726 "VMware vSAN" }, 727 728 /* 729 * Android-IA 730 */ 731 { GUID_CONST(0x2568845D, 0x2332, 0x4675, 0xBC, 0x39, 0x8F, 0xA5, 0xA4, 0x74, 0x8D, 0x15), 732 "Android Bootloader" }, 733 { GUID_CONST(0x114EAFFE, 0x1552, 0x4022, 0xB2, 0x6E, 0x9B, 0x05, 0x36, 0x04, 0xCF, 0x84), 734 "Android Bootloader2" }, 735 { GUID_CONST(0x49A4D17F, 0x93A3, 0x45C1, 0xA0, 0xDE, 0xF5, 0x0B, 0x2E, 0xBE, 0x25, 0x99), 736 "Android Boot" }, 737 { GUID_CONST(0x4177C722, 0x9E92, 0x4AAB, 0x86, 0x44, 0x43, 0x50, 0x2B, 0xFD, 0x55, 0x06), 738 "Android Recovery" }, 739 { GUID_CONST(0xEF32A33B, 0xA409, 0x486C, 0x91, 0x41, 0x9F, 0xFB, 0x71, 0x1F, 0x62, 0x66), 740 "Android Misc" }, 741 { GUID_CONST(0x20AC26BE, 0x20B7, 0x11E3, 0x84, 0xC5, 0x6C, 0xFD, 0xB9, 0x47, 0x11, 0xE9), 742 "Android Metadata" }, 743 { GUID_CONST(0x38F428E6, 0xD326, 0x425D, 0x91, 0x40, 0x6E, 0x0E, 0xA1, 0x33, 0x64, 0x7C), 744 "Android System" }, 745 { GUID_CONST(0xA893EF21, 0xE428, 0x470A, 0x9E, 0x55, 0x06, 0x68, 0xFD, 0x91, 0xA2, 0xD9), 746 "Android Cache" }, 747 { GUID_CONST(0xDC76DDA9, 0x5AC1, 0x491C, 0xAF, 0x42, 0xA8, 0x25, 0x91, 0x58, 0x0C, 0x0D), 748 "Android Data" }, 749 { GUID_CONST(0xEBC597D0, 0x2053, 0x4B15, 0x8B, 0x64, 0xE0, 0xAA, 0xC7, 0x5F, 0x4D, 0xB1), 750 "Android Persistent" }, 751 { GUID_CONST(0xC5A0AEEC, 0x13EA, 0x11E5, 0xA1, 0xB1, 0x00, 0x1E, 0x67, 0xCA, 0x0C, 0x3C), 752 "Android Vendor" }, 753 { GUID_CONST(0xBD59408B, 0x4514, 0x490D, 0xBF, 0x12, 0x98, 0x78, 0xD9, 0x63, 0xF3, 0x78), 754 "Android Config" }, 755 { GUID_CONST(0x8F68CC74, 0xC5E5, 0x48DA, 0xBE, 0x91, 0xA0, 0xC8, 0xC1, 0x5E, 0x9C, 0x80), 756 "Android Factory" }, 757 { GUID_CONST(0x9FDAA6EF, 0x4B3F, 0x40D2, 0xBA, 0x8D, 0xBF, 0xF1, 0x6B, 0xFB, 0x88, 0x7B), 758 "Android Factory (alt)" }, 759 { GUID_CONST(0x767941D0, 0x2085, 0x11E3, 0xAD, 0x3B, 0x6C, 0xFD, 0xB9, 0x47, 0x11, 0xE9), 760 "Android Fastboot / Tertiary" }, 761 { GUID_CONST(0xAC6D7924, 0xEB71, 0x4DF8, 0xB4, 0x8D, 0xE2, 0x67, 0xB2, 0x71, 0x48, 0xFF), 762 "Android OEM" }, 763 764 /* 765 * Android 6.0+ ARM 766 */ 767 { GUID_CONST(0x19A710A2, 0xB3CA, 0x11E4, 0xB0, 0x26, 0x10, 0x60, 0x4B, 0x88, 0x9D, 0xCF), 768 "Android Meta" }, 769 { GUID_CONST(0x193D1EA4, 0xB3CA, 0x11E4, 0xB0, 0x75, 0x10, 0x60, 0x4B, 0x88, 0x9D, 0xCF), 770 "Android EXT" }, 771 772 /* 773 * ONIE (Open Network Install Environment) 774 */ 775 { GUID_CONST(0x7412F7D5, 0xA156, 0x4B13, 0x81, 0xDC, 0x86, 0x71, 0x74, 0x92, 0x93, 0x25), 776 "ONIE Boot" }, 777 { GUID_CONST(0xD4E6E2CD, 0x4469, 0x46F3, 0xB5, 0xCB, 0x1B, 0xFF, 0x57, 0xAF, 0xC1, 0x49), 778 "ONIE Config" }, 779 780 /* 781 * Atari TOS 782 */ 783 { GUID_CONST(0x734E5AFE, 0xF61A, 0x11E6, 0xBC, 0x64, 0x92, 0x36, 0x1F, 0x00, 0x26, 0x71), 784 "Atari TOS Basic data partition (GEM, BGM, F32)" }, 785 786 /* 787 * VeraCrypt 788 */ 789 { GUID_CONST(0x8C8F8EFF, 0xAC95, 0x4770, 0x81, 0x4A, 0x21, 0x99, 0x4F, 0x2D, 0xBC, 0x8F), 790 "VeraCrypt Encrypted data partition" }, 791 792 /* 793 * OS/2 ArcaOS 794 */ 795 { GUID_CONST(0x90B6FF38, 0xB98F, 0x4358, 0xA2, 0x1F, 0x48, 0xF3, 0x5B, 0x4A, 0x8A, 0xD3), 796 "ArcaOS Type 1" }, 797}; 798 799 800/* PARTITION TYPES LOOKUP ****************************************************/ 801 802PCSTR 803NTAPI 804LookupPartitionTypeString( 805 _In_ PARTITION_STYLE PartitionStyle, 806 _In_ PVOID PartitionType) 807{ 808 UINT i; 809 810 /* Do the table lookup */ 811 if (PartitionStyle == PARTITION_STYLE_MBR) 812 { 813 for (i = 0; i < _countof(MbrPartitionTypes); ++i) 814 { 815 if (*(PUCHAR)PartitionType == MbrPartitionTypes[i].Type) 816 { 817 return MbrPartitionTypes[i].Description; 818 } 819 } 820 } 821#if 0 // TODO: GPT support! 822 else if (PartitionStyle == PARTITION_STYLE_GPT) 823 { 824 for (i = 0; i < _countof(GptPartitionTypes); ++i) 825 { 826 if (IsEqualPartitionType((PGUID)PartitionType, 827 &GptPartitionTypes[i].Guid)) 828 { 829 return GptPartitionTypes[i].Description; 830 } 831 } 832 } 833#endif 834 835 /* The partition type is unknown */ 836 return NULL; 837} 838 839/* EOF */