iPXE discussion forum
Use the iPXE as an UEFI Application - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Use the iPXE as an UEFI Application (/showthread.php?tid=7551)



Use the iPXE as an UEFI Application - Hudson - 2014-12-08 05:50

Hi,
I tried to use the iPXE as an UEFI Application to install the Ubuntu from PXE Server, which will running from my BIOS integrated UEFI Shell.

For the PXE Server part, it is already configured with the UEFI PXE Server, and I have tried with the BIOS integrated PXE boot options, the server works well.

But when I run the iPXE.efi Application, I could see the NIC card was configured, and could obtain IP Address from the DHCP Server, and then could fetch the BOOTX64.efi from the TFTP Server.
But after the iPXE begin to execute the BOOTX64.efi, it will stop at the GRUB command line, and I checked the network connections from the Server part, the connection was lost.

I want to ask that if my usage of the iPXE as UEFI Application is correct?
And if anyone know how should I handle this issue for the next step.

Thanks.


RE: Use the iPXE as an UEFI Application - robinsmidsrod - 2014-12-08 22:33

Did you forget the initrd=myinitrd.img parameter on your kernel command-line? That is required in addition to the initrd ipxe command on UEFI.

This should work on UEFI (and also on legacy BIOS):

Code:
#!ipxe
kernel vmlinuz initrd=myinitrd.gz
initrd myinitrd.gz
boot



RE: Use the iPXE as an UEFI Application - Hudson - 2014-12-10 07:40

With such kinds of script, it works, thanks a lot.
Seems that the iPXE do support fetch the kernel and ramdisk, then boot by itself, and do not need to grub at all.

For the traditional UEFI PXE server setting, the first step is to let the client fetch the BOOTX64.efi, but for iPXE, such grub APP does not needed.

(2014-12-08 22:33)robinsmidsrod Wrote:  Did you forget the initrd=myinitrd.img parameter on yourt kernel command-line? That is required in addition to the initrd ipxe command on UEFI.

This should work on UEFI (and also on legacy BIOS):

Code:
#!ipxe
kernel vmlinuz initrd=myinitrd.gz
initrd myinitrd.gz
boot



RE: Use the iPXE as an UEFI Application - lavator - 2015-01-19 12:29

Dear Robin,

I would like to load vmlinuz/initrd via HTTP like the following ,

Quote:#!ipxe
kernel http://${my-server}/vmlinuz initrd=http://${my-server}/initrd.gz
initrd http://${my-server}/initrd.gz
boot

But the results look like the following . Please advise me how to make it work .

http://192.168.168.1/vmlinuz... ok
http://192.168.168.1/initrd.gz... ok
Failed to open initrd file: http:\\192.168.168.1\initrd.gz


RE: Use the iPXE as an UEFI Application - mastacontrola - 2015-01-19 16:36

(2015-01-19 12:29)lavator Wrote:  Dear Robin,

I would like to load vmlinuz/initrd via HTTP like the following ,

Quote:#!ipxe
kernel http://${my-server}/vmlinuz initrd=http://${my-server}/initrd.gz
initrd http://${my-server}/initrd.gz
boot

But the results look like the following . Please advise me how to make it work .

http://192.168.168.1/vmlinuz... ok
http://192.168.168.1/initrd.gz... ok
Failed to open initrd file: http:\\192.168.168.1\initrd.gz

I believe you don't want initrd=http://${my-server}/initrd.gz as it's already loaded into memory at that point. So maybe you could have it load the kernel line as:


kernel http://${my-server}/vmlinuz initrd=initrd.gz

I believe this because during the kernel loadout, it doesn't have networking capabilities to download the init as you're trying to have here. However, using the initrd=initrd.gz it should be able to find it in memory when it begins loading.


RE: Use the iPXE as an UEFI Application - robinsmidsrod - 2015-01-22 09:05

mastacontrola is correct in his assumption, the initrd= parameter to the kernel is not a URL, it's a plain filename without path, and it should reference a file already loaded by iPXE.