@ Shivan
Hi, i wanted to ask if someone was able to make the new grub4dos version for UEFI work for PXE booting in UEFI mode?
Because, i did tried, but it just seem to drop the tftp connection, on my tftp server no other file is requested after the grub4dos.efi file,
meaning it does not search for the menu file on the tftp root.
I did tried using the mkimage to add the menu file directly into the .efi file, this works, but as expected i cant chainload anything that is on the tftp root, because it says "invalid device expecified". Doing something as simple as "chainload /bootmgrfwx64.efi"
I'm not familiar with TFTP PXE boot, but this is a summary of requirements to UEFI boot using G4E from the HD:
(maybe you can adapt some of this info to work on your PXE server).
UEFI menu.lst default location is /EFI/grub/menu.lst
MS bootmgfw.efi located into /EFI/Microsoft/Boot/bootmgfw.efi can be renamed to bootx64_win.efi
BOOTX64.EFI from grub4dos for UEFI (G4E) can be renamed and copied to /EFI/Microsoft/Boot/bootmgfw.efi, to boot from it, but Secure Boot has to be disabled.
To boot from MS bootx64_win.efi use following commands on your UEFI menu.lst:
title Windows EFI BootManager - chainloader /EFI/Microsoft/Boot/bootx64_win.efi
find --set-root /EFI/Microsoft/Boot/bootx64_win.efi
chainloader /EFI/Microsoft/Boot/bootx64_win.efi
For UEFI booting the partition where EFI boot files/folders are located should be FAT-32, all UEFI firmwares read/load/run EFI boot files from a FAT-32 partition. Usually the firmwares lack NTFS drivers and have only FAT-32 drivers. (same applies for partitions on VHDs).
Nevertheless some new MB are now also capables to read/load/run EFI boot files from a NTFS partition.
Anyway you may pre-load ntfs_x64.efi, see following example of the commands used on the UEFI menu.lst into my USB device:
UEFI Rambooting a VHD (single primary active NTFS partition) using ntfs_x64.efi (MS MBR and UEFI boot files into the VHD):
title Boot /Mini-10x64.vhd - UEFI Grub4dos SVBus RAMDISK - 2 GB
load /EFI/grub/ntfs_x64.efi
find --set-root /Mini-10x64.vhd
map --mem --top /Mini-10x64.vhd (hd)
chainloader (hd-1)
Filedisk booting a VHD (single primary active NTFS partition) using ntfs_x64.efi (MS MBR and UEFI boot files into the VHD):
title Boot /Mini-10x64.vhd - UEFI Grub4dos - Filedisk - 2 GB
load /EFI/grub/ntfs_x64.efi
find --set-root /Mini-10x64.vhd
map /Mini-10x64.vhd (hd)
chainloader (hd-1)
Or better use ntloader, very useful for booting OSs, WIM and VHDs, no need to have MS MBR and UEFI boot files into the VHD:
Filedisk booting WIM and VHD files using ntloader, (MS MBR and UEFI boot files are NOT required into the VHD):
title Boot Windows NT6+ PE - /10XPE_x64.wim
find --set-root /10XPE_x64.wim
uuid %@root%
kernel /ntloader uuid=%?_UUID% file=/10XPE_x64.wim
initrd /initrd.lz1
title Boot Windows NT6+ PE - /Mini-10x64.vhd
find --set-root /Mini-10x64.vhd
uuid %@root%
kernel /ntloader uuid=%?_UUID% file=/Mini-10x64.vhd
initrd /initrd.lz1
NOTE: On this case ntloader and initrd.lz1 are on the root of the NTFS partition holding the WIM and the VHD files.
UEFI Rambooting a VHD (single primary active NTFS partition) using ntloader, (MS MBR and UEFI boot files are NOT required into the VHD):
title Mini-10x64.vhd-SVBUS (/VHD/Mini-10x64.vhd)-chainloader ntloader-vhd-svbus-RAMOS
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set x=
echo x=%x%
find --ignore-floppies --ignore-cd --set-root /VHD/Mini-10x64.vhd
map --mem --top /VHD/Mini-10x64.vhd (hd)
uuid (hd-1,0)
chainloader %x%/EFI/grub/ntloader hires=0 uuid=%?_UUID% initrd=/EFI/grub/initrd.lz1
NOTE: On this case ntloader and initrd.lz1 are located into /EFI/grub folder, and Mini-10x64.vhd is located into /VHD folder on another NTFS partition.
Just try to change/adapt previous examples (to your needs) in your embedded menu.
You should use this version: grub4dos-for_UEFI-2021-06-19.7z
Hope this info can be useful for you.
alacran