Hi everyone
I'm having a problem with UEFI PXE boot in VM environment.
I'm trying to create a PXE Server, so i've created a VM with Ubuntu 24, installed isc-dhcp-server and tftp-hpa. Compiled iPXE for both legacy and UEFI, and placed the files (undionly.kpxe and ipxe.efi) on the root folder of tftp (/tftproot/).
Then i've created another vm without any OS installed, to see if it would boot from pxe.
I've tried to boot using "SeaBios" and "OVMF".
If i boot with "SeaBios", it works.... but if i try to boot using "OVMF" i get the following message :
Already tried attaching an "EFI disk" and a "VirtIO RNG", but the result is always the same.
Can someone please help ??
I'm posting here the config files of the Ubuntu VM
/etc/netplan/50-cloud.init.yaml
/etc/default/isc-dhcp-server
The second interface (enp6s19) is there only to have internet so i can install packages
/etc/dhcp/dhcpd.conf
/etc/default/tftpd-hpa
I'm running both VM's on an isollated network.
The config files of the VM itself are :
PXEServer :
/etc/pve/nodes/proxmox/qemu-server/190.conf
and the vm for testing the pxeboot:
/etc/pve/nodes/proxmox/qemu-server/999.conf
Sorry for the big post, but i wanted to be as accurate as possible.
Thanks
Edit : forgot to attach a capture done with "tcpdump -w output.pcap port 67 or port 68 or port 69 or port 4011"
I'm having a problem with UEFI PXE boot in VM environment.
I'm trying to create a PXE Server, so i've created a VM with Ubuntu 24, installed isc-dhcp-server and tftp-hpa. Compiled iPXE for both legacy and UEFI, and placed the files (undionly.kpxe and ipxe.efi) on the root folder of tftp (/tftproot/).
Then i've created another vm without any OS installed, to see if it would boot from pxe.
I've tried to boot using "SeaBios" and "OVMF".
If i boot with "SeaBios", it works.... but if i try to boot using "OVMF" i get the following message :
Code:
>>Start PXE over IPV4
Station IP Address is 10.0.0.12
Server IP Address is 10.0.0.3
NBP filename is ipxe.efi
NBP filesize is 0 Bytes
PXE-E99: Unexpected network error
BdsDxe: failed to load Boot0003 "UEFI PXEv4 (MAC:BC24112AD38C)" From PciRoot (0x0)/Pci(0x12,0x0)/MAC(BC24112AD38C.0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0) : Not Found
Already tried attaching an "EFI disk" and a "VirtIO RNG", but the result is always the same.
Can someone please help ??
I'm posting here the config files of the Ubuntu VM
/etc/netplan/50-cloud.init.yaml
Code:
network:
version: 2
ethernets:
enp6s18:
dhcp4: no
dhcp6: no
addresses: [10.0.0.3/24]
nameservers:
addresses: [1.1.1.1,8.8.8.8,8.8.4.4]
optional : true
enp6s19:
dhcp4: yes
routes:
- to: default
via: 192.168.1.254
Code:
INTERFACESv4="enp6s18"
INTERFACESv6=""
The second interface (enp6s19) is there only to have internet so i can install packages
/etc/dhcp/dhcpd.conf
Code:
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
option architecture-type code 93 = unsigned integer 16;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
if option architecture-type = 00:00 {
filename "undionly.kpxe"; # BIOS
} elsif option architecture-type = 00:07 {
filename "ipxe.efi"; # EFI
option bootfile-name "ipxe.efi";
} elsif option architecture-type = 00:09 {
filename "EFIia64/syslinux.efi"; # ia64_EFI
option bootfile-name "syslinux.ia64";
} elsif option architecture-type = 00:06 {
filename "EFIia32/syslinux.efi"; # ia32_EFI
}
}
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.200;
option subnet-mask 255.255.255.0;
option routers 192.168.1.254;
next-server 10.0.0.3;
}
/etc/default/tftpd-hpa
Code:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftproot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
I'm running both VM's on an isollated network.
The config files of the VM itself are :
PXEServer :
/etc/pve/nodes/proxmox/qemu-server/190.conf
Code:
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 4
cpu: x86-64-v2-AES
cpulimit: 8
efidisk0: local:190/vm-190-disk-0.qcow2,efitype=4m,ms-cert=2023,pre-enrolled-keys=1,size=528K
ide2: local:iso/ubuntu-24.04.3-live-server-amd64.iso,media=cdrom,size=3226020K
machine: q35
memory: 32000
meta: creation-qemu=10.1.2,ctime=1764112097
name: pxeserver
net0: virtio=BC:24:11:0E:D5:99,bridge=isolLan,firewall=1
net1: virtio=BC:24:11:B2:7A:03,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsi0: local:190/vm-190-disk-1.qcow2,iothread=1,size=150G
scsihw: virtio-scsi-single
smbios1: uuid=e7e4507a-6a7c-4ffb-8e16-62863067f226
sockets: 2
vmgenid: e41a5244-f2c1-4c17-8e1a-b37d396dacad
and the vm for testing the pxeboot:
/etc/pve/nodes/proxmox/qemu-server/999.conf
Code:
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 3
cpu: x86-64-v2-AES
cpulimit: 3
efidisk0: local:999/vm-999-disk-2.qcow2,efitype=4m,size=528K
ide2: none,media=cdrom
memory: 2048
meta: creation-qemu=10.1.2,ctime=1764197982
name: testepxe
net0: rtl8139=BC:24:11:2A:D3:8C,bridge=isolLan,firewall=1
numa: 0
ostype: l26
rng0: source=/dev/urandom
scsi0: local:999/vm-999-disk-0.qcow2,iothread=1,size=8G
scsihw: virtio-scsi-single
smbios1: uuid=a457da31-6384-4512-9ab0-9f387e8d7407
sockets: 1
unused0: local:999/vm-999-disk-1.qcow2
vmgenid: b4f2b76e-7a00-4ee2-8931-0f68cb8d15a3
Sorry for the big post, but i wanted to be as accurate as possible.
Thanks
Edit : forgot to attach a capture done with "tcpdump -w output.pcap port 67 or port 68 or port 69 or port 4011"
Attachments
Last edited: