PXE/iPXE boot of MicroOS

Some minutes ago I got the UEFI HTTP boot (instead of (i)PXE, but that doesn’t matter) working with MicroOS:

  1. Check my documentation for a installation and configuration of Grub2 and Nginx for a network boot
  2. Download and extract the MicroOS files:
SOURCE_DIR="/my/absolute/path/to/nginx/html"

mkdir -p ${SOURCE_DIR}/files/images/openSUSE-MicroOS
wget -O ${SOURCE_DIR}/files/images/openSUSE-MicroOS/openSUSE-MicroOS.x86_64-16.0.0-SelfInstall-Snapshot20251217.install.tar \
    -nc https://cdn.opensuse.org/download/tumbleweed/appliances/openSUSE-MicroOS.x86_64-16.0.0-SelfInstall-Snapshot20251217.install.tar

tar xvf ${SOURCE_DIR}/files/images/openSUSE-MicroOS/openSUSE-MicroOS.x86_64-16.0.0-SelfInstall-Snapshot20251217.install.tar \
    -C ${SOURCE_DIR}/files/images/openSUSE-MicroOS --overwrite

→ The MicroOS version in the link has version 16.0.0, so please check if you need a newer version number.

  1. Create a host file based on the MAC address under hosts/grub2, e.g. hosts/grub2/a8:a1:59:1d:ca:c0 with the following content:
# openSUSE MicroOS

echo Grub2: Host specific file has been loaded

set default="opensuse-microos"
set timeout=30

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

menuentry "Boot from Hard Disk" --class os --unrestricted $menuentry_id_option 'boot-from-hard-disk' {
    exit
}
menuentry "Install openSUSE MicroOS" --class os --unrestricted $menuentry_id_option 'opensuse-microos' {
    echo Loading kernel...
    linux ($root)/images/openSUSE-MicroOS/pxeboot.openSUSE-MicroOS.x86_64-16.0.0.kernel rd.kiwi.oem.installdevice=/dev/disk/by-id/wwn-0x5002538d40db1ab0 rd.kiwi.install.pass.bootparam rd.kiwi.install.pxe rd.kiwi.install.image=http://192.168.2.10/images/openSUSE-MicroOS/openSUSE-MicroOS.x86_64-16.0.0.xz ignition.config.url=http://192.168.2.10/hosts/cl2-standalone1.ign
    echo Loading initrd...
    initrd ($root)/images/openSUSE-MicroOS/pxeboot.openSUSE-MicroOS.x86_64-16.0.0.initrd
}

→ But you need to enter your IP address of your Nginx server as I use 192.168.2.10.
→ The MicroOS version in the linkes files has version 16.0.0, so change it to the downloaded version number.

  1. Have fun or ask questions :grinning:
1 Like