Adding Intel PXE Boot under FreeBSD/VirtualBox

I’ve upgraded my home FreeBSD 8 server’s instance of VirtualBox to 4.1.8, and wanted to play with PXE booting inside VMs using the virtual Intel NICs. By default this isn’t supported. But information here shows it can be turned on by using the PXE-Intel.rom image from Oracle’s “Extension Pack”.

The extension pack is generally useless for FreeBSD hosts — it contains a bunch of precompiled binaries for OSes that Oracle officially supports, and FreeBSD is not (currently) a supported OS. Fortunately, the ROM image that enables a virtual Intel NIC to do PXE booting is multiplatform.

Grab the extension pack — it is basically a tarball. Amongst the platform-specific files inside there’s PXE-Intel.rom image.

  gjabkup2# tar tf Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack|more

If you simply extract the tarball under /usr/local/lib/virtualbox/ExtensionPacks/ you’ll find the ROM image at /usr/local/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/PXE-Intel.rom

The key step now is to register this ROM image with the VBox subsystem. In the example below, my VM is called “testPXE”. : :VBoxManage setextradata testPXE VBoxInternal/Devices/pcbios/0/Config/LanBootRom /usr/local/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/PXE-Intel.rom :

Having done this, the testPXE VM could now PXE boot when using emulated “Intel PRO/1000 MT” NIC. Yay!

(Apparently “VBoxManage setextradata global …” would set this parameter for all VMs, not just a named VM.)
To disable the use of PXE boot ROM, use this: :VBoxManage  setextradata testPXE VBoxInternal/Devices/pcbios/0/Config/LanBootRom

(i.e. no parameter)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: