Skip to main content

Oracle Cloud Infrastructure

netboot.xyz can be loaded on OCI compute instances so that you can then customize the compute instance as needed.

For this method, we'll use the standard Ubuntu image for the relevant architecture.

Create a compute instance

When creating an instance, make sure to select:

  • Image: Ubuntu > Canonical Ubuntu (standard, not minimal)

Take note of which shape you take, as it will determine further steps:

  • AMD (x86_64)
  • Ampere A1 (arm64)

Set up SSH keys! You will need to log into the server and there is no default password.

We assume you know how to use SSH keys.

Get into the rescue shell

First get onto your compute instance's details page, then scroll down to Resources under which you'll find Console connection.

To get into the rescue shell, we recommend you use the Cloud Shell, and not bother with a local connection. To do so, click on Launch Cloud Shell connection and wait for the console connection status to reach the ACTIVE state. Be patient, it can take a minute or two.

You do not need to log in, as we'll only use it control the UEFI Firmware.

Download the EFI binary, Setup GRUB and Reboot into UEFI

Now that you have the rescue shell open, you need to open a SSH connection to entere the following commands, as there is no default password.

Follow the instructions depending on which architecture/shape you chose earlier: arm64 or x86_64.

The rescue shell over the Oracle Cloud Shell can be somewhat buggy, for instance, you might have to press the Escape key twice instead of only once when in netboot.xyz

arm64 - Ampere A1

These steps apply to the Ampere A1 (arm64) instances.

The default GRUB configuration already contains the UEFI Firmware option, so we only have to download netboot.xyz and reboot into the correct option.

# Download netboot (arm64) into the EFI directory
sudo wget -O /boot/efi/netboot.xyz-arm64.efi https://boot.netboot.xyz/ipxe/netboot.xyz-arm64.efi

# Set the default boot entry (for the following boot only) to the UEFI firmware
sudo grub-reboot "UEFI Firmware Settings"

# Reboot the instance
sudo reboot

x86_64 - AMD

These steps apply to the AMD/Intel (x86_64) instances.

We need to delete the default GRUB configuration and regenerate it, as it does not contain UEFI Firmware. Then, we can reboot into the UEFI Firmware and boot into netboot.xyz:

# Download netboot (amd64) into the EFI directory
sudo wget -O /boot/efi/netboot.xyz-snp.efi https://boot.netboot.xyz/ipxe/netboot.xyz-snp.efi

# Delete the default configuration (does not contain UEFI Firmware by default)
sudo rm -rf /etc/default/grub /etc/default/grub.d/

# Update GRUB menu (with defalt configuration)
sudo update-grub

# Set the default boot entry (for the following boot only) to the UEFI firmware
sudo grub-reboot "UEFI Firmware Settings"

# Reboot
sudo reboot

Boot into netboot.xyz

Now that you are in the UEFI Firmware, do the following:

  • Choose “Boot Maintenance Manager”
  • Choose “Boot From File”
  • Choose the only device
  • Choose the netboot.xyz EFI file
  • Wait for it to start and configure

If you were not able to boot into netboot.xyz correctly, simple repeat the grub-reboot and reboot steps to enter UEFI again.

x86_64 - Console quirks: Linux

Once you have booted into netboot.xyz on x86_64, if you plan on using Linux images, you must still set up custom Kernel cmdline params under Utilities (UEFI).

Set Kernel cmdline params: [] to console=ttyS0,9600.

If you make a mistake, move with arrow keys, and use the Delete key.

Once you have typed it in, you might have to press the Escape key twice.

This is not applicable to arm64/Ampere A1.