Re: How to change where PXE booting looks for files with UEFI

2017-04-07 Thread Joshua Schaeffer
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

2017-04-07 Thread David Niklas
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

2017-03-15 Thread Joshua Schaeffer
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