iPXE discussion forum

Full Version: FAQ - Frequently Asked Questions
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
This thread is used to keep a list of the more common questions asked in the different communication channels we have for iPXE.

If you have additions or other suggestions for what should go in here, please discuss it here.

I tried to register a user earlier, and now that I've returned it says I'm a spammer. How can I get my user registration fixed so I can post?

You got classified as a spammer because we have an insane amount of spammy user registrations every single day. If you register, but don't post anything you'll most likely be identified as a spammer. To avoid being identified as a spammer, don't register until you're ready to post your question. If you've already been identified as a spammer, please contact the forum administrator and explain that your iPXE forum account was misclassified as a spammer. Please include your email and/or your user name so that we can reinstate your posting privileges.

I registered and posted a question, but I can't see it anywhere. Where is my post?

First time posters will have their messages moderated until at least one message is approved by a moderator. Once that first post has been approved you'll be free to post as much as you want without moderation. We've had to go to this extreme to protect the forum against spammers.

How long does it take for my first post to be moderated?

iPXE is not a very large project, and this forum has very few moderators. At best your post might be moderated the same day, at worst it could take up to a couple of weeks. The average time is usually 3-4 days.

How do I boot the Windows ISO from HTTP and install to an iSCSI volume?

Use wimboot to boot the files extracted from the Windows ISO. The WinPE howto includes instructions for creating an installation share and running the installer.

How do I build ipxelinux.0?

See this protip on coderwall. Just be aware that you don't really need to keep them embedded together. They work just as well apart as together.

After booting the Windows installer with a SAN drive hooked, my SAN drive isn't appearing in disk manager, or it is very slow. How can I fix this?

The most likely reason you can't see the SAN disk, or it is very slow, is because the iBFT contains a pointer to your default gateway which Windows uses to create a static route to your iSCSI server. If your router has a slow network interface, or doesn't have a correct setup to send traffic to local machines back onto the local network, you will experience one (or both) of the problems mentioned above.

If your iSCSI target server is on the same subnet as your client, you should be able to fix this problem by not providing a default gateway during the iPXE boot process.

The simplest way to do this is to put the command set netX/gateway right before the sanhook command in your iPXE script.

Alternatively, if you're using chainloading, you can unset the default gateway in the host/range block within the iPXE user-class block. It'd be something like this:

if exists user-class and option user-class = "iPXE" {
    option root-path "iscsi:iscsi.example.com::::iqn.1992-01.com.example.iscsi:target";
    option routers;
} else {
    filename "undionly.kpxe";

How do I install Windows 7 to an iSCSI target/volume?

You basically follow the instructions in http://ipxe.org/howto/winpe and add a sanhook command before you start wimboot. Adam has written up a short tutorial here.

How do I install Windows 8.1 using wimboot?

The bootmgr file located at the root of the winpe.iso file for Windows 8.1 can't be unpacked by wimboot 1.0.3. You'll need to use bootmgr.exe which can be found at winpe.iso\SOURCES\BOOT.WIM\Windows\Boot\PXE\bootmgr.exe. You'll need to unpack both winpe.iso and boot.wim. 7-zip usually works well for that. This has been fixed in wimboot 2.2.0. We recommend that you use the automatic unpacking of bootmgr.exe from the .wim feature instead of specifying bootmgr in your iPXE script.

Ctrl-B is not working in EFI on some machines (but work on others)

Try using ESC, B instead of Ctrl-B.

This also affects other Ctrl shortcuts in the config menu.

Some EFI Firmware creators handle keyboard events differently from what iPXE was developed against and tested on.
The ESC key handling was added as a workaround in https://git.ipxe.org/ipxe.git/commitdiff...06d8394af2
Before http://forum.ipxe.org/showthread.php?tid=13276 was known - and it has not been a priority to fix or test, since it also has the risk of breaking something else.

"Kernel panic - not syncing: VFS" when booting Linux in EFI mode

For the kernel to know which initrd it should load, it needs to be specified on the cmdline mentioned in efi stub documentation

kernel vmlinuz initrd=initram.igz
initrd initram.igz

My USB NIC is not found by iPXE

The ipxe target (for example ipxe.efi), does not include drivers for USB devices. (due to it disabling all other connected USB devices)
A good start for USB is to build ncm--ecm--axge ( you can see buildtargets documentation for how combining drivers work )

I'm using memdisk or sanboot to boot an ISO and bootup fails

In pcbios mode there is INT 13 which is used for disk access, this works fine before any kernel has started.
As soon as the kernel starts up, the real-mode INT 13 interface provided by iPXE's "sanboot" or memdisk ceases to exist.

So first part of boot when kernel and initrd is loaded into memory works fine since that is using above mentioned INT 13. But when the kernel has started there no longer is any way to find that data.
You need to find a different method to provide the system with that data, most Linux distros support some kind of kernel cmdline option to be able to fetch squashfs image over NFS, FTP or HTTP (some have buggy DNS resolution)

When using memdisk there is also the option of searching for and creating a device for the data, but it requires modification of the ISO, and in that case I would recommend to modify it to allow the squashfs to be loaded as an extra initrd instead, See this patch for SystemRescueCd

I'm trying to boot an .efi in bios mode, I'm trying to boot bios code in EFI mode

There sometimes is questions how to run EFI code from bios mode, or bios code from EFI mode.
Since this is different types of environments (think trying to run a mac application on windows) this never* works.

EFI enabled machines have something called CSM (Compatibility Support Module) which when enabled allows for EFI firmware to enter bios mode.
This does generally not allow for EFI code to run bios code.
(* There have been reports of bios code being executed from EFI PXE boot - this is likely a bug/security flaw in that firmware)
Reference URL's