Add ISO user config: unattended install needs baked accounts

VM smoke test of the first ISO reached GDM but no user existed
(bootc-image-builder ISOs install unattended; gnome-initial-setup is
not in the bazzite base). iso-config.toml creates parent (wheel) and
kid with placeholder passwords to change on first login.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 19:48:22 -04:00
co-authored by Claude Fable 5
parent f9c46a8186
commit 20cad3e12b
2 changed files with 25 additions and 1 deletions
+10 -1
View File
@@ -18,6 +18,7 @@ mkdir -p output
sudo podman run --rm -it --privileged \ sudo podman run --rm -it --privileged \
--security-opt label=type:unconfined_t \ --security-opt label=type:unconfined_t \
-v ./output:/output \ -v ./output:/output \
-v ./iso-config.toml:/config.toml:ro \
-v /var/lib/containers/storage:/var/lib/containers/storage \ -v /var/lib/containers/storage:/var/lib/containers/storage \
quay.io/centos-bootc/bootc-image-builder:latest \ quay.io/centos-bootc/bootc-image-builder:latest \
--type iso --rootfs btrfs \ --type iso --rootfs btrfs \
@@ -66,17 +67,25 @@ cid=$(docker create localhost/bc250-console-gnome:latest true)
docker cp "$cid":/etc/pki/rpm-gpg ./rpm-gpg-keys docker cp "$cid":/etc/pki/rpm-gpg ./rpm-gpg-keys
docker rm "$cid" docker rm "$cid"
# 5. Build the ISO (--rootfs required: the image sets no root-fs-type) # 5. Build the ISO (--rootfs required: the image sets no root-fs-type;
# iso-config.toml REQUIRED — the ISO installs unattended and the image has
# no first-boot account wizard, so without baked users the install is
# unloginable)
mkdir -p iso-output mkdir -p iso-output
docker run --rm --privileged --security-opt label=type:unconfined_t \ docker run --rm --privileged --security-opt label=type:unconfined_t \
-v "$PWD"/iso-output:/output \ -v "$PWD"/iso-output:/output \
-v "$PWD"/rpm-gpg-keys:/etc/pki/rpm-gpg:ro \ -v "$PWD"/rpm-gpg-keys:/etc/pki/rpm-gpg:ro \
-v "$PWD"/iso-config.toml:/config.toml:ro \
-v bib-storage:/var/lib/containers/storage \ -v bib-storage:/var/lib/containers/storage \
quay.io/centos-bootc/bootc-image-builder:latest \ quay.io/centos-bootc/bootc-image-builder:latest \
--type iso --rootfs btrfs \ --type iso --rootfs btrfs \
localhost/bc250-console-gnome:latest localhost/bc250-console-gnome:latest
``` ```
**Heads-up: the ISO wipes and auto-installs to the first disk with no
prompts.** Accounts come from `iso-config.toml` (placeholder passwords —
change on first login: `passwd`, and `sudo passwd kid`).
ISO lands at `iso-output/bootiso/install.iso` (~5 GB), owned by root — fix ISO lands at `iso-output/bootiso/install.iso` (~5 GB), owned by root — fix
with `docker run --rm -v "$PWD"/iso-output:/o alpine chown -R 1000:1000 /o`. with `docker run --rm -v "$PWD"/iso-output:/o alpine chown -R 1000:1000 /o`.
+15
View File
@@ -0,0 +1,15 @@
# bootc-image-builder customizations for the installer ISO.
# Mount as /config.toml on the bib container (see BUILD-CONSOLE.md).
#
# PLACEHOLDER PASSWORDS — change both on first login:
# passwd (for the account you're logged into)
# sudo passwd kid (parent can reset the kid's password)
[[customizations.user]]
name = "parent"
password = "bc250console"
groups = ["wheel"]
[[customizations.user]]
name = "kid"
password = "bc250console"