iso, rootfs-cleanup: ship the ISO and its images with an empty machine-id #16
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/buildtasks!16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/iso-vm-machine-id"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes Keel-Linux/tracker#24 for buildtasks: the ISO, and every image made from the ISO's rootfs, now ship an empty
/etc/machine-id, as the layers have since #15.Why
root.patchedinto/live/10root.squashfs. That tree still had the bootstrap's id,f0e97605....tkl-installerunpacks that squashfs onto the disk unchanged. It has no machine-id step:tkl_installer/installer.pyrunsunsquashfs -f -d targetand then grub, nothing else. So every machine installed from one ISO shared the id, and with it the DHCP DUID and IAID and MariaDB'sserver_id.bt-vm,bt-container,bt-xen,bt-openstack,bt-ec2,bt-otcandbt-dockerextract that rootfs and then run apt and patches in a chroot. There, systemd's postinst can write a new id of its own.What changes
bin/reset-machine-id ROOTFSrunslayer_reset_machine_id, the same resetbt-layerdoes.bt-isobuildsbuild/stamps/root.patchedfirst, resets it, then runsmakefor the rest. fab's stamps reuseroot.patched, so it is not rebuilt.bin/iso-machine-id-check ISOreads the squashfs out of the ISO with xorriso and checks the two files withlayer_machine_id_is_reset.bt-isoruns it before screenshots and release,-uincluded.bin/rootfs-cleanupresets the id as its last step. Every ISO-derivedbt-*calls it after its chroot work.layer-lib's first-boot comment is corrected, as the #15 review asked: on systemd 257 withoutfirst-boot-full-preset, preset-all only enables units.Tests
tests/machine-idis a new suite under kcov intests/coverage.sh, and CI installssquashfs-tools xorrisofor it.rootfs-cleanupwith a chroot stub that writes an id.bt-isoend to end against a fake product whoseroot.patchedcarries the 2026-09-30 id:-uwith an old ISO is refused beforeiso-release;root.patchedstops the build.bt-isoor therootfs-cleanupchange each turns the suite red.layer-libis 390 of 391, the same one line uncovered as on 19.x.Real build
bt-iso -s -n coreran on the build host from this branch (f2a79a3), in an isolated tree (/var/tmp/keel-testbuild/i2, copies of fab-keel, no key, nothing published). It took 13 minutes, including the wait for the build lock, and made a 444,596,224 byte ISO (sha51242e1faf1...f21745). The check ran:Inside the ISO's
/live/10root.squashfs:An earlier run with longer paths (
i1) failed at fab'sroot.sandboxoverlay mount, after the reset and the squashfs had already worked. That is the overlay path-length limit known on that host, not this change.Not in this PR
bt-vmstill cannot build trixie:VM_GUESTOSstops at bullseye;vm-bundlereads a 4.19 kernel version;ovftool.layer_audit_keys.Both are steps of the plan in handbook decision 0043 (proposed).