diff --git a/xorriso/iso_img.c b/xorriso/iso_img.c index 16c17301..b51ba9cd 100644 --- a/xorriso/iso_img.c +++ b/xorriso/iso_img.c @@ -1680,7 +1680,7 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso, char *volid, *crt, *mdt, *ext, *eft, uuid[17], *uuid_time; char **app_pseudo_paths= NULL; struct tm tm_erg; - int was_force_bootable= 0; + int was_force_bootable= 0, have_mbr_force_bootable= 0; uint64_t gpt_bheader_block= 0; struct mbr_par { @@ -1755,6 +1755,8 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso, } else if(strcmp(name, "MBR partition :") == 0) { if(num[0] > mbr_count) mbr_count= num[0]; + if(strcmp(textpt, "0x80 0x00 0 1") == 0) + have_mbr_force_bootable= 1; } else if(strcmp(name, "GPT partition name :") == 0) { if(num[0] > gpt_count) @@ -2244,8 +2246,9 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso, } /* Check for isohybri-ish MBR and GPT mix */ - if(mbr_count == 1 && mbrpts[0].ptype == 0xee && have_protective_msdos) { - /* real GPT is not -part_like_isohybrid */ + if((mbr_count == 1 || (mbr_count == 2 && have_mbr_force_bootable)) && + mbrpts[0].ptype == 0xee && have_protective_msdos) { + /* real GPT (+/- mbr_force_bootable) is not -part_like_isohybrid */ ret= 0; } else { ret= Xorriso_search_eltorito_lba(xorriso, et_imgs, elto_count, diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 61f77d15..b144d36f 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2020.10.22.114038" +#define Xorriso_timestamP "2020.10.24.121839"