You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
initrd: add ISO boot detection and USB filesystem validation
Add runtime detection to warn users when their ISO doesn't support
boot from ISO file on USB stick.
Changes:
- Add detect_iso_boot_method() to scan initrd for boot quirks
(findiso, iso-scan, live-media, boot=casper, inst.stage2, nixos)
- Detect USB stick filesystem type (ext4/vfat/exfat) from blkid
- Use strings on initrd binary directly (works when cpio fails)
- Validate ISO initrd supports reading USB filesystem
- Show warning when FS not supported
- Filter out installer initrds from detection
- Show warning dialog when boot may fail
- Add distro-specific kernel params for Ubuntu, Debian, Tails,
Fedora, NixOS, PureOS, Arch
- Detect inst.stage2= as anaconda-specific (Fedora Silverblue)
Tested ISOs (2026-04):
Working:
- Ubuntu Desktop (iso-scan/filename)
- Debian Live kde/xfce (findiso)
- Tails standard (live-media=removable, ext4/vfat)
- Tails exfat-support ISO (exfat)
- Fedora Workstation (boot=casper)
- NixOS (findiso)
- PureOS (boot=casper)
Not working (use dd or alternate):
- Debian DVD (CD-only design)
- Fedora Silverblue (anaconda, inst.stage2=)
References:
- https://a1ive.github.io/grub2_loopback.html
- https://wiki.archlinux.org/title/ISO_Spring_(%27Loop%27_device)
- https://wiki.debian.org/DebianInstaller/CreateUSBMedia
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
"ISO boot from USB file may not work.\n\nThis ISO does not have iso-scan/findiso/live-media in its initrd - it was designed for CD/DVD or dd-to-USB.\n\nKernel parameters passed externally may not be sufficient.\n\nTry:\n- Use distribution-specific ISO (e.g., Debian hd-media)\n- Write ISO directly to USB with dd\n- Use a live USB image\n\nDo you want to proceed anyway?" \
156
+
0 80;then
157
+
DIE "ISO boot cancelled - unsupported ISO on USB file"
158
+
fi
159
+
else
160
+
NOTE "This ISO does not have iso-scan in initrd"
161
+
NOTE "Try: dd ISO to USB, or use live USB image"
162
+
INPUT "Proceed with boot anyway? (y/N):" -n 1 response
163
+
if [ "$response"!="y" ] && [ "$response"!="Y" ];then
164
+
DIE "ISO boot cancelled - unsupported ISO on USB file"
165
+
fi
166
+
fi
167
+
fi
168
+
fi
169
+
170
+
# Detect USB stick filesystem and validate initrd supports it
0 commit comments