agama-project / agama

A service-based Linux installer
https://agama-project.github.io/
GNU General Public License v2.0
144 stars 43 forks source link

Boot local option in Agama doesn't work on UEFI #1609

Closed lkocman closed 2 months ago

lkocman commented 2 months ago

Hello folks

(link to bug in case it is not an expected behavior https://bugzilla.suse.com/show_bug.cgi?id=1230595)

all of our test cases where the boot priority has install media as the first are blocked. Selecting Boot from local in Agama fails to boot system.

If you change boot order to hardrive first, then installed system boots fine . This confirms that system was properly installed by agama. So it's literally just invalid boot menu entry "Boot from local" in agama-installer live.

Boot instructions for local boot from agama-installer image

Legacy image

UEFI image

Overview can be seen here https://openqa.opensuse.org/tests/overview?distri=opensuse&version=16.0&build=36.48&groupid=129

lkocman commented 2 months ago

Here I see that there are some thumbs down on the "exit" solution for the second boot device. Which I suppose on UEFI will be the uefi manager in our case ... https://superuser.com/questions/1680733/how-to-boot-from-local-disk-using-grub2-during-a-pxe-boot

But I guess the second boot device could be for example not a HDD.

lkocman commented 2 months ago

This is the boot manager menu including the order and everything. It's simple VM with firmware=uefi and cd set as the first in the boot order

image

This is the grub2 output after selecting Boot from disk image

lkocman commented 2 months ago

Here's a recording with vm with already installed Leap 16.0 from agama, using efi and agama-installer cd as first boot device. I'll very likely add the efi workaround (for efi variants) to openQA for now. grub2-uefi-agama.webm

lkocman commented 2 months ago

@ben-brunner found what's the issue

menuentry "Boot from Hard Disk" --class opensuse --class gnu-linux --class gnu --class os {
  if search --no-floppy --file /efi/boot/fallback.efi --set ; then
    for os in opensuse sles caasp ; do
      if [ -f /efi/$os/grub.efi ] ; then
        chainloader /efi/$os/grub.efi
        boot
      fi
    done
  fi
  exit
}

vs Agama-installer:

menuentry "Boot from Hard Disk" --class os --unrestricted {
    exit
}
lkocman commented 2 months ago

osc -A https://api.suse.de rdiff SUSE:SLFO:Main grub2 openSUSE.org:openSUSE:Factory shows that we're identical. I'll check what magic do we do with bootmenu entries during image building.

lkocman commented 2 months ago

Steffen told us that TW images are not using kiwi generated boot entries, while agama is. I think we can do the some if codition for failsafe.efi and load that an boot, alterantively to exit.

lkocman commented 2 months ago

Oky Marcus Shaefer also mentioned kiwi template as an alternative ehttps://build.opensuse.org/projects/Virtualization:Appliances:Images:Testing_x86:archlinux/packages/test-image-live-disk-kis/files/_service:obs_scm:iso_boot.template?expand=1

But since we do already generate ppc64le grub.cfg by cat I'll stick with the script based cat > into file.

lkocman commented 2 months ago

Should be resolved by https://github.com/openSUSE/agama/pull/1613

lkocman commented 2 months ago

openQA suddenly looks greener (I copied my test build to Leap 16.0) image

lkocman commented 2 months ago

The uefi based boot passed

the USB based legacy boot (with usb being the first boot device) still has struggle https://openqa.opensuse.org/tests/4485755#step/grub_test/5

lkocman commented 2 months ago

Tracking the USB legacy issue separately as #1615