ReactOS 0.4.16-dev-838-g27bb510
partinfo.c
Go to the documentation of this file.
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{
50
51/* Known MBR partition type codes and descriptions */
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
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
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
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
277{
281
282/* Known GPT partition type GUIDs and descriptions */
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
805 _In_ PARTITION_STYLE PartitionStyle,
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 {
816 {
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,
828 {
830 }
831 }
832 }
833#endif
834
835 /* The partition type is unknown */
836 return NULL;
837}
838
839/* EOF */
const GPT_PARTITION_TYPE GptPartitionTypes[]
Definition: partinfo.c:283
struct _GPT_PARTITION_TYPE * PGPT_PARTITION_TYPE
struct _MBR_PARTITION_TYPE MBR_PARTITION_TYPE
struct _MBR_PARTITION_TYPE * PMBR_PARTITION_TYPE
PCSTR NTAPI LookupPartitionTypeString(_In_ PARTITION_STYLE PartitionStyle, _In_ PVOID PartitionType)
Definition: partinfo.c:804
#define GUID_CONST(l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: partinfo.c:212
struct _GPT_PARTITION_TYPE GPT_PARTITION_TYPE
const MBR_PARTITION_TYPE MbrPartitionTypes[]
Definition: partinfo.c:52
#define NULL
Definition: types.h:112
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
enum _PARTITION_STYLE PARTITION_STYLE
@ PARTITION_STYLE_GPT
Definition: imports.h:202
@ PARTITION_STYLE_MBR
Definition: imports.h:201
unsigned int UINT
Definition: ndis.h:50
#define _In_
Definition: no_sal2.h:158
CHAR PartitionType
Definition: part_xbox.c:32
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define _countof(array)
Definition: sndvol32.h:70
#define NTAPI
Definition: typedefs.h:36
const char * PCSTR
Definition: typedefs.h:52
unsigned char * PUCHAR
Definition: typedefs.h:53
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:762
unsigned char UCHAR
Definition: xmlstorage.h:181