[ipxe-devel] Generating a BIOS/UEFI hybrid ISO image
Dean Westhead
dean at westhead.net
Tue Oct 5 14:18:02 UTC 2021
Hi,
Yes ... that is what i have been trying .... and failing ! hehe !
it all "makes" without any errors and after installing the xorriso package the genfsimg runs without any errors too.
The only problem is that the outputted combined.iso will not boot a Dell UEFI laptop and RUFUS only sees the ISO as BIOS only too.
If I copy over to the src/util directory the old geniso file and add the rule into into the Makefile.pcbios to use it, the resultant
ISO file works fine on both BIOS and UEFI machines.
The ISO file is also about 1Mb smaller when created with the genfsimg than with the geniso file .... almost like it is failing to add the
bin-x86_64-efi/ipxe.efi file.
Dean.
----- Original Message -----
From: "Michael Brown" <mcb30 at ipxe.org>
To: "Dean Westhead" <dean at westhead.net>, "ipxe-devel" <ipxe-devel at lists.ipxe.org>
Sent: Tuesday, 5 October, 2021 12:58:53
Subject: Re: [ipxe-devel] Generating a BIOS/UEFI hybrid ISO image
On 05/10/2021 09:38, Dean Westhead wrote:
> I may be missing something, but since the commit changed the file
> src/util/geniso to src/util/genfsimg, I have not been able to generate
> an ISO file that can be used to boot both BIOS and UEFI ... it always
> only boots BIOS.
>
> I admit that the changes that i was told to make to the geniso file, i
> cant make to genfsimg becasue it is very different and i dont want to
> break anything else in it !
>
> Am I doing something wrong or is there a different set of instructions
> to modify genfsimg to make it create this ISO correctly ?
You no longer need to make any modifications to genfsimg: it is already
capable of building a combined BIOS and UEFI ISO (and can also handle
multiple UEFI architectures, if you want e.g. a combined ISO that can
handle BIOS, x86_64 UEFI, and AArch64 UEFI).
As per "./util/genfsimg -h":
usage: ./util/genfsimg [OPTIONS] foo.lkrn|foo.efi [bar.lkrn|bar.efi,...]
where OPTIONS are:
-h show this help
-o FILE save image to file
-p PAD pad filesystem (in kB)
-s SCRIPT use executable script
so you can build a combined image in two stages using e.g.
make bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi
./util/genfsimg -o combined.iso \
bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi
You can also use the "-s" option to specify a script that will be used
by platforms (without needing to build using EMBED=...). This is
particularly useful if you build an editable FAT filesystem image
instead of an ISO, using e.g.
./util/genfsimg -o combined.img -s myscript.ipxe \
bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi
since you can then mount the FAT filesystem image and edit the script
(saved as "autoexec.ipxe") without needing to recompile.
Michael
More information about the ipxe-devel
mailing list