Q: XenServer 7.1.0 PXE installation As my IBM Blade Center H has known difficulties with booting HS22 Blades from CDROM the best option for me is installation via network. So I'm trying to set up a PXE boot of the XenServer 7.1.0 installation.
I'm following Citrix Installation Guide Appendix C on pages 37ff. 
My Blade is booting to a grub console, but not loading the install system. So i guess tftp and dhcp are working fine. 
On page 38 the Installation guides says: 

Configuring your TFTP Server for UEFI boot 
To configure your TFTP server for UEFI boot:
  
  
*
  
*In the  /tftpboot  directory, create a new directory called  EFI/xenserver.
  
*Configure your DHCP server to provide  /EFI/xenserver/grubx64.efi  as the boot file.
  
*Create  grub.cfg  file. For example:
  

     menuentry "XenServer Install (serial)" {
         multiboot2 /EFI/xenserver/xen.gz dom0_mem=1024M,max:1024M watchdog dom0_max_vcpus=4 com1=115200,8n1 console=com1,vga
         module2 /EFI/xenserver/vmlinuz console=hvc0
         module2 /EFI/xenserver/install.img }



  
*Copy  grub.cfg  file to  /tftpboot/EFI/xenserver  directory on the TFTP server.
  
*From  the  XenServer  installation  media,  copy  the  files   grubx64.efi ,   install.img   (from  the root directory),  vmlinuz 
  and  xen.gz  (from the  /boot  directory) to the new  /tftpboot/EFI/
  xenserver  directory on the TFTP server. Note: The following examples
  show how to configure the installer to run on the physical console,
  tty0. To use a different default, ensure that the console you want to
  use is the leftmost.

OK, as there is no grubx64.efi file in the ISO root I took the one from /EFI/xenserver.
And then without anything else follows this piece of config. I don't know what to do with it, so maybe my problem is coming from this:
> default xenserver 
> label xenserver
> kernel mboot.c32  append /tftpboot/EFI/xenserver/xen.gz
> dom0_mem=1024M,max:1024M watchdog dom0_max_vcpus=4 com1=115200,8n1 \ 
> console=com1,vga --- /tftpboot/EFI/xenserver/vmlinuz \  console=hvc0
> console=tty0 \
> --- /tftpboot/EFI/xenserver/install.img


A: I didn't find a real solution, but:
For some reason the root variable in grub is not set, and so grub doesn't find the config file.
My workaround ist to manually set the variable in grub console and load the config
set root=(tftp,192.168.xxx)
configfile /EFI/xenserver/grub.cfg

Also the grub.cfg needs to be adopted to see the installer on the local Screen:
menuentry "XenServer Install (serial)" {
   multiboot2 /EFI/xenserver/xen.gz dom0_mem=1024M,max:1024M watchdog dom0_max_vcpus=4 com1=115200,8n1 console=com1,vga
   module2 /EFI/xenserver/vmlinuz console=hvc0 console=tty0
   module2 /EFI/xenserver/install.img }


A: I had to modify your config to something similar - this is using IPXE.
I found this article from Citrix which showed using a ram disk as root. I am a noob when it comes to pxe and ipxe booting and this was the working config for me in the end. I basically saw that the module section in IPXE relates to the --- in pxelinux. Seems like you could set the root in the vmlinuz section of your pxelinux.cfg.
:xen
kernel ${base}/XenServer-7.4/boot/xen dom0_max_vcpus=1 dom0_mem=max:1G com1=115200,8n1 console=com1,vga
module ${base}/XenServer-7.4/boot/vmlinuz ramdisk_size=100000 root=dev/ram0 console=hvc0 console=tty0
module  ${base}/XenServer-7.4/install.img
boot || goto failed
goto menu

