|
|
|
@ -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, |
|
|
|
|