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 |
|
|