Page 1 of 1

[Solved] UEFI PXE Networkboot

Posted: 19 Nov 2014, 08:27
by max.muster

I just downloaded the new Porteus-Kiosk-3.1.3 which should work with UEFI. I have tried it an it works with usb boot stick.
Anyway I could not figure out how to make it work using PXE. I am using Porteus Kiosk (Ver 3.0) on legacy BIOS based thin clients and it works great.
Any help how to get Porteus-Kiosk-3.1.3 to load on UEFI based clients via PXE network boot would be appreciated!

Re: UEFI PXE Networkboot

Posted: 19 Nov 2014, 10:04
by fanthom
please have a look on this: ... g-efi.html

seems that you have to provide grub.efi image instead of pxelinux.0 to the clients. modifications to the initrd may be also necessary as client should download grub configuration file.
i'll have a look on this over the weekend but if you find something yourself then please post so i could add this function to Porteus Kiosk 3.2 planned for December (no much time left).


Re: UEFI PXE Networkboot [Solved]

Posted: 20 Nov 2014, 10:35
by max.muster

so I finally succeded. Here is a very short how-to and some additional links to help anyone else with this problem:
1.) First I check the Ubuntu site regarding PXE-netboot install
2.) Download UEFI signed grub image from ... efi.signed
3.) The I took the EFI boot file (bootx64.efi) from the Ubuntu 14.04-server-amd64.iso. This file is located on the iso image in the directory EFI/BOOT
4.) Created an ISO with the Porteus Kiosk Wizard with PXE support
5.) Installed Apache2, tftpd-hpa and isc-dhcp server on my ubuntu server

Configuration of tftpd-hpa:
1.) tftp-root is located at /var/lib/tftpboot
2.) Created directory grub and pxelinux in tftp-root directory and the directory pxelinux.cfg in/var/lib/tftpboot/pxelinux
3.) Copied grubnetx64.efi.signed to /var/lib/tftpboot/grubnetx64.efi
4.) Copied bootx64.efi to /var/lib/tftpboot/pxelinux
5.) Copied vmlinuz (from Porteus Kiosk Wizard created ISO to /var/lib/tftpboot/pxelinux
6.) Copied initrd.xz and initrdpxe.xz (from Porteus Kiosk Wizard created ISO to /var/lib/tftpboot/pxelinux and /var/lib/tftpboot/pxelinux/pxelinux.cfg
7.) Created default grub.cfg configuration file in /var/lib/tftpboot/grub and added these lines

Code: Select all

set timeout=0
menuentry "Load Porteus Kiosk" {
  linux /pxelinux/vmlinuz gfxpayload=800x600x16,800x600 -- quiet http_server=
  initrd /pxelinux/initrd.xz /pxelinux/pxelinux.cfg/initrdpxe.xz
Configuration of dhcpd.conf:
1) Modified dhcpd.conf to serve a subnet with pxe clients:

Code: Select all

subnet netmask {
interface eth1;
  option domain-search "";
  option domain-name-servers;
  option domain-name "";
  option broadcast-address;
  option routers;

if substring( option vendor-class-identifier , 0 , 9 ) = "PXEClient" {
  filename "pxelinux/bootx64.efi";
Apache Configuration
1) Created directory uefi in the apache default documents root directory
2) Copied directories docs and boot from Porteus Kiosk Wizard created iso to uefi

Well then I restarted tftpd-hpa, isc-dhcp server and apache2 and it worked!

Tested on VMWare Workstation 10 (efi enabled) and Shuttle XS36V4 (boot Secure boot enabled and disabled)

Best regards!

Re: UEFI PXE Networkboot

Posted: 20 Nov 2014, 13:46
by fanthom
great stuff!
i'm happy that the method you described does not require any modifications to kiosk core (kernel, initrd) and it's just a mater of configuration on the server side.

thanks a lot for this