You are not logged in.

#1 2016-07-16 06:33:23

alive4ever
Member
Registered: 2016-07-10
Posts: 65

[Solved] Custom made Archboot iso doesn't boot on qemu with OVMF EFI

Greeting Archboot Developers (@tpowa)

I am experimenting with manual Arch Boot creation. I created both x86_64
and i686 chroot with only base and archboot installed. I configured my locale by
commenting 'en_US-UTF-8' line on /etc/locale.conf and launched
'locale-gen' to generate locale inside both chroot.

Then I launched 'archboot-allinone.sh -t' on both chroot, which tooks a very
long time. I moved the 'core-i686.tar' to x86_64 systemd-nspawn chroot. After
that, I launched 'archboot-allinone.sh -g' which generates the images.

I have successfully built the iso files, here are files generated from the build

# cd /var/local/x86_64_archboot/root                                                                                                  
# ls
Archlinux-allinone-2016.07-dual.iso               Archlinux-allinone-2016.07-x86_64-network.iso
Archlinux-allinone-2016.07-dual-network.iso       Archlinux-allinone-2016.07-x86_64-uefi.iso
Archlinux-allinone-2016.07-dual-uefi-network.iso  Archlinux-allinone-2016.07-x86_64-uefi-network.iso
Archlinux-allinone-2016.07-i686.iso               core-i686.tar
Archlinux-allinone-2016.07-i686-network.iso       core-x86_64.tar
Archlinux-allinone-2016.07-x86_64.iso             sha256sums.txt

The non-uefi files boot fine with qemu-system-x86_64 bios mode (default mode).

When I try to boot one of uefi iso, for example
'Archlinux-allinone-2016.07-x86_64-uefi-network.iso', using qemu-system-x86_64
with ovmf uefi firmware (-bios /usr/share/ovmf/ovmf_x86_64.bin), the qemu just
refuses to boot.

Launching EFI boot file directly on FS0:\EFI\grub\grubx64.efi comes up with
'error: unknown filesystem' and throws a rescue shell. 'lsmod' commands which
should output all loaded modules throws 'unknown command'.

I think grubx64.efi should be packed as standalone EFI image which contains all
modules and grub.cfg loaded directly from memory.

Launching EFI boot file FS0:\EFI\BOOT\BOOTX64.EFI throws 'Unsupported' error.
Launching kernel directly from EFI shell is also unsupported. The default Arch
Linux kernel as far as I know can be launched from EFI shell. Maybe this is
because Archboot uses a non uefi stub kernel?

Launching FS0:\EFI\BOOT\loader.efi just throw a menu 'EFI Default Loader' and
'Reboot Into Firmware Interface'. This bootloader is similar to systemd-boot
loader, but it's not able to find the other boot entries because there is no
conf files inside FS0:\loader\entries folder.

I did not make any modification to the archboot profiles.

Is there any manual workaround to enable EFI booting on Archboot or is this just a bug on
archboot-uefi.sh script? Thanks.

Last edited by alive4ever (2016-07-19 13:26:23)

Offline

#2 2016-07-19 13:35:43

alive4ever
Member
Registered: 2016-07-10
Posts: 65

Re: [Solved] Custom made Archboot iso doesn't boot on qemu with OVMF EFI

I've solved this problem myself. This happened because /tmp is filled up.

For successful Archboot all-in-one build, 4GB or more /tmp is needed.

The only problem is Archboot can't be used for 'offline' Arch Linux installation, because of missing 'libnftnl' and 'libmnl', which is currently only available from extra repo and hadn't been included in the core repo. Missing the two libraries in Archboot prevents iptables to be installed and breaking overall 'base' installation from Archboot built in cdrom repository.

As temporary workaround, adding 'libmnl' and 'libnftnl' to SUPPORT_ADDITION variable in /usr/bin/archboot-svn.sh is needed to create working Archboot repository. I've filled the bug report to move iptables dependencies to core repository here.

Offline

Board footer

Powered by FluxBB