Skip to content

obinstall — the new Obarun installer

Dear Obarun Community,

Obarun has a new installer. It is called obinstall, it is available in [obextra], and it replaces the historical obarun-install and its companion obarun-install-themes. It offers two ways to install the system: a graphical wizard that runs in a browser, and a declarative command line driven by a single TOML file.

The new Obarun ISOs already carry this change. They are built by obinstall itself, they ship it, and they start it for you: pick Install in the boot menu, or open the installer from the live desktop once you are logged in.

The old installer is retired

obarun-install and obarun-install-themes have been removed from the repositories and are no longer maintained. They served Obarun for years, but the dialog based bash pipeline had reached its limits: no validation of what the operator typed, no way to replay an installation, and a package list scattered across several scripts.

Everything they did now lives in a single package, obextra/obinstall.

Two front ends, one result

obinstall ships two binaries built on one library:

  • obinstall, a local web wizard for the person sitting in front of a live ISO,
  • obinstall-cli, a batch installer driven by a TOML configuration file, for ISO production, continuous integration and automated deployments.

Both run the exact same pipeline, so the two produce strictly equivalent systems. Better still, the wizard writes its answers to /etc/obarun/obinstall/wizard.toml, and that file is a valid obinstall-cli --config input. What you configure once by hand can be replayed on a hundred machines.

The graphical wizard

Run obinstall. It binds 127.0.0.1:7666 and prints a URL carrying a one shot token, which you open in a browser. On a live ISO with no desktop, an optional kiosk mode starts an X server, a window manager and a browser for you, so the wizard is simply there when the machine boots.

welcome

The welcome page checks the live network, sets up Wi-Fi if you need it, and lets you pick your keyboard layout before anything else. Then come seven steps: Disk, Bootloader, System, Network, Theme, Users, Install.

You move freely between steps, backwards as well as forwards, and your choices are saved as you go. Nothing is written to the disk until you confirm at the final step.

disk

The disk step covers three scenarios:

  • Guided, obinstall takes one full disk and lays out a boot partition, root, and optional /home and swap,
  • LVM on one disk, a small boot partition plus one LVM physical volume covering the rest, with root and home as logical volumes,
  • Custom, you partition and mount by hand, and obinstall adapts to whatever is already mounted under the target path.

The bootloader step supports syslinux, grub and efistub, and pre-selects the one that fits your firmware and partition layout.

The final step streams the installation log live in the page. Closing the tab does not stop the install, reopening the page picks up where you left off, and the full log file is available for download at any time.

install

Themes

A theme is a ready made preset: a package list, a set of 66 services to enable, configuration files to drop into the new system, and a customizeChroot hook that runs inside the target.

theme

Two themes ship with this release:

  • minimal, a bare metal installation with the core system, the recovery tools and the 66 services needed to boot,
  • jwm, the same base plus a graphical session built around the JWM window manager.

Writing your own theme is a documented exercise, see docs/theme-authoring.md in the repository. Services are declared, not scripted: obinstall enables them through a cascade combining the bootstrap set, the theme manifest and your own additions.

XLibre is the default X server

The graphical theme installs xlibre-server together with the xlibre-input-* and xlibre-video-* drivers. No Xorg server is pulled in any more.

This follows the move announced in May, when the XLibre packages were promoted from [obcommunity] to [obextra], see XLibre packages move from [obcommunity] to [obextra]. The installer is where that transition becomes the default: a fresh graphical Obarun install is an XLibre install.

Installing from the command line

For automated installations, obinstall-cli takes a single file:

obinstall-cli --config install.toml

A minimal install.toml looks like this:

[target]
newroot   = "/mnt"
cache_dir = "/var/cache/pacman/pkg"

[install]
theme = "minimal"

[system]
hostname = "obarun"
locale   = "en_US.UTF-8"
timezone = "Europe/Paris"

Two sub-commands come with it: obinstall-cli validate <config> lints a TOML file before you use it, and obinstall-cli cleanup unmounts the chroot stack after a failed run.

Note

The command line installs onto a pre-mounted target. Partitioning, mounting and bootloader installation are the operator's responsibility, which is exactly what an ISO build script or a CI job already does. The wizard is the one that drives those steps for you.

What is not covered yet

This first version deliberately leaves a few things out: AUR packages, LUKS encryption, RAID and multi-disk layouts. They are not forgotten, they are simply not part of this release.

Where to find it

The package is obextra/obinstall, the source lives at git.obarun.org/obdev/obinstall, and it is released under the ISC license. Bug reports and theme contributions are very welcome.

Thank you for your continued support of Obarun.

Eric Vidal: [email protected]