You are not logged in.

#26 2021-04-06 16:18:08

nl6720
Wiki Admin
Registered: 2016-07-02
Posts: 288

Re: Cannot boot Arch USB on legacy mode

I got a reply from Nio Wiklund a.k.a. sudodus. test1 ISO works! big_smile I have now asked them to test test2 ISO.

Looking again at the partition tables of the ISO, I realized that test1 and test2 do not really have a hybrid-MBR since there's no 0xEE partition in the MBR, instead it's just something similar. This makes me think if there's a point in setting the EFI system partition's type GUID in the invalid GPT. Maybe test2 would be safer™ since it more closely matches the result of -isohybrid-gpt-basdat without -append_partition.

Offline

#27 2021-04-06 17:04:14

scdbackup
Member
Registered: 2013-05-30
Posts: 61

Re: Cannot boot Arch USB on legacy mode

Hi,

> test1 ISO works!

That had to be feared. smile
I already adjusted xorriso's command

-report_system_area "as_mkisofs"

so that it makes the proper proposal how to rebuild it. The ISO
archlinux-isohybrid-gpt-basdat-test1-2021.03.06-x86_64.iso
is now part of my regression tests for bootable ISOs.

(The missing trick was not to apply -isohybrid-gpt-basdat to the EFI
El Torito image. Doing so would override the EFI type GUID by the
Basic-Data type GUID.)

>  I realized that test1 and test2 do not really have a hybrid-MBR since
> there's no 0xEE partition in the MBR,

Yes. One of my objections against test1 is that the GPT in there is not
valid, because the MBR is not "protective", i.e. has partitions other than
a single one of type 0xEE.
(Nevertheless it seems to suffice for the buggy EFI of the Lenovo V130
to accept the ISO, other than an ISO without invalid GPT-ish bytes.)

Bystanders should note, that "hybrid-MBR" is used as term for two different
MBR modifications:

The MBR-El-Torito hybrids of ISOLINUX and GRUB2 catch the attention of BIOS
when they are presented on USB sticks. Their x86 boot code then transfers
execution to the El-Torito boot image program, so that USB stick booting
acts like booting from CD or DVD. This also goes by the name "isohybrid".

The other kind are the MBR-GPT hybrid MBRs as of
  https://www.rodsbooks.com/gdisk/hybrid.html
They do have an MBR partition of type 0xEE, but violate the demand of GPT
that no other partitions shall be marked by the MBR partition table.

Both kinds are combinable, because "isohybrid" does not refer to partitions
and because even perfectly "protective" MBRs are allowed contain x86 boot
code.
But, except in one case,  xorriso takes care not to attribute type 0xEE to a
partition in a non-protective MBR. (This is an abominality which i prevented
in time. I wish i had prevented -isohybrid-gpt-basdat with -b before you found
out that this combination produces bootable ISOs. smile)
The only case, where a MBR-GPT-hybrid MBR emerges, is GPT with

--mbr-force-bootable

.
(Edit: Initially i stated that this never happens.)

> This makes me think if there's a point in setting the EFI system
> partition's type GUID in the invalid GPT.

The EFI Type GUID in the invalid GPT may or may not confuse the buggy
EFI implementations. A good one would simply ignore the GPT-ish bytes.
But the company Lenovo alone is able to show firmware bugs at both ends
of the BIOS-EFI spectrum.

> Maybe test2 would be safer™ since it more closely matches the result of
> -isohybrid-gpt-basdat without -append_partition.

This one does not need adjustments of -report_system_area "as_mkisofs".
So already the released xorriso versions can tell how to reproduce its
boot equipment.

Have a nice day smile

Thomas

Last edited by scdbackup (2021-04-06 20:10:48)

Offline

#28 2021-04-07 08:23:12

nl6720
Wiki Admin
Registered: 2016-07-02
Posts: 288

Re: Cannot boot Arch USB on legacy mode

I got confirmation that the test2 ISO boots on Lenovo V130 both in UEFI mode and BIOS mode.

I will go with test2 for archiso. Due to the fact that it's closer to the previous method and also because there are no overlapping partitions.

Merge request: https://gitlab.archlinux.org/archlinux/ … quests/160 .
In case anyone (jaworek3211 smile ) wants to test it: https://gitlab.archlinux.org/nl6720/arc … ut/releng/ (direct link to the ISO). It should be just the same as previous test2 ISOs.

Offline

#29 2021-04-07 09:54:40

scdbackup
Member
Registered: 2013-05-30
Posts: 61

Re: Cannot boot Arch USB on legacy mode

Hi,

i just praised sudodus by mail for helping to prevent test1.
The layout of test2 is not worse than the one of the old Arch Linux ISOs.
Its code path in xorriso and libisofs is much more intentional than the
one of test1. So the risk of future bitrot is accordingly lower.

I now added archlinux-2021.04.07-x86_64.iso to my regression tests.
Please give me a note when/if this layout ever gets changed.

Have a nice day smile

Thomas

Offline

Board footer

Powered by FluxBB