HTTP booting and initramfs assembly

You can boot a Linux kernel directly from a web server using gPXE. The kernel, initial ramdisk and other boot-time files (e.g. kernel modules for the network card) can also be loaded from the same web server. There is no need to create dedicated ramdisk images containing drivers for each network card you want to be able to boot from.

BIOS boot screen, showing gPXE downloading the individual components via HTTP:

Linux booting via HTTP

Booted Linux OS, with network up and running:

Linux booting via HTTP

iSCSI booting Windows Server 2003

It is possible to boot Windows Server 2003 from an iSCSI disk using gPXE. This provides a direct replacement for commercial products such as winBoot/i.

Here you can see the Device Manager in Windows Server 2003 showing that the only disk in the system is an “IET VIRTUAL-DISK” attached via iSCSI:

Windows Server 2003

AoE booting Windows XP

You can boot Windows XP from an ATA-over-Ethernet (AoE) disk using gPXE:

Windows XP

Command line

Command line

gPXE has a command shell built in, which allows you to interact with the system and run commands even before the DHCP request takes place. You can assign IP addresses, check network interface statistics, manually download files, and so on.

gPXE also supports script files, which are just sequences of commands; a typical script might look something like

  kernel vga=788

Configuration UI

gPXE allows you to store settings in the NIC EEPROM. Though most network configuration is handed out via DHCP, it can be useful to be able to store certain information (such as iSCSI login usernames and passwords) on the NIC itself.

A simple configuration user interface is provided:

Config UI

QR Code
QR Code screenshots (generated for current page)