[EXTERNAL EMAIL] 

Once upon a time, mohammad kashif <[email protected]> said:
> Thanks for kind offer. Can you please let me know whether you use
> bootnetx64.efi
> or grubx64.efi for UEFI boot?  Also what is your dhcp config option to
> differentiate between UEFI and legacy boot mode for 'filename' .

I'm not Raoul, but here's how I PXE boot for BIOS and UEFI.

First, I used dnsmasq for DHCP, so obviously, adapt for other servers.
I have this in my config (replace tftp.example.com with your TFTP server
and 192.168.1.2 with its IP address - haven't set PXE up for IPv6 yet):

   # EFI boot will set ARCH option (93)
   dhcp-match=set:efi32,option:client-arch,6
   dhcp-match=set:efi64,option:client-arch,7
   tag-if=set:bios,tag:!efi32,tag:!efi64

   # PXE boot
   dhcp-boot=tag:efi64,shimx64.efi,tftp.example.com,192.168.1.2
   dhcp-boot=tag:bios,bios/lpxelinux.0,tftp.example.com,192.168.1.2
   dhcp-option-force=lan,209,pxelinux.conf

Then in my TFTP root, I have:

   shimx64.efi       # from shim-x64 RPM: /boot/efi/EFI/fedora/shimx64.efi
   grubx64.efi       # from grub2-efi-x64 RPM: /boot/efi/EFI/fedora/grubx64.efi
   EFI/fedora        # from grub2-efi-x64-modules RPM: /usr/lib/grub/fedora
   bios/ldlinux.c32  # from syslinux-tftpboot RPM: /tftpboot/ldlinux.c32
   bios/libutil.c32  # from syslinux-tftpboot RPM: /tftpboot/libutil.c32
   bios/lpxelinux.0  # from syslinux-tftpboot RPM: /tftpboot/lpxelinux.0
   bios/menu.c32     # from syslinux-tftpboot RPM: /tftpboot/menu.c32

   # local configs
   grub.cfg
      source (http,tftp.example.com)/local/grub2.cgi
   bios/pxelinux.conf
      ui menu.c32 http://tftp.example.com/local/pxe.cgi


I load the rest over HTTP from the same server; so much faster and more
reliable than TFTP, and the configs can be auto-generated this way.  The
referenced CGIs generate configs like:

grub2.cgi:
################
terminal_input console
loadfont /12x26.pf2
insmod gfxterm
set gfxmode=auto
terminal_output gfxterm

set timeout=-1

menuentry 'Install Fedora release 32 x86_64' {
        set root=(http,tftp.example.com)
        linuxefi 
/pub/fedora/linux/releases/32/Server/x86_64/os/images/pxeboot/vmlinuz 
inst.root=http://tftp.example.com/pub/fedora/linux/releases/32/Server/x86_64/os/
 
inst.stage2=http://tftp.example.com/pub/fedora/linux/releases/32/Server/x86_64/os/
 repo=http://tftp.example.com/pub/fedora/linux/releases/32/Everything/x86_64/os 
quiet BOOTIF=$net_default_mac
        initrdefi 
/pub/fedora/linux/releases/32/Server/x86_64/os/images/pxeboot/initrd.img
}
################

pxe.cgi:
################
timeout 100

menu title Select a network boot option
menu rows 15
menu tabmsgrow -5
menu cmdlinerow -3
menu timeoutrow -2
menu helpmsgrow -4

label f32_x86_64
        menu label Fedora release 32 x86_64
        text help
        Hit [TAB] and add " rescue" for rescue mode
        endtext
        kernel 
http://tftp.example.com/pub/fedora/linux/releases/32/Server/x86_64/os/images/pxeboot/vmlinuz
        initrd 
http://tftp.example.com/pub/fedora/linux/releases/32/Server/x86_64/os/images/pxeboot/initrd.img
        append 
inst.root=http://tftp.example.com/pub/fedora/linux/releases/32/Server/x86_64/os/
 
inst.stage2=http://tftp.example.com/pub/fedora/linux/releases/32/Server/x86_64/os/
 repo=http://tftp.example.com/pub/fedora/linux/releases/32/Everything/x86_64/os
        ipappend 2
################

-- 
Chris Adams <[email protected]>

_______________________________________________
Linux-PowerEdge mailing list
[email protected]
https://lists.us.dell.com/mailman/listinfo/linux-poweredge

Reply via email to