From 482e0549b97aeb0c7ecb8f87e8162ea1152b4707 Mon Sep 17 00:00:00 2001 From: Padreug Date: Mon, 29 Jun 2026 22:12:28 +0200 Subject: [PATCH] fix(deploy): make live ISOs USB-bootable (isoImage.makeUsbBootable) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The live ISO config set makeEfiBootable + makeBiosBootable but omitted makeUsbBootable, so the image got BIOS+UEFI El Torito boot catalogs but no isohybrid MBR/GPT — i.e. no partition table. dd'd to a USB stick it shows iso9660 on the whole device with no ESP, and picky firmware (the Sintra's Aaeon UP Board) won't recognise it as bootable, falling back to its android-ia entry. Enabling makeUsbBootable applies the isohybrid MBR (isohdpfx.bin) + GPT/ESP. Fixes USB boot for every model's live ISO. Co-Authored-By: Claude Opus 4.8 --- deploy/nixos/live.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deploy/nixos/live.nix b/deploy/nixos/live.nix index 07fe161..00baabc 100644 --- a/deploy/nixos/live.nix +++ b/deploy/nixos/live.nix @@ -55,6 +55,12 @@ in isoImage = { makeEfiBootable = true; makeBiosBootable = true; + # Apply the isohybrid MBR + GPT/ESP so the image boots when dd'd to a USB + # stick — not just from optical media via El Torito. Without this the ISO + # has BIOS+UEFI El Torito boot catalogs but no partition table, and picky + # firmware (e.g. the Sintra's Aaeon UP Board) won't recognise the USB as + # bootable. Requires makeBiosBootable (isohdpfx.bin), set above. + makeUsbBootable = true; squashfsCompression = "zstd -Xcompression-level 6"; };