Web lists-archives.com

How to change where PXE booting looks for files with UEFI




On Wed, 15 Mar 2017 13:53:08 -0600
Joshua Schaeffer <jschaeffer0922@xxxxxxxxx> wrote:
> Ahoy,
> 
> I've been learning how to setup PXE booting to install an OS image on a
> 100% UEFI system (CSM completely disabled). I use Debian 8 as my DHCP
> server (ISC DHCP) and as my TFTP server (tftpd-hpa). I also use the
> Debian netboot installer to provide the PXE environment including the
> bootnetx64.efi file (I use it to serve pxelinux.0 as well).
> 
> I'm able to get to menu screens with PXE on UEFI and BIOS, but I have to
> have specific files in certain directories for UEFI and I don't know
> how to change the defaults. With BIOS I'm able to control the
> directories and files that are served by changing the
> pxelinux.cfg/default file. For BIOS I put my debian-installer directory
> (which contains the boot screen, menus, etc) under gtk. So I just have
> lines like this in my pxelinux.cfg/default file:
> 
>     path gtk/debian-installer/amd64/boot-screens/
>     default gtk/debian-installer/amd64/boot-screens/vesamenu.c32
> 
> However, I can't figure out how to tell UEFI to look in specific
> directories. Instead I've been left with just having to create a symlink
> from the default directory that bootnetx64.efi looks in to point to the
> actual directory that my GRUB files exist.
> 
> How do you configure UEFI PXE booting to use different directories then
> the defaults?
> 
> Let me try to explain what I'm seeing a little better:
> 
> This is my TFTP server. The base directory is /srv/tftp:
> 
>     root@broodwar:/srv/tftp/pxeboot# ls -l
>     total 48208
>     -rw-r--r-- 1 tftp tftp   435712 Mar 15 10:38 bootnetx64.efi
>     drwxr-xr-x 1 tftp tftp        4 Sep 28 11:10 centos
>     drwxr-xr-x 1 tftp tftp        4 Sep 28 11:10 debian
>     drwxr-xr-x 1 tftp tftp        8 Sep 28 11:16 fedora
>     drwxr-xr-x 1 tftp tftp      120 Sep 17 10:04 gtk
>     -rw-r--r-- 1 tftp tftp   116624 Sep 28 09:30 ldlinux.c32
>     -rw-r--r-- 1 tftp tftp    25372 Sep 30 10:40 memdisk
>     -rw-r--r-- 1 tftp tftp 29360128 Sep 13  2016 mini.iso
>     -rw-r--r-- 1 tftp tftp 19370928 Sep 13  2016 netboot.tar.gz
>     drwxr-xr-x 1 tftp tftp       16 Sep 28 11:17 opensuse
>     -rw-r--r-- 1 tftp tftp    42988 Sep 13  2016 pxelinux.0
>     drwxr-xr-x 1 tftp tftp      248 Sep 30 10:31 pxelinux.cfg
>     drwxr-xr-x 1 tftp tftp       20 Sep 28 11:17 ubuntu
>     drwxr-xr-x 1 tftp tftp       32 Sep 30 09:40 windows
>     drwxr-xr-x 1 tftp tftp       52 Sep 17 10:04 xen
> 
> You can see that under the base directory I have a pxeboot directory
> which can serve both pxelinux.0 and bootnetx64.efi. I also have a gtk
> folder which is where the debian-installer folder resides under (this
> has items like my boot screens and menus as well as GRUB related files
> for UEFI). So, when booting via BIOS I tell my pxelinux.cfg file to
> look under the gtk folder as shown above. bootnetx64.efi however is
> looking for the following files:
> 
> 
>    - debian-installer/amd64/grub/x86_64-efi/command.lst
>    - debian-installer/amd64/grub/x86_64-efi/fs.lst
>    - debian-installer/amd64/grub/x86_64-efi/crypto.lst
>    - debian-installer/amd64/grub/x86_64-efi/terminal.lst
>    - debian-installer/amd64/grub/grub.cfg
> 
> I know this because this is what is reported in the tftp log files. I
> have to have a symlink called debian-installer in my root directory
> (/srv/tftp/debian-installer) pointing to my gtk folder
> (srv/tftp/pxeboot/gtk/debian-installer).
> 
>     root@broodwar:/srv/tftp/pxeboot# ls -l ..
>     total 4
>     drwxr-xrwx 1 tftp tftp 128 Jan 23 15:24 cisco_config
>     lrwxrwxrwx 1 root root  29 Mar 15 12:34 debian-installer ->
> pxeboot/gtk/debian-installer/
>     drwxr-xr-x 1 tftp tftp 242 Mar 15 12:33 pxeboot
> 
> How do I tell bootnetx64.efi to just look directly in that folder
> instead of looking at the default location?
> 
> Thanks,
> Joshua

As someone who is curious about PXE, did you ever figure this out?

Thanks,
David