Bare Metal / Management

Custom iPXE

Boot your own installer or live system and configure its production VLANs.

Custom iPXE boots an installer or live system from the network. Open Baremetal Servers, select your server, then Settings → Booting in the cloud console.

Prepare and save a script

In Custom Boot Script, enter plain-text iPXE commands with #!ipxe on the first line (maximum 65,536 characters). This example uses DHCP to open the netboot.xyz installer menu:

#!ipxe
dhcp
chain --autofree http://boot.netboot.xyz

Use http:// for scripts, kernels, and initial RAM disks. The platform's iPXE build has no TLS support: https:// and redirects to HTTPS fail. The OS you boot can use HTTPS if it supports it.

Select Save Script. Saving neither validates the commands nor enables network boot or restarts the server. Back up existing data before running an installer that can erase disks.

Enable and boot

  1. Turn on Enable Custom iPXE Booting.
  2. Read Notice: Native Network Change, acknowledge the connectivity change, and select Proceed.
  3. Wait for the network change to finish. Resolve any failure shown in the console before continuing.
  4. Use Power controls to start or restart the server, and watch the script in the remote console. Prefer a graceful shutdown before starting it again.

Provisioning supplies IPv4 DHCP and internet access for the installer, not your production addresses. While enabled, console power actions that start the server select network boot again. OS-initiated reboots may follow the firmware's boot order instead.

Configure production networking

On the server's Network tab, record each interface, address, subnet mask, gateway, and VLAN:

  • For a platform-managed network without its own VLAN ID, use the label VLAN 10 while in PXE boot mode.
  • For other networks, use their own VLAN ID. If labeled Native, open the network's Manage or Details page to find its ID. It still needs tagging during custom iPXE.
  • API users can read provisioningVlanId for each network in the server's interfaces using Get bare metal service.

Match the interface's MAC address with ip -br link. Create each VLAN on the correct physical interface or configured bond, and put the production address, prefix, and gateway on that VLAN interface.

This temporary Linux example uses private VLAN 120, address 10.20.0.2/24, and parent eno1. Replace these with your settings:

sudo ip link add link eno1 name eno1.120 type vlan id 120
sudo ip link set eno1 up
sudo ip link set eno1.120 up
sudo ip addr add 10.20.0.2/24 dev eno1.120

For public connectivity, move the public address and default route to its VLAN interface; avoid competing routes from provisioning DHCP. Private subnets usually need no default gateway. Save persistent settings with Netplan or NetworkManager; these commands do not survive reboot. Windows requires VLAN tagging through the NIC driver or virtualization switch before assigning addresses.

Return to local-disk boot

Keep the remote console open. Turn off Enable Custom iPXE Booting, confirm, and wait for the network change. Restore the installed OS's persistent configuration:

Network attachmentCustom iPXE enabledLocal-disk boot
Provisioning networkUntagged, with DHCPNo longer the native network
Production network marked NativeTagged using its provisioning VLAN IDUntagged on the parent interface or bond
Production network marked TaggedTaggedKeeps its usual VLAN ID

Move native-network addresses and routes to the parent, remove their temporary VLAN interfaces and provisioning DHCP, and keep explicitly tagged networks on their VLAN interfaces. Restart from the console and verify SSH or RDP.

Clear Script removes the saved script but does not disable custom iPXE. Disable the toggle to return to disk, and before starting a normal OS deployment.

See Virtual Networks for attachments or the iPXE API workflow for automation.