Quantcast
Channel: Easy2Boot
Viewing all articles
Browse latest Browse all 10

Legacy booting to Linux ISOs with better compatibility using .iso83 (e.g. RHEL 9)

$
0
0

Note: The instructions below apply to E2B legacy booting only. If you have problems Legacy+UEFI-booting a payload, then convert the ISO file to a .imgPTN23 file using MakePartImage.

When Easy2Boot boots to an ISO, it writes an entry to the empty USB drive MBR Partition 4 slot within sector LBA0 on the USB drive (which should always be empty on an E2B USB drive).

E2B, by default, uses a type number of 0 for the partition type. Windows (and UEFI BIOSes) will ignore such a partition but most Linux kernels will auto-mount a Type 0 partition as long as the other parameters (start, length, etc.) are correct and the partition is formatted. This way, Linux will always ‘see’ the ISO as an accessible file system and mount it as a CD\DVD volume even though it is actually a partition on a USB drive.

However, some Linux’s are configured to not mount Type 0 partitions when fully booted.

This means that the Linux kernel may seem to boot successfully, but once fully booted, the OS may not see any of the ISO’s internal files on Partition 4 such as OS installation files or licence files, etc.

Such an example is seen with the Trial version of the RedHat Linux (RHEL 9) install ISO. Unless a non-zero partition type is used, the GUI will require you to enter a RedHat account username and password instead of recognising it as a trial version. This issue can be seen with agFM and Ventoy too.

RHEL Trial version does not normally require you to login online using your RedHat credentials.

The solution for E2B legacy booting is to use a file extension of .iso83. This will cause a Type number of 0x83 to be used instead of Type 0. (E2B v2.14e and later)

Since the special file extension is only valid for E2B, you can use the _.iso83.iso file extension for the file, e.g. rhel-baseos-9.0-x86_64-dvd_.iso83.iso. It’s ‘.iso’ extension will be unchanged and it can still be UEFI-booted using agFM and Ventoy too (but they will not recognise the special ’83’ function).

You can use the _.iso83.iso file extension on any Linux ISO that does not seem to work using the default E2B boot method.

The only problem is that E2B will always check that Partition 4 on the E2B USB drive is empty every time it is booted. To fix this and wipe partition 4 first, make sure the first 3 lines in your \_ISO\MyE2B.cfg file are as follows:

!BAT
# Always wipe Ptn4
if not exist CD if not "%E2BDEV%"=="" partnew (%E2BDEV%,3) 0 0 0 > nul

E2B does not normally wipe partition 4 by default, in case the user copies the E2B files to his existing four-partition USB drive and then boots to E2B – it would delete his fourth partition without warning (which could be an extended partition and thus would delete all logical partitions too!).

WARNING: You will not be able to UEFI-boot from the E2B USB drive until you Legacy boot to the E2B menu (and Partition 4 is deleted). This because EFI BIOSes will see that the MBR partition table is invalid because Partition 4 will be ‘inside’ Partition 1 (MBR BIOSes don’t check this). The BIOS will not list any bootable USB drive partitions at all! So after using a .iso83 file, remember to always legacy boot to the E2B Main Menu afterwards to delete the Partition 4 entry.

Note: If you need to specify a different Type number for Partition 4, you can use a .mnu file and set the PT variable as in the .mnu file example below:

#This .mnu file must be in same folder as the ISO file
iftitle [if exist $HOME$/some.iso] Boot my ISO and add to Partition 4 with a Type number\nUses type A0 hex instead of type 0\nRemember to reboot back to the E2B Main menu\nto re-enable UEFI booting!

set PT=0xA0
(bd)/%grub%/QRUN.g4b force.isodef $HOME$/some.iso
boot

Viewing all articles
Browse latest Browse all 10

Trending Articles