From 88be86d3d46213f9a6ab8af5c9573a33ebe4e91e Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 6 Feb 2020 18:23:19 +0000 Subject: [PATCH] [core] improve reporting of partition types * Add GPT partition types and improve MBR partition type handling --- .vs/rufus.vcxproj | 3 +- .vs/rufus.vcxproj.filters | 9 +- src/drive.c | 54 ++++----- src/drive.h | 3 +- src/gpt_types.h | 249 ++++++++++++++++++++++++++++++++++++++ src/mbr_types.h | 182 ++++++++++++++++++++++++++++ src/rufus.rc | 10 +- src/sys_types.h | 185 ---------------------------- 8 files changed, 467 insertions(+), 228 deletions(-) create mode 100644 src/gpt_types.h create mode 100644 src/mbr_types.h delete mode 100644 src/sys_types.h diff --git a/.vs/rufus.vcxproj b/.vs/rufus.vcxproj index fb3d129d..6a4fcc47 100644 --- a/.vs/rufus.vcxproj +++ b/.vs/rufus.vcxproj @@ -360,7 +360,9 @@ + + @@ -377,7 +379,6 @@ - diff --git a/.vs/rufus.vcxproj.filters b/.vs/rufus.vcxproj.filters index e3af5eba..97df1b3a 100644 --- a/.vs/rufus.vcxproj.filters +++ b/.vs/rufus.vcxproj.filters @@ -92,9 +92,6 @@ Header Files - - Header Files - Header Files @@ -158,6 +155,12 @@ Header Files + + Header Files + + + Header Files + diff --git a/src/drive.c b/src/drive.c index 0126066e..f1d58547 100644 --- a/src/drive.c +++ b/src/drive.c @@ -39,7 +39,8 @@ #include "file.h" #include "drive.h" -#include "sys_types.h" +#include "mbr_types.h" +#include "gpt_types.h" #include "br.h" #include "fat16.h" #include "fat32.h" @@ -50,22 +51,6 @@ const char* sfd_name = "Super Floppy Disk"; const char* groot_name = GLOBALROOT_NAME; const size_t groot_len = sizeof(GLOBALROOT_NAME) - 1; -#if !defined(PARTITION_BASIC_DATA_GUID) -const GUID PARTITION_BASIC_DATA_GUID = - { 0xebd0a0a2L, 0xb9e5, 0x4433, {0x87, 0xc0, 0x68, 0xb6, 0xb7, 0x26, 0x99, 0xc7} }; -#endif -#if !defined(PARTITION_MSFT_RESERVED_GUID) -const GUID PARTITION_MSFT_RESERVED_GUID = - { 0xe3c9e316L, 0x0b5c, 0x4db8, {0x81, 0x7d, 0xf9, 0x2d, 0xf0, 0x02, 0x15, 0xae} }; -#endif -#if !defined(PARTITION_SYSTEM_GUID) -const GUID PARTITION_SYSTEM_GUID = - { 0xc12a7328L, 0xf81f, 0x11d2, {0xba, 0x4b, 0x00, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b} }; -#endif -#if !defined(PARTITION_LINUX_HOME_GUID) -const GUID PARTITION_LINUX_HOME_GUID = - { 0x933ac7e1l, 0x2eb4, 0x4f13, {0xb8, 0x44, 0x0e, 0x14, 0xe2, 0xae, 0xf9, 0x15 } }; -#endif #if defined(__MINGW32__) const IID CLSID_VdsLoader = { 0x9c38ed61, 0xd565, 0x4728, { 0xae, 0xee, 0xc8, 0x09, 0x52, 0xf0, 0xec, 0xde } }; @@ -1242,7 +1227,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys } // NB: MinGW's gcc 4.9.2 broke "%lld" printout on XP so we use the inttypes.h "PRI##" qualifiers suprintf(" Type: %s (0x%02x)\r\n Size: %s (%" PRIi64 " bytes)\r\n Start Sector: %" PRIi64 ", Boot: %s", - ((part_type==0x07||super_floppy_disk)&&(FileSystemName[0]!=0))?FileSystemName:GetPartitionType(part_type), super_floppy_disk?0:part_type, + ((part_type==0x07||super_floppy_disk)&&(FileSystemName[0]!=0))?FileSystemName:GetMBRPartitionType(part_type), super_floppy_disk?0:part_type, SizeToHumanReadable(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, TRUE, FALSE), DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, DriveLayout->PartitionEntry[i].StartingOffset.QuadPart / SelectedDrive.SectorSize, @@ -1272,7 +1257,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys SelectedDrive.nPartitions++; isUefiNtfs = (wcscmp(DriveLayout->PartitionEntry[i].Gpt.Name, L"UEFI:NTFS") == 0); suprintf("Partition %d%s:\r\n Type: %s\r\n Name: '%S'", i+1, isUefiNtfs ? " (UEFI:NTFS)" : "", - GuidToString(&DriveLayout->PartitionEntry[i].Gpt.PartitionType), DriveLayout->PartitionEntry[i].Gpt.Name); + GetGPTPartitionType(&DriveLayout->PartitionEntry[i].Gpt.PartitionType), DriveLayout->PartitionEntry[i].Gpt.Name); suprintf(" ID: %s\r\n Size: %s (%" PRIi64 " bytes)\r\n Start Sector: %" PRIi64 ", Attributes: 0x%016" PRIX64, GuidToString(&DriveLayout->PartitionEntry[i].Gpt.PartitionId), SizeToHumanReadable(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, TRUE, FALSE), @@ -1283,10 +1268,10 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys (DWORD)(DriveLayout->PartitionEntry[i].StartingOffset.QuadPart / SelectedDrive.SectorSize)); // Don't register the partitions that we don't care about destroying if ( isUefiNtfs || - (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_MSFT_RESERVED_GUID)) || - (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_SYSTEM_GUID)) ) + (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_MICROSOFT_RESERVED)) || + (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_GENERIC_ESP)) ) --SelectedDrive.nPartitions; - if (memcmp(&PARTITION_BASIC_DATA_GUID, &DriveLayout->PartitionEntry[i].Gpt.PartitionType, sizeof(GUID)) == 0) + if (CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_MICROSOFT_DATA)) ret = TRUE; } break; @@ -1552,7 +1537,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m assert (partition_style == PARTITION_STYLE_GPT); extra_part_name = L"Microsoft Reserved Partition"; DriveLayoutEx.PartitionEntry[pn].PartitionLength.QuadPart = 128*MB; - DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = PARTITION_MSFT_RESERVED_GUID; + DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = PARTITION_MICROSOFT_RESERVED; uprintf("● Creating %S (offset: %lld, size: %s)", extra_part_name, DriveLayoutEx.PartitionEntry[pn].StartingOffset.QuadPart, SizeToHumanReadable(DriveLayoutEx.PartitionEntry[pn].PartitionLength.QuadPart, TRUE, FALSE)); IGNORE_RETVAL(CoCreateGuid(&DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionId)); @@ -1639,7 +1624,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m return FALSE; } } else { - DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = PARTITION_BASIC_DATA_GUID; + DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = PARTITION_MICROSOFT_DATA; IGNORE_RETVAL(CoCreateGuid(&DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionId)); wcsncpy(DriveLayoutEx.PartitionEntry[pn].Gpt.Name, main_part_name, ARRAYSIZE(DriveLayoutEx.PartitionEntry[pn].Gpt.Name)); } @@ -1665,7 +1650,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m partition_offset[PI_ESP] = SelectedDrive.PartitionOffset[pn]; if (partition_style == PARTITION_STYLE_GPT) { - DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = (extra_partitions & XP_ESP) ? PARTITION_SYSTEM_GUID : PARTITION_BASIC_DATA_GUID; + DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionType = (extra_partitions & XP_ESP) ? PARTITION_GENERIC_ESP : PARTITION_MICROSOFT_DATA; IGNORE_RETVAL(CoCreateGuid(&DriveLayoutEx.PartitionEntry[pn].Gpt.PartitionId)); wcsncpy(DriveLayoutEx.PartitionEntry[pn].Gpt.Name, (extra_partitions & XP_ESP) ? L"EFI System Partition" : extra_part_name, ARRAYSIZE(DriveLayoutEx.PartitionEntry[pn].Gpt.Name)); @@ -1811,15 +1796,18 @@ BOOL InitializeDisk(HANDLE hDrive) } /* - * Convert a partition type to its human readable form using - * (slightly modified) entries from GNU fdisk + * Convert MBR or GPT partition types to their human readable forms */ -const char* GetPartitionType(BYTE Type) +const char* GetMBRPartitionType(const uint8_t type) { int i; - for (i=0; i + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +// MinGW won't properly embed the GUIDs unless the following is defined +#define INITGUID +#include + +#pragma once + +/* + * From https://en.wikipedia.org/wiki/GUID_Partition_Table + */ +DEFINE_GUID(PARTITION_ANDROID_BOOT, 0x49A4D17F, 0x93A3, 0x45C1, 0xA0, 0xDE, 0xF5, 0x0B, 0x2E, 0xBE, 0x25, 0x99); +DEFINE_GUID(PARTITION_ANDROID_BOOTLOADER1, 0x2568845D, 0x2332, 0x4675, 0xBC, 0x39, 0x8F, 0xA5, 0xA4, 0x74, 0x8D, 0x15); +DEFINE_GUID(PARTITION_ANDROID_BOOTLOADER2, 0x114EAFFE, 0x1552, 0x4022, 0xB2, 0x6E, 0x9B, 0x05, 0x36, 0x04, 0xCF, 0x84); +DEFINE_GUID(PARTITION_ANDROID_CACHE, 0xA893EF21, 0xE428, 0x470A, 0x9E, 0x55, 0x06, 0x68, 0xFD, 0x91, 0xA2, 0xD9); +DEFINE_GUID(PARTITION_ANDROID_CONFIG, 0xBD59408B, 0x4514, 0x490D, 0xBF, 0x12, 0x98, 0x78, 0xD9, 0x63, 0xF3, 0x78); +DEFINE_GUID(PARTITION_ANDROID_DATA, 0xDC76DDA9, 0x5AC1, 0x491C, 0xAF, 0x42, 0xA8, 0x25, 0x91, 0x58, 0x0C, 0x0D); +DEFINE_GUID(PARTITION_ANDROID_EXT, 0x193D1EA4, 0xB3CA, 0x11E4, 0xB0, 0x75, 0x10, 0x60, 0x4B, 0x88, 0x9D, 0xCF); +DEFINE_GUID(PARTITION_ANDROID_FACTORY1, 0x8F68CC74, 0xC5E5, 0x48DA, 0xBE, 0x91, 0xA0, 0xC8, 0xC1, 0x5E, 0x9C, 0x80); +DEFINE_GUID(PARTITION_ANDROID_FACTORY2, 0x9FDAA6EF, 0x4B3F, 0x40D2, 0xBA, 0x8D, 0xBF, 0xF1, 0x6B, 0xFB, 0x88, 0x7B); +DEFINE_GUID(PARTITION_ANDROID_FASTBOOT, 0x767941D0, 0x2085, 0x11E3, 0xAD, 0x3B, 0x6C, 0xFD, 0xB9, 0x47, 0x11, 0xE9); +DEFINE_GUID(PARTITION_ANDROID_METADATA1, 0x20AC26BE, 0x20B7, 0x11E3, 0x84, 0xC5, 0x6C, 0xFD, 0xB9, 0x47, 0x11, 0xE9); +DEFINE_GUID(PARTITION_ANDROID_METADATA2, 0x19A710A2, 0xB3CA, 0x11E4, 0xB0, 0x26, 0x10, 0x60, 0x4B, 0x88, 0x9D, 0xCF); +DEFINE_GUID(PARTITION_ANDROID_MISC, 0xEF32A33B, 0xA409, 0x486C, 0x91, 0x41, 0x9F, 0xFB, 0x71, 0x1F, 0x62, 0x66); +DEFINE_GUID(PARTITION_ANDROID_OEM, 0xAC6D7924, 0xEB71, 0x4DF8, 0xB4, 0x8D, 0xE2, 0x67, 0xB2, 0x71, 0x48, 0xFF); +DEFINE_GUID(PARTITION_ANDROID_PERSISTENCE, 0xEBC597D0, 0x2053, 0x4B15, 0x8B, 0x64, 0xE0, 0xAA, 0xC7, 0x5F, 0x4D, 0xB1); +DEFINE_GUID(PARTITION_ANDROID_RECOVERY, 0x4177C722, 0x9E92, 0x4AAB, 0x86, 0x44, 0x43, 0x50, 0x2B, 0xFD, 0x55, 0x06); +DEFINE_GUID(PARTITION_ANDROID_SYSTEM, 0x38F428E6, 0xD326, 0x425D, 0x91, 0x40, 0x6E, 0x0E, 0xA1, 0x33, 0x64, 0x7C); +DEFINE_GUID(PARTITION_ANDROID_VENDOR, 0xC5A0AEEC, 0x13EA, 0x11E5, 0xA1, 0xB1, 0x00, 0x1E, 0x67, 0xCA, 0x0C, 0x3C); +DEFINE_GUID(PARTITION_APPLE_APFS, 0x7C3457EF, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_BOOT, 0x426F6F74, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_FILEVAULT, 0x53746F72, 0x6167, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_HFS, 0x48465300, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_LABEL, 0x4C616265, 0x6C00, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_OFFLINE_RAID, 0x52414944, 0x5F4F, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_RAID, 0x52414944, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_RAID_CACHE, 0xBBBA6DF5, 0xF46F, 0x4A89, 0x8F, 0x59, 0x87, 0x65, 0xB2, 0x72, 0x75, 0x03); +DEFINE_GUID(PARTITION_APPLE_RAID_SCRATCH, 0x2E313465, 0x19B9, 0x463F, 0x81, 0x26, 0x8A, 0x79, 0x93, 0x77, 0x38, 0x01); +DEFINE_GUID(PARTITION_APPLE_RAID_STATUS, 0xB6FA30DA, 0x92D2, 0x4A9A, 0x96, 0xF1, 0x87, 0x1E, 0xC6, 0x48, 0x62, 0x00); +DEFINE_GUID(PARTITION_APPLE_RAID_VOLUME, 0xFA709C7E, 0x65B1, 0x4593, 0xBF, 0xD5, 0xE7, 0x1D, 0x61, 0xDE, 0x9B, 0x02); +DEFINE_GUID(PARTITION_APPLE_RECOVERY, 0x5265636F, 0x7665, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +DEFINE_GUID(PARTITION_APPLE_UFS, 0x55465300, 0x0000, 0x11AA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC); +// Stolen from Solaris. Great job here, Apple! Then again, Oracle can and *should* go to hell, so who cares... +DEFINE_GUID(PARTITION_APPLE_ZFS, 0x6A898CC3, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_ATARI_DATA, 0x734E5AFE, 0xF61A, 0x11E6, 0xBC, 0x64, 0x92, 0x36, 0x1F, 0x00, 0x26, 0x71); +DEFINE_GUID(PARTITION_BEOS_BFS, 0x42465331, 0x3BA3, 0x10F1, 0x80, 0x2A, 0x48, 0x61, 0x69, 0x6B, 0x75, 0x21); +DEFINE_GUID(PARTITION_CHROMEOS_KERNEL, 0xFE3A2A5D, 0x4F32, 0x41A7, 0xB7, 0x25, 0xAC, 0xCC, 0x32, 0x85, 0xA3, 0x09); +DEFINE_GUID(PARTITION_CHROMEOS_RESERVED, 0x2E0A753D, 0x9E48, 0x43B0, 0x83, 0x37, 0xB1, 0x51, 0x92, 0xCB, 0x1B, 0x5E); +DEFINE_GUID(PARTITION_CHROMEOS_ROOT, 0x3CB8E202, 0x3B7E, 0x47DD, 0x8A, 0x3C, 0x7F, 0xF2, 0xA1, 0x3C, 0xFC, 0xEC); +DEFINE_GUID(PARTITION_COREOS_RAID, 0xBE9067B9, 0xEA49, 0x4F15, 0xB4, 0xF6, 0xF3, 0x6F, 0x8C, 0x9E, 0x18, 0x18); +DEFINE_GUID(PARTITION_COREOS_RESERVED, 0xC95DC21A, 0xDF0E, 0x4340, 0x8D, 0x7B, 0x26, 0xCB, 0xFA, 0x9A, 0x03, 0xE0); +DEFINE_GUID(PARTITION_COREOS_ROOT, 0x3884DD41, 0x8582, 0x4404, 0xB9, 0xA8, 0xE9, 0xB8, 0x4F, 0x2D, 0xF5, 0x0E); +DEFINE_GUID(PARTITION_COREOS_USR, 0x5DFBF5F4, 0x2848, 0x4BAC, 0xAA, 0x5E, 0x0D, 0x9A, 0x20, 0xB7, 0x45, 0xA6); +DEFINE_GUID(PARTITION_FREEBSD_BOOT, 0x83BD6B9D, 0x7F41, 0x11DC, 0xBE, 0x0B, 0x00, 0x15, 0x60, 0xB8, 0x4F, 0x0F); +DEFINE_GUID(PARTITION_FREEBSD_DATA, 0x516E7CB4, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B); +DEFINE_GUID(PARTITION_FREEBSD_LVM, 0x516E7CB8, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B); +DEFINE_GUID(PARTITION_FREEBSD_SWAP, 0x516E7CB5, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B); +DEFINE_GUID(PARTITION_FREEBSD_UFS, 0x516E7CB6, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B); +DEFINE_GUID(PARTITION_FREEBSD_ZFS, 0x516E7CBA, 0x6ECF, 0x11D6, 0x8F, 0xF8, 0x00, 0x02, 0x2D, 0x09, 0x71, 0x2B); +DEFINE_GUID(PARTITION_GENERIC_BIOS_BOOT, 0x21686148, 0x6449, 0x6E6F, 0x74, 0x4E, 0x65, 0x65, 0x64, 0x45, 0x46, 0x49); +DEFINE_GUID(PARTITION_GENERIC_BOOT_LOADER, 0xBC13C2FF, 0x59E6, 0x4262, 0xA3, 0x52, 0xB2, 0x75, 0xFD, 0x6F, 0x71, 0x72); +DEFINE_GUID(PARTITION_GENERIC_ESP, 0xC12A7328, 0xF81F, 0x11D2, 0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B); +DEFINE_GUID(PARTITION_GENERIC_MBR, 0x024DEE41, 0x33E7, 0x11D3, 0x9D, 0x69, 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F); +DEFINE_GUID(PARTITION_GENERIC_UNUSED, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +DEFINE_GUID(PARTITION_HPUX_DATA, 0x75894C1E, 0x3AEB, 0x11D3, 0xB7, 0xC1, 0x7B, 0x03, 0xA0, 0x00, 0x00, 0x00); +DEFINE_GUID(PARTITION_HPUX_SERVICE, 0xE2A1E728, 0x32E3, 0x11D6, 0xA6, 0x82, 0x7B, 0x03, 0xA0, 0x00, 0x00, 0x00); +DEFINE_GUID(PARTITION_IBM_GPFS, 0x37AFFC90, 0xEF7D, 0x4E96, 0x91, 0xC3, 0x2D, 0x7A, 0xE0, 0x55, 0xB1, 0x74); +DEFINE_GUID(PARTITION_INTEL_IFF, 0xD3BFE2DE, 0x3DAF, 0x11DF, 0xBA, 0x40, 0xE3, 0xA5, 0x56, 0xD8, 0x95, 0x93); +DEFINE_GUID(PARTITION_LENOVO_BOOT, 0xBFBFAFE7, 0xA34F, 0x448A, 0x9A, 0x5B, 0x62, 0x13, 0xEB, 0x73, 0x6C, 0x22); +DEFINE_GUID(PARTITION_LINUX_BOOT, 0xBC13C2FF, 0x59E6, 0x4262, 0xA3, 0x52, 0xB2, 0x75, 0xFD, 0x6F, 0x71, 0x72); +DEFINE_GUID(PARTITION_LINUX_DATA, 0x0FC63DAF, 0x8483, 0x4772, 0x8E, 0x79, 0x3D, 0x69, 0xD8, 0x47, 0x7D, 0xE4); +DEFINE_GUID(PARTITION_LINUX_ENCRYPTED, 0x7FFEC5C9, 0x2D00, 0x49B7, 0x89, 0x41, 0x3E, 0xA1, 0x0A, 0x55, 0x86, 0xB7); +DEFINE_GUID(PARTITION_LINUX_HOME, 0x933AC7E1, 0x2EB4, 0x4F13, 0xB8, 0x44, 0x0E, 0x14, 0xE2, 0xAE, 0xF9, 0x15); +DEFINE_GUID(PARTITION_LINUX_LUKS, 0xCA7D7CCB, 0x63ED, 0x4C53, 0x86, 0x1C, 0x17, 0x42, 0x53, 0x60, 0x59, 0xCC); +DEFINE_GUID(PARTITION_LINUX_LVM, 0xE6D6D379, 0xF507, 0x44C2, 0xA2, 0x3C, 0x23, 0x8F, 0x2A, 0x3D, 0xF9, 0x28); +DEFINE_GUID(PARTITION_LINUX_RAID, 0xA19D880F, 0x05FC, 0x4D3B, 0xA0, 0x06, 0x74, 0x3F, 0x0F, 0x84, 0x91, 0x1E); +DEFINE_GUID(PARTITION_LINUX_RESERVED, 0x8DA63339, 0x0007, 0x60C0, 0xC4, 0x36, 0x08, 0x3A, 0xC8, 0x23, 0x09, 0x08); +DEFINE_GUID(PARTITION_LINUX_ROOT_ARM_32, 0x69DAD710, 0x2CE4, 0x4E3C, 0xB1, 0x6C, 0x21, 0xA1, 0xD4, 0x9A, 0xBE, 0xD3); +DEFINE_GUID(PARTITION_LINUX_ROOT_ARM_64, 0xB921B045, 0x1DF0, 0x41C3, 0xAF, 0x44, 0x4C, 0x6F, 0x28, 0x0D, 0x3F, 0xAE); +DEFINE_GUID(PARTITION_LINUX_ROOT_X86_32, 0x44479540, 0xF297, 0x41B2, 0x9A, 0xF7, 0xD1, 0x31, 0xD5, 0xF0, 0x45, 0x8A); +DEFINE_GUID(PARTITION_LINUX_ROOT_X86_64, 0x4F68BCE3, 0xE8CD, 0x4DB1, 0x96, 0xE7, 0xFB, 0xCA, 0xF9, 0x84, 0xB7, 0x09); +DEFINE_GUID(PARTITION_LINUX_SRV, 0x3B8F8425, 0x20E0, 0x4F3B, 0x90, 0x7F, 0x1A, 0x25, 0xA7, 0x6F, 0x98, 0xE8); +DEFINE_GUID(PARTITION_LINUX_SWAP, 0x0657FD6D, 0xA4AB, 0x43C4, 0x84, 0xE5, 0x09, 0x33, 0xC8, 0x4B, 0x4F, 0x4F); +DEFINE_GUID(PARTITION_MICROSOFT_DATA, 0xEBD0A0A2, 0xB9E5, 0x4433, 0x87, 0xC0, 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7); +DEFINE_GUID(PARTITION_MICROSOFT_LDM_DATA, 0xAF9B60A0, 0x1431, 0x4F62, 0xBC, 0x68, 0x33, 0x11, 0x71, 0x4A, 0x69, 0xAD); +DEFINE_GUID(PARTITION_MICROSOFT_LDM_META, 0x5808C8AA, 0x7E8F, 0x42E0, 0x85, 0xD2, 0xE1, 0xE9, 0x04, 0x34, 0xCF, 0xB3); +DEFINE_GUID(PARTITION_MICROSOFT_RECOVERY, 0xDE94BBA4, 0x06D1, 0x4D40, 0xA1, 0x6A, 0xBF, 0xD5, 0x01, 0x79, 0xD6, 0xAC); +DEFINE_GUID(PARTITION_MICROSOFT_RESERVED, 0xE3C9E316, 0x0B5C, 0x4DB8, 0x81, 0x7D, 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE); +DEFINE_GUID(PARTITION_MICROSOFT_STORAGE_SPACES, 0xE75CAF8F, 0xF680, 0x4CEE, 0xAF, 0xA3, 0xB0, 0x01, 0xE5, 0x6E, 0xFC, 0x2D); +DEFINE_GUID(PARTITION_NETBSD_CONCAT, 0x2DB519C4, 0xB10F, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48); +DEFINE_GUID(PARTITION_NETBSD_ENCRYPTED, 0x2DB519EC, 0xB10F, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48); +DEFINE_GUID(PARTITION_NETBSD_FFS, 0x49F48D5A, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48); +DEFINE_GUID(PARTITION_NETBSD_LFS, 0x49F48D82, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48); +DEFINE_GUID(PARTITION_NETBSD_RAID, 0x49F48DAA, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48); +DEFINE_GUID(PARTITION_NETBSD_SWAP, 0x49F48D32, 0xB10E, 0x11DC, 0xB9, 0x9B, 0x00, 0x19, 0xD1, 0x87, 0x96, 0x48); +DEFINE_GUID(PARTITION_OPENBSD_DATA, 0x824CC7A0, 0x36A8, 0x11E3, 0x89, 0x0A, 0x95, 0x25, 0x19, 0xAD, 0x3F, 0x61); +DEFINE_GUID(PARTITION_PLAN9_DATA, 0xC91818F9, 0x8025, 0x47AF, 0x89, 0xD2, 0xF0, 0x30, 0xD7, 0x00, 0x0C, 0x2C); +DEFINE_GUID(PARTITION_PREP_BOOT, 0x9E1A2D38, 0xC612, 0x4316, 0xAA, 0x26, 0x8B, 0x49, 0x52, 0x1E, 0x5A, 0x8B); +DEFINE_GUID(PARTITION_QNX_DATA, 0xCEF5A9AD, 0x73BC, 0x4601, 0x89, 0xF3, 0xCD, 0xEE, 0xEE, 0xE3, 0x21, 0xA1); +DEFINE_GUID(PARTITION_SOLARIS_ALT, 0x6A9283A5, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_BACKUP, 0x6A8B642B, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_BOOT, 0x6A82CB45, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_HOME, 0x6A90BA39, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_RESERVED1, 0x6A945A3B, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_RESERVED2, 0x6A9630D1, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_RESERVED3, 0x6A980767, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_RESERVED4, 0x6A96237F, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_RESERVED5, 0x6A8D2AC7, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +// You sure you don't need a couple more reversed partition GUIDs here, Solaris? +DEFINE_GUID(PARTITION_SOLARIS_ROOT, 0x6A85CF4D, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_SWAP, 0x6A87C46F, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +//DEFINE_GUID(PARTITION_SOLARIS_USR, 0x6A898CC3, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SOLARIS_VAR, 0x6A8EF2E9, 0x1DD2, 0x11B2, 0x99, 0xA6, 0x08, 0x00, 0x20, 0x73, 0x66, 0x31); +DEFINE_GUID(PARTITION_SONY_BOOT, 0xF4019732, 0x066E, 0x4E12, 0x82, 0x73, 0x34, 0x6C, 0x56, 0x41, 0x49, 0x4F); +DEFINE_GUID(PARTITION_VERACRYPT_DATA, 0x8C8F8EFF, 0xAC95, 0x4770, 0x81, 0x4A, 0x21, 0x99, 0x4F, 0x2D, 0xBC, 0x8F); +DEFINE_GUID(PARTITION_VMWARE_COREDUMP, 0x9D275380, 0x40AD, 0x11DB, 0xBF, 0x97, 0x00, 0x0C, 0x29, 0x11, 0xD1, 0xB8); +DEFINE_GUID(PARTITION_VMWARE_RESERVED, 0x9198EFFC, 0x31C0, 0x11DB, 0x8F, 0x78, 0x00, 0x0C, 0x29, 0x11, 0xD1, 0xB8); +DEFINE_GUID(PARTITION_VMWARE_VMFS, 0xAA31E02A, 0x400F, 0x11DB, 0x95, 0x90, 0x00, 0x0C, 0x29, 0x11, 0xD1, 0xB8); + +typedef struct { + const GUID* guid; + const char* name; +} gpt_type_t; + +gpt_type_t gpt_type[] = { + { &PARTITION_ANDROID_BOOT, "Android Boot Partition" }, + { &PARTITION_ANDROID_BOOTLOADER1, "Android Bootloader Partition" }, + { &PARTITION_ANDROID_BOOTLOADER2, "Android Bootloader Partition" }, + { &PARTITION_ANDROID_CACHE, "Android Cache Partition" }, + { &PARTITION_ANDROID_CONFIG, "Android Config Partition" }, + { &PARTITION_ANDROID_DATA, "Android Data Partition" }, + { &PARTITION_ANDROID_EXT, "Android Ext Partition" }, + { &PARTITION_ANDROID_FACTORY1, "Android Factory Partition" }, + { &PARTITION_ANDROID_FACTORY2, "Android Factory Partition" }, + { &PARTITION_ANDROID_FASTBOOT, "Android Fastboot Partition" }, + { &PARTITION_ANDROID_METADATA1, "Android Metadata Partition" }, + { &PARTITION_ANDROID_METADATA2, "Android Metadata Partition" }, + { &PARTITION_ANDROID_MISC, "Android Misc Partition" }, + { &PARTITION_ANDROID_OEM, "Android OEM Partition" }, + { &PARTITION_ANDROID_PERSISTENCE, "Android Persistent Partition" }, + { &PARTITION_ANDROID_RECOVERY, "Android Recovery Partition" }, + { &PARTITION_ANDROID_SYSTEM, "Android System Partition" }, + { &PARTITION_ANDROID_VENDOR, "Android Vendor Partition" }, + { &PARTITION_APPLE_APFS, "Apple APFS Partition" }, + { &PARTITION_APPLE_BOOT, "Apple Boot Partition" }, + { &PARTITION_APPLE_FILEVAULT, "Apple Filevault Partition" }, + { &PARTITION_APPLE_HFS, "Apple HFS+ Partition" }, + { &PARTITION_APPLE_LABEL, "Apple Label Partition" }, + { &PARTITION_APPLE_OFFLINE_RAID, "Apple RAID Partition (Offline)" }, + { &PARTITION_APPLE_RAID, "Apple RAID Partition" }, + { &PARTITION_APPLE_RAID_CACHE, "Apple RAID Cache Partition" }, + { &PARTITION_APPLE_RAID_SCRATCH, "Apple RAID Scratch Partition" }, + { &PARTITION_APPLE_RAID_STATUS, "Apple RAID Status Partition" }, + { &PARTITION_APPLE_RAID_VOLUME, "Apple RAID Volume Partition" }, + { &PARTITION_APPLE_RECOVERY, "Apple Recovery Partition" }, + { &PARTITION_APPLE_UFS, "Apple UFS Partition" }, + { &PARTITION_APPLE_ZFS, "Apple ZFS Partition" }, + { &PARTITION_ATARI_DATA, "Atari Data Partition" }, + { &PARTITION_BEOS_BFS, "BeOS BFS Partition" }, + { &PARTITION_CHROMEOS_KERNEL, "Chrome OS Kernel Partition" }, + { &PARTITION_CHROMEOS_RESERVED, "Chrome OS Reserved Partition" }, + { &PARTITION_CHROMEOS_ROOT, "Chrome OS Root Partition" }, + { &PARTITION_COREOS_RAID, "CoreOS Raid Partition" }, + { &PARTITION_COREOS_RESERVED, "CoreOS Reserved Partition" }, + { &PARTITION_COREOS_ROOT, "CoreOS Root Partition" }, + { &PARTITION_COREOS_USR, "CoreOS Usr Partition" }, + { &PARTITION_FREEBSD_BOOT, "FreeBSD Boot Partition" }, + { &PARTITION_FREEBSD_DATA, "FreeBSD Data Partition" }, + { &PARTITION_FREEBSD_LVM, "FreeBSD LVM Partition" }, + { &PARTITION_FREEBSD_SWAP, "FreeBSD Swap Partition" }, + { &PARTITION_FREEBSD_UFS, "FreeBSD UFS Partition" }, + { &PARTITION_FREEBSD_ZFS, "FreeBSD ZFS Partition" }, + { &PARTITION_GENERIC_BIOS_BOOT, "BIOS Boot Partition" }, + { &PARTITION_GENERIC_BOOT_LOADER, "Bootloader Partition" }, + { &PARTITION_GENERIC_ESP, "EFI System Partition" }, + { &PARTITION_GENERIC_MBR, "MBR Partition" }, + { &PARTITION_GENERIC_UNUSED, "Unused Partition" }, + { &PARTITION_HPUX_DATA, "HP-UX Data Partition" }, + { &PARTITION_HPUX_SERVICE, "HP-UX Service Partition" }, + { &PARTITION_IBM_GPFS, "IBM GPFS Partition" }, + { &PARTITION_INTEL_IFF, "Intel Fast Flash Partition" }, + { &PARTITION_LENOVO_BOOT, "Lenovo Boot Partition" }, + { &PARTITION_LINUX_BOOT, "Linux Boot Partition" }, + { &PARTITION_LINUX_DATA, "Linux Data Partition" }, + { &PARTITION_LINUX_ENCRYPTED, "Linux Encrypted Partition" }, + { &PARTITION_LINUX_HOME, "Linux Home Partition" }, + { &PARTITION_LINUX_LUKS, "Linux LUKS Partition" }, + { &PARTITION_LINUX_LVM, "Linux LVM Partition" }, + { &PARTITION_LINUX_RAID, "Linux RAID Partition" }, + { &PARTITION_LINUX_RESERVED, "Linux Reserved Partition" }, + { &PARTITION_LINUX_ROOT_ARM_32, "Linux Boot Partition (ARM)" }, + { &PARTITION_LINUX_ROOT_ARM_64, "Linux Boot Partition (ARM64)" }, + { &PARTITION_LINUX_ROOT_X86_32, "Linux Boot Partition (x86-32)" }, + { &PARTITION_LINUX_ROOT_X86_64, "Linux Boot Partition (x86-64)" }, + { &PARTITION_LINUX_SRV, "Linux Srv Partition" }, + { &PARTITION_LINUX_SWAP, "Linux Swap Partition" }, + { &PARTITION_MICROSOFT_DATA, "Microsoft Basic Data Partition" }, + { &PARTITION_MICROSOFT_LDM_DATA, "Microsoft LDM Data Partition" }, + { &PARTITION_MICROSOFT_LDM_META, "Microsoft LDM Metadata Partition" }, + { &PARTITION_MICROSOFT_RECOVERY, "Microsoft Recovery Partition" }, + { &PARTITION_MICROSOFT_RESERVED, "Microsoft System Reserved Partition" }, + { &PARTITION_MICROSOFT_STORAGE_SPACES, "Microsoft Storage Spaces Partition" }, + { &PARTITION_NETBSD_CONCAT, "NetBSD Concatenated Partition" }, + { &PARTITION_NETBSD_ENCRYPTED, "NetBSD Encrypted Partition" }, + { &PARTITION_NETBSD_FFS, "NetBSD FFS Partition" }, + { &PARTITION_NETBSD_LFS, "NetBSD LFS Partition" }, + { &PARTITION_NETBSD_RAID, "NetBSD RAID Partition" }, + { &PARTITION_NETBSD_SWAP, "NetBSD Swap Partition" }, + { &PARTITION_OPENBSD_DATA, "OpenBSD Data Partition" }, + { &PARTITION_PLAN9_DATA, "Plan 9 Data Partition" }, + { &PARTITION_PREP_BOOT, "PReP Boot Partition" }, + { &PARTITION_QNX_DATA, "QNX Data Partition" }, + { &PARTITION_SOLARIS_ALT, "Solaris Alternate Sector Partition" }, + { &PARTITION_SOLARIS_BACKUP, "Solaris Backup Partition" }, + { &PARTITION_SOLARIS_BOOT, "Solaris Boot Partition" }, + { &PARTITION_SOLARIS_HOME, "Solaris Home Partition" }, + { &PARTITION_SOLARIS_RESERVED1, "Solaris Reserved Partition" }, + { &PARTITION_SOLARIS_RESERVED2, "Solaris Reserved Partition" }, + { &PARTITION_SOLARIS_RESERVED3, "Solaris Reserved Partition" }, + { &PARTITION_SOLARIS_RESERVED4, "Solaris Reserved Partition" }, + { &PARTITION_SOLARIS_RESERVED5, "Solaris Reserved Partition" }, + { &PARTITION_SOLARIS_ROOT, "Solaris Root Partition" }, + { &PARTITION_SOLARIS_SWAP, "Solaris Swap Partition" }, +// { &PARTITION_SOLARIS_USR, "Solaris Usr Partition" }, + { &PARTITION_SOLARIS_VAR, "Solaris Var Partition" }, + { &PARTITION_SONY_BOOT, "Sony Boot Partition" }, + { &PARTITION_VERACRYPT_DATA, "VeraCrypt Data Partition" }, + { &PARTITION_VMWARE_COREDUMP, "VMware Coredump Partition" }, + { &PARTITION_VMWARE_RESERVED, "VMware Reserved Partition" }, + { &PARTITION_VMWARE_VMFS, "VMware VMFS Partition" }, +}; diff --git a/src/mbr_types.h b/src/mbr_types.h new file mode 100644 index 00000000..652a0ef4 --- /dev/null +++ b/src/mbr_types.h @@ -0,0 +1,182 @@ +/* + GNU fdisk - a clone of Linux fdisk. + + Copyright © 2020 Pete Batard + Copyright © 2006 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +*/ + +#include + +#pragma once + +typedef struct { + const uint8_t type; + const char *name; +} mbr_type_t; + +/* + * File system types for MBR partition tables + * See http://en.wikipedia.org/wiki/Partition_type + * Also http://www.win.tue.nl/~aeb/partitions/partition_types-1.html + * Note: If googling APTI (Alternative Partition Table Identification) + * doesn't return squat, then IT ISN'T A REAL THING!! + */ +mbr_type_t mbr_type[] = { + { 0x00, "Empty" }, + { 0x01, "FAT12" }, + { 0x02, "XENIX root" }, + { 0x03, "XENIX usr" }, + { 0x04, "Small FAT16" }, + { 0x05, "Extended" }, + { 0x06, "FAT16" }, + { 0x07, "NTFS/exFAT/UDF" }, + { 0x08, "AIX" }, + { 0x09, "AIX Bootable" }, + { 0x0a, "OS/2 Boot Manager" }, + { 0x0b, "FAT32" }, + { 0x0c, "FAT32 LBA" }, + { 0x0e, "FAT16 LBA" }, + { 0x0f, "Extended LBA" }, + { 0x10, "OPUS" }, + { 0x11, "Hidden FAT12" }, + { 0x12, "Compaq Diagnostics" }, + { 0x14, "Hidden Small FAT16" }, + { 0x16, "Hidden FAT16" }, + { 0x17, "Hidden NTFS" }, + { 0x18, "AST SmartSleep" }, + { 0x1b, "Hidden FAT32" }, + { 0x1c, "Hidden FAT32 LBA" }, + { 0x1e, "Hidden FAT16 LBA" }, + { 0x20, "Windows Mobile XIP" }, + { 0x21, "SpeedStor" }, + { 0x23, "Windows Mobile XIP" }, + { 0x24, "NEC DOS" }, + { 0x25, "Windows Mobile IMGFS" }, + { 0x27, "Hidden NTFS WinRE" }, + { 0x39, "Plan 9" }, + { 0x3c, "PMagic Recovery" }, + { 0x40, "Venix 80286" }, + { 0x41, "PPC PReP Boot" }, + { 0x42, "SFS" }, + { 0x4d, "QNX4.x" }, + { 0x4e, "QNX4.x" }, + { 0x4f, "QNX4.x" }, + { 0x50, "OnTrack DM" }, + { 0x51, "OnTrack DM" }, + { 0x52, "CP/M" }, + { 0x53, "OnTrack DM" }, + { 0x54, "OnTrack DM" }, + { 0x55, "EZ Drive" }, + { 0x56, "Golden Bow" }, + { 0x5c, "Priam EDisk" }, + { 0x61, "SpeedStor" }, + { 0x63, "GNU HURD/SysV" }, + { 0x64, "Netware" }, + { 0x65, "Netware" }, + { 0x66, "Netware" }, + { 0x67, "Netware" }, + { 0x68, "Netware" }, + { 0x69, "Netware" }, + { 0x70, "DiskSecure MultiBoot" }, + { 0x75, "PC/IX" }, + { 0x77, "Novell" }, + { 0x78, "XOSL" }, + { 0x7e, "F.I.X." }, + { 0x7e, "AODPS" }, + { 0x80, "Minix" }, + { 0x81, "Minix" }, + { 0x82, "GNU/Linux Swap" }, + { 0x83, "GNU/Linux" }, + { 0x84, "Windows Hibernation" }, + { 0x85, "GNU/Linux Extended" }, + { 0x86, "NTFS Volume Set" }, + { 0x87, "NTFS Volume Set" }, + { 0x88, "GNU/Linux Plaintext" }, + { 0x8d, "FreeDOS Hidden FAT12" }, + { 0x8e, "GNU/Linux LVM" }, + { 0x90, "FreeDOS Hidden FAT16" }, + { 0x91, "FreeDOS Hidden Extended" }, + { 0x92, "FreeDOS Hidden FAT16" }, + { 0x93, "GNU/Linux Hidden" }, + { 0x96, "CHRP ISO-9660" }, + { 0x97, "FreeDOS Hidden FAT32" }, + { 0x98, "FreeDOS Hidden FAT32" }, + { 0x9a, "FreeDOS Hidden FAT16" }, + { 0x9b, "FreeDOS Hidden Extended" }, + { 0x9f, "BSD/OS" }, + { 0xa0, "Hibernation" }, + { 0xa1, "Hibernation" }, + { 0xa2, "SpeedStor" }, + { 0xa3, "SpeedStor" }, + { 0xa4, "SpeedStor" }, + { 0xa5, "FreeBSD" }, + { 0xa6, "OpenBSD" }, + { 0xa7, "NeXTSTEP" }, + { 0xa8, "Darwin UFS" }, + { 0xa9, "NetBSD" }, + { 0xab, "Darwin Boot" }, + { 0xaf, "HFS/HFS+" }, + { 0xb0, "BootStar Dummy" }, + { 0xb1, "QNX" }, + { 0xb2, "QNX" }, + { 0xb3, "QNX" }, + { 0xb4, "SpeedStor" }, + { 0xb6, "SpeedStor" }, + { 0xb7, "BSDI" }, + { 0xb8, "BSDI Swap" }, + { 0xbb, "BootWizard Hidden" }, + { 0xbc, "Acronis SZ" }, + { 0xbe, "Solaris Boot" }, + { 0xbf, "Solaris" }, + { 0xc0, "Secured FAT" }, + { 0xc1, "DR DOS FAT12" }, + { 0xc2, "GNU/Linux Hidden" }, + { 0xc3, "GNU/Linux Hidden Swap" }, + { 0xc4, "DR DOS FAT16" }, + { 0xc4, "DR DOS Extended" }, + { 0xc6, "DR DOS FAT16" }, + { 0xc7, "Syrinx" }, + { 0xda, "Non-FS Data" }, + { 0xdb, "CP/M" }, + { 0xde, "Dell Utility" }, + { 0xdf, "BootIt" }, + { 0xe0, "ST AVFS" }, + { 0xe1, "SpeedStor" }, + { 0xe3, "SpeedStor" }, + { 0xe4, "SpeedStor" }, + { 0xe6, "SpeedStor" }, + { 0xe8, "LUKS" }, + { 0xea, "Rufus Extra" }, + { 0xeb, "BeOS/Haiku" }, + { 0xec, "SkyFS" }, + { 0xed, "GPT Hybrid MBR" }, + { 0xee, "GPT Protective MBR" }, + { 0xef, "EFI FAT" }, + { 0xf0, "PA-RISC Boot" }, + { 0xf1, "SpeedStor" }, + { 0xf2, "DOS secondary" }, + { 0xf3, "SpeedStor" }, + { 0xf4, "SpeedStor" }, + { 0xf6, "SpeedStor" }, + { 0xfa, "Bochs" }, + { 0xfb, "VMware VMFS" }, + { 0xfc, "VMware VMKCORE" }, + { 0xfd, "GNU/Linux RAID Auto" }, + { 0xfe, "LANstep" }, + { 0xff, "XENIX BBT" }, + { 0, NULL } +}; diff --git a/src/rufus.rc b/src/rufus.rc index f055ba2e..273eb426 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 232, 326 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_ACCEPTFILES -CAPTION "Rufus 3.9.1601" +CAPTION "Rufus 3.9.1602" FONT 9, "Segoe UI Symbol", 400, 0, 0x0 BEGIN LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP @@ -394,8 +394,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,9,1601,0 - PRODUCTVERSION 3,9,1601,0 + FILEVERSION 3,9,1602,0 + PRODUCTVERSION 3,9,1602,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -413,13 +413,13 @@ BEGIN VALUE "Comments", "https://rufus.ie" VALUE "CompanyName", "Akeo Consulting" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "3.9.1601" + VALUE "FileVersion", "3.9.1602" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2020 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html" VALUE "OriginalFilename", "rufus-3.9.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "3.9.1601" + VALUE "ProductVersion", "3.9.1602" END END BLOCK "VarFileInfo" diff --git a/src/sys_types.h b/src/sys_types.h deleted file mode 100644 index adf88d39..00000000 --- a/src/sys_types.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - GNU fdisk - a clone of Linux fdisk. - - Copyright (C) 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -*/ - -#ifndef SYS_TYPES_H_INCLUDED -#define SYS_TYPES_H_INCLUDED - -typedef struct { - unsigned char type; - const char *name; -} SysType; - -#define N_(String) String - -/* - * File system types for MBR partition tables - * See http://en.wikipedia.org/wiki/Partition_type - * Also http://www.win.tue.nl/~aeb/partitions/partition_types-1.html - * Note: If googling APTI (Alternative Partition Table Identification) - * doesn't return squat, then IT ISN'T A REAL THING!! - */ -SysType msdos_systypes[] = { - { 0x00, N_("Empty") }, - { 0x01, N_("FAT12") }, - { 0x02, N_("XENIX root") }, - { 0x03, N_("XENIX usr") }, - { 0x04, N_("Small FAT16") }, - { 0x05, N_("Extended") }, - { 0x06, N_("FAT16") }, - { 0x07, N_("NTFS/exFAT/UDF") }, - { 0x08, N_("AIX") }, - { 0x09, N_("AIX Bootable") }, - { 0x0a, N_("OS/2 Boot Manager") }, - { 0x0b, N_("FAT32") }, - { 0x0c, N_("FAT32 LBA") }, - { 0x0e, N_("FAT16 LBA") }, - { 0x0f, N_("Extended LBA") }, - { 0x10, N_("OPUS") }, - { 0x11, N_("Hidden FAT12") }, - { 0x12, N_("Compaq Diagnostics") }, - { 0x14, N_("Hidden Small FAT16") }, - { 0x16, N_("Hidden FAT16") }, - { 0x17, N_("Hidden NTFS") }, - { 0x18, N_("AST SmartSleep") }, - { 0x1b, N_("Hidden FAT32") }, - { 0x1c, N_("Hidden FAT32 LBA") }, - { 0x1e, N_("Hidden FAT16 LBA") }, - { 0x20, N_("Windows Mobile XIP") }, - { 0x21, N_("SpeedStor") }, - { 0x23, N_("Windows Mobile XIP") }, - { 0x24, N_("NEC DOS") }, - { 0x25, N_("Windows Mobile IMGFS") }, - { 0x27, N_("Hidden NTFS WinRE") }, - { 0x39, N_("Plan 9") }, - { 0x3c, N_("PMagic Recovery") }, - { 0x40, N_("Venix 80286") }, - { 0x41, N_("PPC PReP Boot") }, - { 0x42, N_("SFS") }, - { 0x4d, N_("QNX4.x") }, - { 0x4e, N_("QNX4.x") }, - { 0x4f, N_("QNX4.x") }, - { 0x50, N_("OnTrack DM") }, - { 0x51, N_("OnTrack DM") }, - { 0x52, N_("CP/M") }, - { 0x53, N_("OnTrack DM") }, - { 0x54, N_("OnTrack DM") }, - { 0x55, N_("EZ Drive") }, - { 0x56, N_("Golden Bow") }, - { 0x5c, N_("Priam EDisk") }, - { 0x61, N_("SpeedStor") }, - { 0x63, N_("GNU HURD/SysV") }, - { 0x64, N_("Netware") }, - { 0x65, N_("Netware") }, - { 0x66, N_("Netware") }, - { 0x67, N_("Netware") }, - { 0x68, N_("Netware") }, - { 0x69, N_("Netware") }, - { 0x70, N_("DiskSecure MultiBoot") }, - { 0x75, N_("PC/IX") }, - { 0x77, N_("Novell") }, - { 0x78, N_("XOSL") }, - { 0x7e, N_("F.I.X.") }, - { 0x7e, N_("AODPS") }, - { 0x80, N_("Minix") }, - { 0x81, N_("Minix") }, - { 0x82, N_("GNU/Linux Swap") }, - { 0x83, N_("GNU/Linux") }, - { 0x84, N_("Windows Hibernation") }, - { 0x85, N_("GNU/Linux Extended") }, - { 0x86, N_("NTFS Volume Set") }, - { 0x87, N_("NTFS Volume Set") }, - { 0x88, N_("GNU/Linux Plaintext") }, - { 0x8d, N_("FreeDOS Hidden FAT12") }, - { 0x8e, N_("GNU/Linux LVM") }, - { 0x90, N_("FreeDOS Hidden FAT16") }, - { 0x91, N_("FreeDOS Hidden Extended") }, - { 0x92, N_("FreeDOS Hidden FAT16") }, - { 0x93, N_("GNU/Linux Hidden") }, - { 0x96, N_("CHRP ISO-9660") }, - { 0x97, N_("FreeDOS Hidden FAT32") }, - { 0x98, N_("FreeDOS Hidden FAT32") }, - { 0x9a, N_("FreeDOS Hidden FAT16") }, - { 0x9b, N_("FreeDOS Hidden Extended") }, - { 0x9f, N_("BSD/OS") }, - { 0xa0, N_("Hibernation") }, - { 0xa1, N_("Hibernation") }, - { 0xa2, N_("SpeedStor") }, - { 0xa3, N_("SpeedStor") }, - { 0xa4, N_("SpeedStor") }, - { 0xa5, N_("FreeBSD") }, - { 0xa6, N_("OpenBSD") }, - { 0xa7, N_("NeXTSTEP") }, - { 0xa8, N_("Darwin UFS") }, - { 0xa9, N_("NetBSD") }, - { 0xab, N_("Darwin Boot") }, - { 0xaf, N_("HFS/HFS+") }, - { 0xb0, N_("BootStar Dummy") }, - { 0xb1, N_("QNX") }, - { 0xb2, N_("QNX") }, - { 0xb3, N_("QNX") }, - { 0xb4, N_("SpeedStor") }, - { 0xb6, N_("SpeedStor") }, - { 0xb7, N_("BSDI") }, - { 0xb8, N_("BSDI Swap") }, - { 0xbb, N_("BootWizard Hidden") }, - { 0xbc, N_("Acronis SZ") }, - { 0xbe, N_("Solaris Boot") }, - { 0xbf, N_("Solaris") }, - { 0xc0, N_("Secured FAT") }, - { 0xc1, N_("DR DOS FAT12") }, - { 0xc2, N_("GNU/Linux Hidden") }, - { 0xc3, N_("GNU/Linux Hidden Swap") }, - { 0xc4, N_("DR DOS FAT16") }, - { 0xc4, N_("DR DOS Extended") }, - { 0xc6, N_("DR DOS FAT16") }, - { 0xc7, N_("Syrinx") }, - { 0xda, N_("Non-FS Data") }, - { 0xdb, N_("CP/M") }, - { 0xde, N_("Dell Utility") }, - { 0xdf, N_("BootIt") }, - { 0xe0, N_("ST AVFS") }, - { 0xe1, N_("SpeedStor") }, - { 0xe3, N_("SpeedStor") }, - { 0xe4, N_("SpeedStor") }, - { 0xe6, N_("SpeedStor") }, - { 0xe8, N_("LUKS") }, - { 0xea, N_("Rufus Extra") }, - { 0xeb, N_("BeOS/Haiku") }, - { 0xec, N_("SkyFS") }, - { 0xed, N_("GPT Hybrid MBR") }, - { 0xee, N_("GPT Protective MBR") }, - { 0xef, N_("EFI FAT") }, - { 0xf0, N_("PA-RISC Boot") }, - { 0xf1, N_("SpeedStor") }, - { 0xf2, N_("DOS secondary") }, - { 0xf3, N_("SpeedStor") }, - { 0xf4, N_("SpeedStor") }, - { 0xf6, N_("SpeedStor") }, - { 0xfa, N_("Bochs") }, - { 0xfb, N_("VMware VMFS") }, - { 0xfc, N_("VMware VMKCORE") }, - { 0xfd, N_("GNU/Linux RAID Auto") }, - { 0xfe, N_("LANstep") }, - { 0xff, N_("XENIX BBT") }, - { 0, NULL } -}; - -#endif