initrd: boot dd-written hybrid ISOs in mount-usb and usb-autoboot - #2186
Open
tlaurion wants to merge 7 commits into
Open
initrd: boot dd-written hybrid ISOs in mount-usb and usb-autoboot#2186tlaurion wants to merge 7 commits into
tlaurion wants to merge 7 commits into
Conversation
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
tlaurion
marked this pull request as draft
August 15, 2026 14:11
tlaurion
force-pushed
the
fix-2008-dd-hybrid-iso-boot
branch
3 times, most recently
from
August 15, 2026 20:33
58a3ab5 to
92d099d
Compare
Collaborator
Author
|
Verified working without regression under qemu on thumb drives with multiple isos dropped on it and directly booting on iso from qemu: both work. |
tlaurion
marked this pull request as ready for review
August 15, 2026 20:37
Collaborator
Author
|
verified dd'ed and iso boot on debian-13 xfce too. |
This was referenced Aug 16, 2026
Closed
Collaborator
Author
|
Was testing Kicksecure-LXQt-18.1.4.2.Intel_AMD64.iso, will test Kicksecure-LXQt-18.2.1.9.Intel_AMD64.iso |
- mount-usb.sh: probe whole USB disks with a read-only mount (first_mountable_usb_disk) instead of blkid TYPE=iso9660; --whole-disk opts in, the default remains partitions-only - media-scan.sh: retry once with the partitions-only mount when a whole disk mounts but yields no boot entries - gui_functions.sh: mount_usb() forwards its arguments to mount-usb.sh and maps exit 5 (picker abort) to exit 1 - functions.sh: add first_mountable_usb_disk and is_whole_disk; host _get_blkid_fstype for kexec-iso-init.sh Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Enable CONFIG_FEATURE_BLKID_TYPE so BusyBox blkid reports the filesystem TYPE, which kexec-iso-init.sh's _get_blkid_fstype (shared from initrd/etc/functions.sh) relies on. Part of the issue linuxboot#2008 hybrid ISO boot fix. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Move initrd/tests/iso-test/ to tests/iso-test/ so the test script no longer ships inside the initrd image. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Update boot-process, busybox_perks, iso_boot and logging docs for the kernel mount-test mechanism and the mount-usb.sh exit 5 contract. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…B autoboot test board - Add qemu-coreboot-fbwhiptail-tpm2-basic-usb-autoboot board with CONFIG_BASIC_USB_AUTOBOOT=y to test automatic boot of bootable USB media (dd-written hybrid ISO) under QEMU - Enable CONFIG_DEBUG_OUTPUT and TPM2 pcap capture for test diagnostics Signed-off-by: Thierry Laurion <insurgo@riseup.net>
- Print the source git commit (GIT_HASH and HEADS_GIT_VERSION) in the build start banner so non-reproducible builds are attributable to the commit that produced them - Part of issue linuxboot#2008 follow-up Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Document that the last console= parameter becomes the primary console for /dev/console, and how that routes STATUS/NOTE (primary only), DEBUG/WARN/DIE (kmsg broadcast to all consoles), kernel printk (all consoles), and whiptail dialogs (framebuffer only). Part of issue linuxboot#2008 follow-up. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
tlaurion
force-pushed
the
fix-2008-dd-hybrid-iso-boot
branch
from
August 18, 2026 14:56
db00961 to
aacb22a
Compare
Collaborator
Author
|
Tested with oversized raw image vs iso size (thumb drives should always be bigger then iso...) and now works as expected. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #2008: a Kicksecure hybrid ISO dd'd to a USB drive
now boots in both the manual USB boot menu and Basic-mode auto-boot.
The problem
A dd-written Kicksecure ISO is a GPT hybrid whose bootable iso9660
filesystem lives on the whole raw device, not on a partition. The boot
path relied on
blkid TYPE="iso9660"to detect such drives, which doesnot reliably report the type on these oversized/GPT-hybrid sticks, so no
bootable filesystem was found and boot failed.
The fix
non-destructive read-only mount probe that finds a bootable filesystem
on a whole device) and is_whole_disk(); host _get_blkid_fstype()
(moved from kexec-iso-init.sh).
disks with an actual read-only mount instead of blkid; the default
remains partitions-only.
mount_usb --whole-disk, and retries once with the defaultpartitions-only mount when a whole disk mounts but yields no boot
entries.
mount-usb.sh and maps exit 5 (picker abort) to exit 1.
a dd-written hybrid ISO auto-boots in Basic mode.
reports the filesystem TYPE used by kexec-iso-init.sh.
board (Basic mode + USB autoboot) for this path.
longer ships in the initrd image.
Testing
boot menu in manual mode, and auto-boots in Basic mode; Tails, Debian
live, and partitioned images (NixOS) still boot through the existing
paths.