What is the difference between these two loading schemas?
- PXE from BIOS.
- PXE from EFI.
I know that firmware passes control to NIC program which is stored in the NIC ROM. This program gives IP address over BOOTP and at least a path to the loader. This loader loads over TFTP into the NIC's RAM and begins executing. Then the loader (syslinux, grub …) loads kernel and initrd over TFTP/HTTP/FTP into the host RAM and passes control to kernel.
Why I must have two different loader versions (BIOS version and EFI version)?
Best Answer
I thought that loaders that have been retrieved by NIC firmware are executed by the NIC controller, but that's wrong. This loader is executed by BIOS or EFI. BIOS is 16-bit environment, EFI is 32/64-bit environment. Thus, loader must be compatible with execution environment. Thanks for link Managing EFI Boot Loaders for Linux