From db41c1e63e713dfcd7a5a7755fa2208e3db526c8 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Tue, 14 Jan 2014 20:10:09 +0000 Subject: [PATCH] [core] use custom partition type for old BIOS fix * We will need that when we fix #191 * Also improve make sys_types.h more comprehensive and fix a small loc issue --- res/localization/rufus.loc | 2 +- src/drive.c | 2 +- src/drive.h | 2 + src/rufus.rc | 10 +-- src/sys_types.h | 124 ++++++++++++++++++++++++------------- 5 files changed, 91 insertions(+), 49 deletions(-) diff --git a/res/localization/rufus.loc b/res/localization/rufus.loc index 86db4dee..adc76a7f 100644 --- a/res/localization/rufus.loc +++ b/res/localization/rufus.loc @@ -5613,7 +5613,7 @@ t MSG_173 "Faça clic para selecionar..." # The following will appear in the about dialog t MSG_174 "Rufus - O utilitário de formatação USB mais seguro" t MSG_175 "Versão %d.%d.%d (Build %d)" -t MSG_176 "Tradução para Português: Fernando Baptista " +t MSG_176 "Tradução para Português: Fernando Baptista mailto:gbatold@gmail.com" t MSG_177 "Para reportar bugs ou sugerir melhoras, dirija-se a:" t MSG_178 "Direitos de autor adicionais:" t MSG_179 "Politica de atualização:" diff --git a/src/drive.c b/src/drive.c index 4dd83b35..ecec045d 100644 --- a/src/drive.c +++ b/src/drive.c @@ -886,7 +886,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m DriveLayoutEx.PartitionEntry[1].RewritePartition = TRUE; DriveLayoutEx.PartitionEntry[1].Mbr.BootIndicator = FALSE; DriveLayoutEx.PartitionEntry[1].Mbr.HiddenSectors = SelectedDrive.Geometry.SectorsPerTrack*SelectedDrive.Geometry.BytesPerSector; - DriveLayoutEx.PartitionEntry[1].Mbr.PartitionType = DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType + 0x10; // Hidden whatever + DriveLayoutEx.PartitionEntry[1].Mbr.PartitionType = RUFUS_EXTRA_PARTITION_TYPE; } // For the remaining partitions, PartitionStyle & PartitionType have already // been zeroed => already set to MBR/unused diff --git a/src/drive.h b/src/drive.h index 98651545..b536256b 100644 --- a/src/drive.h +++ b/src/drive.h @@ -22,6 +22,8 @@ #pragma once +#define RUFUS_EXTRA_PARTITION_TYPE 0xea + char* GetPhysicalName(DWORD DriveIndex); HANDLE GetPhysicalHandle(DWORD DriveIndex, BOOL bWriteAccess, BOOL bLockDrive); char* GetLogicalName(DWORD DriveIndex, BOOL bKeepTrailingBackslash, BOOL bSilent); diff --git a/src/rufus.rc b/src/rufus.rc index 079ecc71..b6266f7c 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.4.2.379" +CAPTION "Rufus v1.4.2.380" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 @@ -288,8 +288,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,4,2,379 - PRODUCTVERSION 1,4,2,379 + FILEVERSION 1,4,2,380 + PRODUCTVERSION 1,4,2,380 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -306,13 +306,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.4.2.379" + VALUE "FileVersion", "1.4.2.380" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2014 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.4.2.379" + VALUE "ProductVersion", "1.4.2.380" END END BLOCK "VarFileInfo" diff --git a/src/sys_types.h b/src/sys_types.h index 59517ede..7dd4044e 100644 --- a/src/sys_types.h +++ b/src/sys_types.h @@ -29,9 +29,11 @@ typedef struct { #define N_(String) String - -/* The system types for msdos partition tables - * Needed for lfdisk and some interface improvements +/* + * File system types for MBR partition tables + * See http://en.wikipedia.org/wiki/Partition_type + * 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") }, @@ -59,45 +61,68 @@ SysType msdos_systypes[] = { { 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") }, + { 0x3c, N_("PMagic Recovery") }, { 0x40, N_("Venix 80286") }, { 0x41, N_("PPC PReP Boot") }, { 0x42, N_("SFS") }, { 0x4d, N_("QNX4.x") }, - { 0x4e, N_("QNX4.x 2nd Partition") }, - { 0x4f, N_("QNX4.x 3rd Partition") }, + { 0x4e, N_("QNX4.x") }, + { 0x4f, N_("QNX4.x") }, { 0x50, N_("OnTrack DM") }, - { 0x51, N_("OnTrackDM6 Aux1") }, + { 0x51, N_("OnTrack DM") }, { 0x52, N_("CP/M") }, - { 0x53, N_("OnTrackDM6 Aux3") }, - { 0x54, N_("OnTrack DM6") }, + { 0x53, N_("OnTrack DM") }, + { 0x54, N_("OnTrack DM") }, { 0x55, N_("EZ Drive") }, { 0x56, N_("Golden Bow") }, - { 0x5c, N_("Priam Edisk") }, + { 0x5c, N_("Priam EDisk") }, { 0x61, N_("SpeedStor") }, { 0x63, N_("GNU HURD/SysV") }, - { 0x64, N_("Netware 286") }, - { 0x65, N_("Netware 386") }, - { 0x70, N_("DiskSec MultiBoot") }, + { 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") }, - { 0x80, N_("Minix <1.4a") }, - { 0x81, N_("Minix >1.4b") }, - { 0x82, N_("Linux Swap") }, - { 0x83, N_("Linux") }, - { 0x84, N_("OS/2 Hidden C:") }, - { 0x85, N_("Linux Extended") }, + { 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_("Linux Plaintext") }, - { 0x8e, N_("Linux LVM") }, - { 0x93, N_("Amoeba") }, - /*This guys created a separate partition for badblocks?! */ - { 0x94, N_("Amoeba BBT") }, + { 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_("Thinkpad Hibernation") }, + { 0xa0, N_("Hibernation") }, + { 0xa1, N_("Hibernation") }, + { 0xa2, N_("SpeedStor") }, + { 0xa3, N_("SpeedStor") }, + { 0xa4, N_("SpeedStor") }, { 0xa5, N_("FreeBSD") }, { 0xa6, N_("OpenBSD") }, { 0xa7, N_("NeXTSTEP") }, @@ -105,37 +130,52 @@ SysType msdos_systypes[] = { { 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") }, - /* Beware of the Hidden wizard */ - { 0xbb, N_("Boot Wizard Hidden") }, + { 0xbb, N_("BootWizard Hidden") }, + { 0xbc, N_("Acronis SZ") }, { 0xbe, N_("Solaris Boot") }, { 0xbf, N_("Solaris") }, - { 0xc1, N_("DRDOS/2 FAT12") }, - { 0xc4, N_("DRDOS/2 smFAT16") }, - { 0xc6, N_("DRDOS/2 FAT16") }, - /* Reminds me of Rush - 2112 */ + { 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") }, - /* Should 0x20 be DontBootIt then? */ { 0xdf, N_("BootIt") }, - { 0xe1, N_("DOS Access") }, - { 0xe3, N_("DOS R/O") }, - /*I sense some strange déjà vu */ + { 0xe0, N_("ST AVFS") }, + { 0xe1, N_("SpeedStor") }, + { 0xe3, N_("SpeedStor") }, { 0xe4, N_("SpeedStor") }, - { 0xfb, N_("VMware VMFS") }, - { 0xfc, N_("VMware VMKCORE") }, - { 0xeb, N_("BeOS") }, - { 0xee, N_("GPT") }, + { 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_("Linux/PA-RISC Boot") }, + { 0xf0, N_("PA-RISC Boot") }, { 0xf1, N_("SpeedStor") }, { 0xf2, N_("DOS secondary") }, - /* Are these guys trying for a Guinness record or something? */ + { 0xf3, N_("SpeedStor") }, { 0xf4, N_("SpeedStor") }, - { 0xfd, N_("Linux RAID Auto") }, + { 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 }