Creating Bootable Media
Create USB drives or ISOs to run NØNOS on real hardware.
USB Drive
Linux
Linux# Build NØNOS
make nonos
# Create ESP structure
mkdir -p /tmp/nonos-esp/EFI/BOOT
cp target/x86_64-unknown-uefi/release/nonos_boot.efi /tmp/nonos-esp/EFI/BOOT/BOOTX64.EFI
cp target/x86_64-nonos/release/nonos_kernel /tmp/nonos-esp/
# Write to USB (replace sdX with your device)
sudo mkfs.fat -F32 /dev/sdX1
sudo mount /dev/sdX1 /mnt
sudo cp -r /tmp/nonos-esp/* /mnt/
sudo umount /mntmacOS
macOS# Find your USB device
diskutil list
# Format and mount (replace diskN)
diskutil eraseDisk FAT32 NONOS MBRFormat /dev/diskN
cp -r /tmp/nonos-esp/* /Volumes/NONOS/
diskutil unmount /Volumes/NONOSISO Image
ISO ImageCreates nonos.iso in the project root.
Manual ISO Creation
Manual ISO CreationEFI System Partition Layout
Booting on Real Hardware
Requirements
UEFI firmware (not legacy BIOS)
Secure Boot disabled (or NØNOS keys enrolled)
x86_64 processor
Boot Steps
Insert USB or mount ISO
Enter UEFI boot menu (usually F12, F2, or Del)
Select the NØNOS USB/ISO
NØNOS boots and verifies the kernel
Secure Boot
NØNOS can work with Secure Boot if you enroll its signing keys.
Enroll Keys
Export the public key in DER format
Use UEFI Key Management to add as DB key
Enable Secure Boot
Details in Signing Keys.
Virtual Machines
VirtualBox
Create new VM (Type: Other, Version: Other/Unknown 64-bit)
Enable EFI: Settings → System → Enable EFI
Attach ISO or create virtual disk from ESP
Boot
VMware
Create new VM (Guest OS: Other 64-bit)
Edit .vmx file, add:
firmware = "efi"Attach ISO
Boot
Hyper-V
Create Generation 2 VM
Disable Secure Boot in settings
Attach ISO
Boot
Troubleshooting
"No bootable device"
"No bootable device"Ensure UEFI mode, not legacy BIOS
Check ESP partition is FAT32
Verify
BOOTX64.EFIpath is correct
"Security violation"
"Security violation"Disable Secure Boot in UEFI settings, or enroll NØNOS keys.
Black screen after boot
Black screen after bootTry connecting a serial cable
Check GPU compatibility
Boot in QEMU first to verify image
Last updated
Was this helpful?


