Custom Silverblue iso: how to add user?

Hi,
I have created a custom ostree and iso based on Fedora Silverblue 36, it does not contain any desktop environment just boot to console and start sway.
If I install using the official Silverblue iso then change to my custom ostree is works as expected, instead if I install from scratch using my custom iso (same ostree) it does not prompt to create any user so I am stuck to the console with no possibility to login.
During the installation process I can only pick the installation destination.

What is the preferred approach for this?

Thanks

We talked about that on #sway:fedoraproject.org today, you can check the matrix room logs for lots of additional details.

Short summary:

Anaconda has a set of different profiles, which are defining the installer behavior.
The profile is chosen depending on the /etc/os-release contents in the installer image. E.g. if grep VARIANT_ID /etc/os-release in the installer shell returns workstation or silverblue, fedora-workstation.conf or fedora-silverblue.conf will be applied correspondingly.

The important difference between the profiles is the approach to an initial setup - all Gnome variants remove User/Password screens from the installer and run gnome-initial-setup on the first boot instead. So my best guess is that your custom iso image picks one of the Gnome profiles.

In the installer shell, you can check /tmp/anaconda.log to confirm this:

DBG core.configuration.profile: Detecting a profile for ID=fedora, VARIANT_ID=silverblue.
INF core.configuration.profile: The 'fedora-silverblue' profile is detected.
INF core.configuration.anaconda: Load the 'fedora-silverblue' profile configuration.

How to fix that? Simple - build your custom iso with the fedora-release-xxx subpackage that matches with one of the good profiles, e.g. fedora-release-kinoite or just generic fedora-release. With lorax, this is defined by the --variant commandline argument, and I expect that the default fedora-release would be selected if you don’t set any variant.

2 Likes

Thank you very much for your reply.
I am a bit busy at the moment I will have a look in the next days and report back.

An update for future reference:

  • --variant Silverblue: only installation destination, Fedora Silverblue branding
  • --variant workstation: only installation destination, Fedora Workstation branding
  • --variant "" (default): allows to enable/disable root user and create an user

This is my script:

lorax \
    --product Fedora \
    --version 36 \
    --release "$(date +'%Y%m%d')" \
    --variant "" \
    --isfinal \
    --source https://kojipkgs.fedoraproject.org/compose/36/latest-Fedora-36/compose/Everything/x86_64/os/ \
    --nomacboot \
    --volid Fedora-SB-ostree-x86_64-36 \
    --add-template "${PWD}/lorax-configure-repo.tmpl" \
    --add-template "${PWD}/lorax-embed-repo.tmpl" \
    --add-template-var ostree_osname=fedora \
    --add-template-var ostree_oskey=fedora-36-primary \
    --add-template-var ostree_contenturl=mirrorlist=https://ostree.fedoraproject.org/mirrorlist \
    --add-template-var ostree_install_repo="file://${PWD}/repo" \
    --add-template-var ostree_install_ref=desktop \
    --add-template-var ostree_update_repo="file://${PWD}/repo" \
    --add-template-var ostree_update_ref=desktop \
    --logfile lorax.log \
    --tmp "${PWD}/temp" \
    --rootfs-size 8 \
    output

Thanks for the suggestion

2 Likes