.../Universal/Disk/PartitionDxe/Mbr.c | 37 +++---------------- .../Universal/Disk/PartitionDxe/Partition.c | 22 ++++++----- 2 files changed, 18 insertions(+), 41 deletions(-)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2823 REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2843 Refer to the UEFI spec 2.8, Section 13.3.2: A block device should be scanned as below order: 1. GPT 2. ISO 9660 (El Torito) (UDF should aslo be here) 4. MBR 5. no partition found But the code implementation is: 1. GPT 2. MBR 3. ISO 9660 (El Torito) (UDF) 4. no partition found Which would cause the ISO 9960 image with MBR info be treated as MBR device. That would cause unexpect behavior. So fix it to follow the spec description. The fix of the PartitionInstallChildHandle would change the boot behavior of Linux ISO image with MBR table. So add it after the order adjustment to make no impact of the boot. V2: 1. Add description of the different behavior between grub boot from MBR path and from CD path 2. change patch #2 to revert "MdeModulePkg/PartitionDxe: Skip the MBR that add for CD-ROM" Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Gary Lin <glin@suse.com> Cc: Andrew Fish <afish@apple.com> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com> Zhichao Gao (3): MdeModulePkg/PartitionDxe: Put the UDF check ahead of MBR MdeModulePkg/PartitionDxe: Revert changes for the special MBR MdeModulePkg/PartitionDxe: Fix the incorrect LBA size in child hander .../Universal/Disk/PartitionDxe/Mbr.c | 37 +++---------------- .../Universal/Disk/PartitionDxe/Partition.c | 22 ++++++----- 2 files changed, 18 insertions(+), 41 deletions(-) -- 2.21.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64023): https://edk2.groups.io/g/devel/message/64023 Mute This Topic: https://groups.io/mt/76139477/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On Wed, Aug 12, 2020 at 09:21:21AM +0800, Zhichao Gao wrote: > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2823 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2843 > > Refer to the UEFI spec 2.8, Section 13.3.2: > A block device should be scanned as below order: > 1. GPT > 2. ISO 9660 (El Torito) (UDF should aslo be here) > 4. MBR > 5. no partition found > > But the code implementation is: > 1. GPT > 2. MBR > 3. ISO 9660 (El Torito) (UDF) > 4. no partition found > > Which would cause the ISO 9960 image with MBR info be treated as MBR > device. That would cause unexpect behavior. So fix it to follow the spec > description. > > The fix of the PartitionInstallChildHandle would change the boot behavior > of Linux ISO image with MBR table. So add it after the order adjustment > to make no impact of the boot. > > V2: > 1. Add description of the different behavior between grub boot from MBR path and > from CD path > 2. change patch #2 to revert "MdeModulePkg/PartitionDxe: Skip the MBR that add for CD-ROM" I've tested the following ISO images and all booted as expected. openSUSE Leap 15.2 SLES 15-SP2 Fedora 32 Ubuntu 20.04 Tested-by: Gary Lin <glin@suse.com> > > Cc: Jian J Wang <jian.j.wang@intel.com> > Cc: Hao A Wu <hao.a.wu@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > Cc: Gary Lin <glin@suse.com> > Cc: Andrew Fish <afish@apple.com> > Signed-off-by: Zhichao Gao <zhichao.gao@intel.com> > > Zhichao Gao (3): > MdeModulePkg/PartitionDxe: Put the UDF check ahead of MBR > MdeModulePkg/PartitionDxe: Revert changes for the special MBR > MdeModulePkg/PartitionDxe: Fix the incorrect LBA size in child hander > > .../Universal/Disk/PartitionDxe/Mbr.c | 37 +++---------------- > .../Universal/Disk/PartitionDxe/Partition.c | 22 ++++++----- > 2 files changed, 18 insertions(+), 41 deletions(-) > > -- > 2.21.0.windows.1 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64047): https://edk2.groups.io/g/devel/message/64047 Mute This Topic: https://groups.io/mt/76139477/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On 08/12/20 08:26, Gary Lin wrote: > On Wed, Aug 12, 2020 at 09:21:21AM +0800, Zhichao Gao wrote: >> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2823 >> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2843 >> >> Refer to the UEFI spec 2.8, Section 13.3.2: >> A block device should be scanned as below order: >> 1. GPT >> 2. ISO 9660 (El Torito) (UDF should aslo be here) >> 4. MBR >> 5. no partition found >> >> But the code implementation is: >> 1. GPT >> 2. MBR >> 3. ISO 9660 (El Torito) (UDF) >> 4. no partition found >> >> Which would cause the ISO 9960 image with MBR info be treated as MBR >> device. That would cause unexpect behavior. So fix it to follow the spec >> description. >> >> The fix of the PartitionInstallChildHandle would change the boot behavior >> of Linux ISO image with MBR table. So add it after the order adjustment >> to make no impact of the boot. >> >> V2: >> 1. Add description of the different behavior between grub boot from MBR path and >> from CD path >> 2. change patch #2 to revert "MdeModulePkg/PartitionDxe: Skip the MBR that add for CD-ROM" > > I've tested the following ISO images and all booted as expected. > > openSUSE Leap 15.2 > SLES 15-SP2 > Fedora 32 > Ubuntu 20.04 > > Tested-by: Gary Lin <glin@suse.com> Thank you very much for the extensive testing! Laszlo > >> >> Cc: Jian J Wang <jian.j.wang@intel.com> >> Cc: Hao A Wu <hao.a.wu@intel.com> >> Cc: Ray Ni <ray.ni@intel.com> >> Cc: Gary Lin <glin@suse.com> >> Cc: Andrew Fish <afish@apple.com> >> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com> >> >> Zhichao Gao (3): >> MdeModulePkg/PartitionDxe: Put the UDF check ahead of MBR >> MdeModulePkg/PartitionDxe: Revert changes for the special MBR >> MdeModulePkg/PartitionDxe: Fix the incorrect LBA size in child hander >> >> .../Universal/Disk/PartitionDxe/Mbr.c | 37 +++---------------- >> .../Universal/Disk/PartitionDxe/Partition.c | 22 ++++++----- >> 2 files changed, 18 insertions(+), 41 deletions(-) >> >> -- >> 2.21.0.windows.1 >> > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64066): https://edk2.groups.io/g/devel/message/64066 Mute This Topic: https://groups.io/mt/76139477/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.