If you build Linux images for VMs, lab machines, edge devices, or golden templates, you have probably hit the same mess at least once.
You clone an image, boot it, and realize it still carries a stale hostname, the wrong timezone, or a machine identity you never meant to duplicate.
systemd-firstboot is a small tool that solves exactly that class of problem. It writes first-boot configuration directly into an offline root filesystem or disk image, before the system ever starts.
That makes it useful when you want image builds to stay reproducible, but you still need a clean way to initialize the parts that should be unique or environment-specific.
In this guide, I will show a practical workflow for:
setting locale, timezone, and hostname in an offline image
generating a fresh machine ID correctly
pre-seeding root access without putting a plaintext password on the command line
resetting first-boot state when you want an image to ask again
verifying what changed before you ship the image
Why use…