Skip to main content

Digital Ocean

Digital Ocean at one point had iPXE support loaded within their SeaBIOS but has since removed it. In order to get around this, we'll have to rely on the Grub bootloader instead.

iPXE generates linux bootable kernels so that you can boot iPXE directly from Grub. It then treats the initrd as an embedded script which contains your networking and details to load up

Tests were done using a Fedora 23 instance on Digital Ocean.

Download an iPXE linux kernel#

Obtain an iPXE generic kernel here or compile your own and save it to /boot/generic-ipxe.lkrn.

Create a initrd file#

The initrd file contains the script necessary to bring the instance on the network and reach out to

Save as /boot/ (replace your networking information where appropriate):

#!ipxe#/boot/ net0/ip <instance public ip>set net0/netmask <instance public netmask>set net0/gateway <instance public gateway>set dns <instance dns address>ifopen net0chain --autofree

Add a Grub2 custom entry#

Add the following entry to /etc/grub.d/40_custom:

#/etc/grub.d/40_custommenuentry '' {    set root='hd0,msdos1'    linux16 /boot/generic-ipxe.lkrn    initrd16 /boot/}

Regenerate your grub config#

Run grub2-mkconfig right after editing the configuration to add the entry to your grub menu:

grub2-mkconfig -o /boot/grub2/grub.cfg

Load up a console and then reboot from the instance to catch the menu option. You can also change the default boot to or increase the timeout if you want to be able to catch it easier.