Re: How to change where PXE booting looks for files with UEFI
On Fri, Apr 7, 2017 at 12:31 PM, David Niklas wrote: > As someone who is curious about PXE, did you ever figure this out? > > Unfortunately I was not able to spend too much time on this and have not yet figured out how to set UEFI PXE booting options like where to look for files. If I figure this out I will post a reply to the list. Thanks, Joshua
How to change where PXE booting looks for files with UEFI
On Wed, 15 Mar 2017 13:53:08 -0600 Joshua Schaeffer 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 tftp4 Sep 28 11:10 centos > drwxr-xr-x 1 tftp tftp4 Sep 28 11:10 debian > drwxr-xr-x 1 tftp tftp8 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 tftp25372 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 tftp42988 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
How to change where PXE booting looks for files with UEFI
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 tftp4 Sep 28 11:10 centos drwxr-xr-x 1 tftp tftp4 Sep 28 11:10 debian drwxr-xr-x 1 tftp tftp8 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 tftp25372 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 tftp42988 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