We are exprimenting with PXE boot in out Apple lab using iPXE (Mac minis Late 2012).
Described problem may not be directly related to iPXE since it might be more of Apple firmware issue combined with pxelinux.
I've seen few Mac related post on this forum so someone could now what is going on.
iPXE is booting via Mac firmware lagacy MBR boot with BIOS emulation.
Boot looks like this: Mac Firmware -> iPXE -> downloads and runs lpxelinux.
There are several boot scenarios.
1) [works correctly] Booting iPXE once via. Apple firmware boot menu when holding down option key from iPXE on USB flash drive or HDD partition.
2) [works correctly] Setting iPXE permanently from HDD partion with bless --device /dev/diskX --setBoot --legacy
3) [problem] Booting iPXE once from HDD partion using --nextonly flag (bless --device /dev/diskX --setBoot --legacy --nextonly)
iPXE starts, gets IP address, dowloads lpxelinux but ends with error:
Failed to load ldlinux.c32.
Boot Failed: ... see
http://i.imgur.com/NIF3GC3.jpg
Do you think is just Apple bug or there might be explanation for this?
NVRAM states
Code:
NVRAM default (boot OS X from Macintosh HD)
efi-boot-device <array><dict><key>MemoryType</key><integer size="64">0xb</integer><key>StartingAddress</key><integer size="64">0xff990000</integer><key>IOEFIDevicePathType</key><string>HardwareMemoryMapped</string><key>EndingAddress</key><integer size="64">0xffb2ffff</integer></dict><dict><key>IOEFIDevicePathType</key><string>MediaFirmwareVolumeFilePath</string><key>Guid</key><string>2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7</string></dict><dict><key>IOEFIBootOption</key><string>HD</string></dict></array>%00
efi-boot-device-data %01%03%18%00%0b%00%00%00%00%00%99%ff%00%00%00%00%ff%ff%b2%ff%00%00%00%00%04%06%14%00%eb%85%05+%b8%d8%a9I%8b%8c%e2%1b%01%ae%f2%b7%7f%ff%04%00
BootCampHD %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%01%00%00%00%00%00%7f%ff%04%00
NVRAM after bless --device /dev/disk0s2 --setBoot --nextonly --legacy (boot through iPXE once via MBR legacy mode)
efi-boot-next <array><dict><key>MemoryType</key><integer size="64">0xb</integer><key>StartingAddress</key><integer size="64">0xff990000</integer><key>IOEFIDevicePathType</key><string>HardwareMemoryMapped</string><key>EndingAddress</key><integer size="64">0xffb2ffff</integer></dict><dict><key>IOEFIDevicePathType</key><string>MediaFirmwareVolumeFilePath</string><key>Guid</key><string>2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7</string></dict><dict><key>IOEFIBootOption</key><string>HD</string></dict></array>
efi-boot-next-data %01%03%18%00%0b%00%00%00%00%00%99%ff%00%00%00%00%ff%ff%b2%ff%00%00%00%00%04%06%14%00%eb%85%05+%b8%d8%a9I%8b%8c%e2%1b%01%ae%f2%b7%7f%ff%04%00
BootCampHD %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%01%00%00%00%00%00%7f%ff%04%00
efi-boot-device <array><dict><key>MemoryType</key><integer size="64">0xb</integer><key>StartingAddress</key><integer size="64">0xff990000</integer><key>IOEFIDevicePathType</key><string>HardwareMemoryMapped</string><key>EndingAddress</key><integer size="64">0xffb2ffff</integer></dict><dict><key>IOEFIDevicePathType</key><string>MediaFirmwareVolumeFilePath</string><key>Guid</key><string>2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7</string></dict><dict><key>IOEFIBootOption</key><string>HD</string></dict></array>%00
efi-boot-device-data %01%03%18%00%0b%00%00%00%00%00%99%ff%00%00%00%00%ff%ff%b2%ff%00%00%00%00%04%06%14%00%eb%85%05+%b8%d8%a9I%8b%8c%e2%1b%01%ae%f2%b7%7f%ff%04%00
NVRAM after bless --device /dev/disk0s2 --setBoot --legacy (boot through iPXE permanently via MBR legacy mode)
efi-boot-device <array><dict><key>MemoryType</key><integer size="64">0xb</integer><key>StartingAddress</key><integer size="64">0xff990000</integer><key>IOEFIDevicePathType</key><string>HardwareMemoryMapped</string><key>EndingAddress</key><integer size="64">0xffb2ffff</integer></dict><dict><key>IOEFIDevicePathType</key><string>MediaFirmwareVolumeFilePath</string><key>Guid</key><string>2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7</string></dict><dict><key>IOEFIBootOption</key><string>HD</string></dict></array>
efi-boot-device-data %01%03%18%00%0b%00%00%00%00%00%99%ff%00%00%00%00%ff%ff%b2%ff%00%00%00%00%04%06%14%00%eb%85%05+%b8%d8%a9I%8b%8c%e2%1b%01%ae%f2%b7%7f%ff%04%00
BootCampHD %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%01%00%00%00%00%00%7f%ff%04%00