Hi All,

 

Some Linux Distribution ISO image would contain both Eltorito(iso 9660) volume info and MBR table at the same time. That would cause the partition check pass the MBR and ignore the UDF (Eltorito compatible) check.

There is a bug in the partition child handler: https://bugzilla.tianocore.org/show_bug.cgi?id=2843. It would make the MBR transfer the wrong device size. That cause the FAT driver fail to install the FAT       protocol onto the device.

But when I solve the issue, the EFI partition can be found as MBR FAT device. That would cause another issue. Boot from the MBR FAT from ISO image is different with boot from CD FAT.

Here is the difference:

Boot from MBR FAT: go to the grub terminal window.

Boot from CD FAT: go to the installation window.

I don’t know why the same grub image act different behaviors. But I believe “Boot from CD FAT” is the right behavior. That means the ISO 9660 should not be treated as MBR device in UEFI BIOS.

 

So I would like to add a logic: the ISO image that contain both ISO 9660 volume info and MBR partition, the partition driver would skip the MBR check and continue to do the ISO 9660 check. There is a easy way to do this, i.e. put the UDF (ISO 9660 compatible) before the MBR check. It means the partition routine child handle would have a priority and the UDF (ISO 9660) has high priority than the MBR. That would solve all the Linux Distribution ISO image issue in my thought.

 

I want to get some suggestion from the community before I sent the patch.

 

Thanks,

Zhichao