Activity log for bug #1789319

Date Who What changed Old value New value Message
2018-08-28 01:17:46 Lee Trager bug added bug
2018-08-28 01:19:21 Lee Trager bug task added ipxe (Ubuntu)
2018-08-28 01:24:52 Lee Trager description libvirt supports running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. libvirt supports running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as followes. if option arch = 00:00 { # pxe filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" { # iPXE uefi_amd64 filename "grubx64.efi"; } elsif option arch = 00:07 { # uefi_amd64 filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" { # iPXE uefi_amd64 filename "grubx64.efi"; } elsif option arch = 00:09 { # uefi_amd64 filename "grubx64.efi"; } elsif option arch = 00:0B { # uefi_arm64 filename "grubaa64.efi"; } elsif option arch = 00:0C { # open-firmware_ppc64el filename "bootppc64.bin"; } elsif option arch = 00:0E { # powernv filename "pxelinux.0"; option path-prefix "ppc64el/"; } elsif option arch = 00:1F { # s390x filename "boots390x.bin"; option path-prefix "s390x/"; } else { # pxe filename "lpxelinux.0"; }
2018-08-28 01:25:06 Lee Trager description libvirt supports running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as followes. if option arch = 00:00 { # pxe filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" { # iPXE uefi_amd64 filename "grubx64.efi"; } elsif option arch = 00:07 { # uefi_amd64 filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" { # iPXE uefi_amd64 filename "grubx64.efi"; } elsif option arch = 00:09 { # uefi_amd64 filename "grubx64.efi"; } elsif option arch = 00:0B { # uefi_arm64 filename "grubaa64.efi"; } elsif option arch = 00:0C { # open-firmware_ppc64el filename "bootppc64.bin"; } elsif option arch = 00:0E { # powernv filename "pxelinux.0"; option path-prefix "ppc64el/"; } elsif option arch = 00:1F { # s390x filename "boots390x.bin"; option path-prefix "s390x/"; } else { # pxe filename "lpxelinux.0"; } libvirt supports running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as follows. if option arch = 00:00 {     # pxe     filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:07 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:09 {     # uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:0B {     # uefi_arm64     filename "grubaa64.efi"; } elsif option arch = 00:0C {     # open-firmware_ppc64el     filename "bootppc64.bin"; } elsif option arch = 00:0E {     # powernv     filename "pxelinux.0";     option path-prefix "ppc64el/"; } elsif option arch = 00:1F {     # s390x     filename "boots390x.bin";     option path-prefix "s390x/"; } else {     # pxe     filename "lpxelinux.0"; }
2018-08-28 01:25:27 Lee Trager description libvirt supports running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as follows. if option arch = 00:00 {     # pxe     filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:07 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:09 {     # uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:0B {     # uefi_arm64     filename "grubaa64.efi"; } elsif option arch = 00:0C {     # open-firmware_ppc64el     filename "bootppc64.bin"; } elsif option arch = 00:0E {     # powernv     filename "pxelinux.0";     option path-prefix "ppc64el/"; } elsif option arch = 00:1F {     # s390x     filename "boots390x.bin";     option path-prefix "s390x/"; } else {     # pxe     filename "lpxelinux.0"; } libvirt supports running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as follows. if option arch = 00:00 {     # pxe     filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:07 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:09 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:0B {     # uefi_arm64     filename "grubaa64.efi"; } elsif option arch = 00:0C {     # open-firmware_ppc64el     filename "bootppc64.bin"; } elsif option arch = 00:0E {     # powernv     filename "pxelinux.0";     option path-prefix "ppc64el/"; } elsif option arch = 00:1F {     # s390x     filename "boots390x.bin";     option path-prefix "s390x/"; } else {     # pxe     filename "lpxelinux.0"; }
2018-08-28 01:27:52 Lee Trager description libvirt supports running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as follows. if option arch = 00:00 {     # pxe     filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:07 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:09 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:0B {     # uefi_arm64     filename "grubaa64.efi"; } elsif option arch = 00:0C {     # open-firmware_ppc64el     filename "bootppc64.bin"; } elsif option arch = 00:0E {     # powernv     filename "pxelinux.0";     option path-prefix "ppc64el/"; } elsif option arch = 00:1F {     # s390x     filename "boots390x.bin";     option path-prefix "s390x/"; } else {     # pxe     filename "lpxelinux.0"; } libvirt supports creating virtual machines running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as follows. if option arch = 00:00 {     # pxe     filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:07 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:09 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:0B {     # uefi_arm64     filename "grubaa64.efi"; } elsif option arch = 00:0C {     # open-firmware_ppc64el     filename "bootppc64.bin"; } elsif option arch = 00:0E {     # powernv     filename "pxelinux.0";     option path-prefix "ppc64el/"; } elsif option arch = 00:1F {     # s390x     filename "boots390x.bin";     option path-prefix "s390x/"; } else {     # pxe     filename "lpxelinux.0"; }
2018-08-28 01:29:12 Lee Trager bug task added shim-signed (Ubuntu)
2018-08-28 07:10:42 Lee Trager attachment added libvirt machine configuration https://bugs.launchpad.net/maas/+bug/1789319/+attachment/5181602/+files/maas-test-5.xml
2018-08-28 07:11:24 Lee Trager attachment added libvirt UEFI machine PXE booting using iPXE https://bugs.launchpad.net/maas/+bug/1789319/+attachment/5181603/+files/maas-test-5-ipxe.png
2018-08-28 07:11:49 Lee Trager attachment added libvirt UEFI boot configuration https://bugs.launchpad.net/maas/+bug/1789319/+attachment/5181604/+files/maas-test-5-firmware.png
2018-08-28 16:17:26 Lee Trager attachment added libvirt UEFI iPXE failure with shimx64.efi https://bugs.launchpad.net/ubuntu/+source/shim-signed/+bug/1789319/+attachment/5181784/+files/maas-test-5-failure.png
2018-08-28 16:45:18 Mathieu Trudel-Lapierre bug task deleted ipxe (Ubuntu)
2018-08-28 16:45:30 Mathieu Trudel-Lapierre affects shim-signed (Ubuntu) grub2 (Ubuntu)
2018-08-28 16:45:30 Mathieu Trudel-Lapierre grub2 (Ubuntu): status New Confirmed
2018-08-28 17:22:39 Steve Langasek bug task added shim (Ubuntu)
2018-08-28 17:23:17 Steve Langasek shim (Ubuntu): status New Confirmed
2018-08-28 17:23:19 Steve Langasek shim (Ubuntu): status Confirmed Triaged
2018-08-28 20:44:56 Andres Rodriguez maas: milestone 2.5.0beta1
2018-08-29 12:35:53 Francis Ginther tags id-5b85855515a6063ed300711d
2018-09-05 21:15:37 Andres Rodriguez maas: milestone 2.5.0beta1 2.5.0beta2
2018-09-05 22:43:23 Laszlo Ersek (Red Hat) bug added subscriber Laszlo Ersek (Red Hat)
2018-09-10 08:07:13 Julian Andres Klode bug task added ipxe (Ubuntu)
2018-09-10 08:07:28 Julian Andres Klode ipxe (Ubuntu): status New Triaged
2018-09-10 08:58:45 haobinnan bug added subscriber haobinnan
2018-09-10 12:31:39 Julian Andres Klode shim (Ubuntu): status Triaged Invalid
2018-09-10 12:31:41 Julian Andres Klode grub2 (Ubuntu): status Confirmed Invalid
2018-09-10 12:32:48 Julian Andres Klode ipxe (Ubuntu): status Triaged In Progress
2018-09-10 13:05:15 Julian Andres Klode ipxe (Ubuntu): status In Progress Fix Committed
2018-09-10 15:17:48 Julian Andres Klode ipxe (Ubuntu Bionic): status New In Progress
2018-09-10 15:21:49 Julian Andres Klode description libvirt supports creating virtual machines running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as follows. if option arch = 00:00 {     # pxe     filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:07 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:09 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:0B {     # uefi_arm64     filename "grubaa64.efi"; } elsif option arch = 00:0C {     # open-firmware_ppc64el     filename "bootppc64.bin"; } elsif option arch = 00:0E {     # powernv     filename "pxelinux.0";     option path-prefix "ppc64el/"; } elsif option arch = 00:1F {     # s390x     filename "boots390x.bin";     option path-prefix "s390x/"; } else {     # pxe     filename "lpxelinux.0"; } [Impact] libvirt supports creating virtual machines running in UEFI mode and uses iPXE to enable network booting. When MAAS gives shimx64.efi, as it does on all UEFI systems, to iPXE it chainloads grub but fails to the grub prompt. If I modify MAAS to give grubx64.efi instead of shimx64.efi UEFI booting works. Ideally iPXE would be modified to properly chainload the shim however MAAS could also check the user-agent when returning the boot file as follows. if option arch = 00:00 {     # pxe     filename "lpxelinux.0"; } elsif option arch = 00:07 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:07 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:09 and exists user-class and option user-class = "iPXE" {     # iPXE uefi_amd64     filename "grubx64.efi"; } elsif option arch = 00:09 {     # uefi_amd64     filename "bootx64.efi"; } elsif option arch = 00:0B {     # uefi_arm64     filename "grubaa64.efi"; } elsif option arch = 00:0C {     # open-firmware_ppc64el     filename "bootppc64.bin"; } elsif option arch = 00:0E {     # powernv     filename "pxelinux.0";     option path-prefix "ppc64el/"; } elsif option arch = 00:1F {     # s390x     filename "boots390x.bin";     option path-prefix "s390x/"; } else {     # pxe     filename "lpxelinux.0"; } [Test case] Minimal test case: Run the following command and ensure it boots (assuming a EFI system with shim and grub): sudo kvm -bios /usr/share/OVMF/OVMF_CODE.fd -device virtio-net,netdev=n1 -netdev user,id=n1,tftp=/boot/efi/EFI/ubuntu,bootfile=shimx64.efi Optimally, also do the MAAS thing. [Regression potential] I switched the ipxe-qemu packages to build in qemu mode, which makes things use OVMF's internal network stack (so things might work differently with some bootloaders or something when netbooting). It might do other stuff, too, I don't really know. That said, the configuration is specifically for qemu, and used by other distributions, so this aligns us more closely with them, reducing chances of breaking stuff.
2018-09-10 15:22:09 Launchpad Janitor ipxe (Ubuntu): status Fix Committed Fix Released
2018-09-11 00:41:31 haobinnan removed subscriber haobinnan
2018-09-11 07:42:19 Julian Andres Klode bug added subscriber Julian Andres Klode
2018-09-12 15:47:51 Łukasz Zemczak ipxe (Ubuntu Bionic): status In Progress Fix Committed
2018-09-12 15:47:53 Łukasz Zemczak bug added subscriber Ubuntu Stable Release Updates Team
2018-09-12 15:47:54 Łukasz Zemczak bug added subscriber SRU Verification
2018-09-12 15:47:57 Łukasz Zemczak tags id-5b85855515a6063ed300711d id-5b85855515a6063ed300711d verification-needed verification-needed-bionic
2018-09-13 13:02:33 Julian Andres Klode tags id-5b85855515a6063ed300711d verification-needed verification-needed-bionic id-5b85855515a6063ed300711d verification-done verification-done-bionic
2018-09-20 06:42:39 Launchpad Janitor ipxe (Ubuntu Bionic): status Fix Committed Fix Released
2018-09-20 06:42:45 Łukasz Zemczak removed subscriber Ubuntu Stable Release Updates Team
2018-09-20 07:07:27 Andres Rodriguez maas: status Triaged Invalid
2018-09-27 21:02:06 Andres Rodriguez maas: milestone 2.5.0beta2 2.5.0rc1
2018-10-10 13:26:55 Andres Rodriguez maas: milestone 2.5.0rc1 2.5.x
2018-10-16 17:18:52 Andres Rodriguez maas: milestone 2.5.x