Skip to content

f-bn/unattended-configs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

General informations

This repository contains unattended configurations for my personal devices running on Linux and Windows.

In addition to these configurations, I use chezmoi for managing dotfiles: https://github.com/f-bn/dotfiles

Devices

Device Type Operating system Chassis Configuration Status
buran Desktop Windows 11 24H2 Custom unattended.xml
buran WSL Ubuntu 24.04 Virtual machine (WSL2) ubuntu.user-data
foton Laptop Ubuntu 25.10 Thinkpad P14s Gen 5 (Intel) autoinstall.user-data
soyuz Server Fedora CoreOS 42 Beelink SER5 PRO ignition.yaml

Devices (legacy configurations)

Device Type Operating system Chassis Configuration
buran WSL Fedora 43 Virtual machine (WSL2) fedora.user-data)
foton Laptop Fedora 43 Thinkpad P14s Gen 5 (Intel) kickstart.ks
proton Server Ubuntu 24.04 LTS ASRock DeskMini X300 autoinstall.user-data

How-to

Desktops/Laptop/Servers

For the desktops, laptops and servers installations, Ventoy autoinstall feature is used to pass autoinstall/user-data (Ubuntu), kickstart.ks (Fedora) or autounattend.xml (Windows) configuration files to the respective installer.

In order to setup Ventoy autoinstall, we need to create a hierarchy in the Ventoy partition (where ISOs are stored on the USB key) by placing the unattended configurations in expected folders. Here the current hierarchy used for this repository:

/autoinstall/
├── desktops/
│   └── buran_unattended.xml
├── laptops/
│   └── foton.user-data
├── servers/
│   └── proton.user-data
/ventoy/
└── ventoy.json
ubuntu-24.04.2-live-server-amd64.iso
ubuntu-25.04-desktop-amd64.iso
win11_24h2.iso

The ventoy.json file defines which unattended file(s) is to be used with a given ISO file. You can have multiple configurations for an ISO file if needed.

In the following configuration, I define that:

  • Ubuntu Server ISOs are linked to my proton server unattended configuration
  • Ubuntu Desktop ISOs (stable and beta) are linked to my foton laptop unattended configuration
  • Fedora ISOs (stable and beta) are linked to my foton laptop unattended kickstart configuration
  • Windows 11 ISOs are linked to my buran desktop unattended configuration
{
    "auto_install":[
        {
            "image": "/ubuntu-**.**.*-live-server-amd64.iso",
            "template": [
                "/autoinstall/servers/proton.user-data"
            ]
        },
        {
            "image": "/ubuntu-**.**-live-server-amd64.iso",
            "template": [
                "/autoinstall/servers/proton.user-data"
            ]
        },
        {
            "image": "/ubuntu-**.**-desktop-amd64.iso",
            "template": [
                "/autoinstall/laptops/foton.user-data"
            ]
        },
        {
            "image": "/ubuntu-**.**.*-desktop-amd64.iso",
            "template": [
                "/autoinstall/laptops/foton.user-data"
            ]
        },
        {
            "image": "/fedora-**-beta.iso",
            "template": [
                "/autoinstall/laptops/foton.ks"
            ]
        },
        {
            "image": "/fedora-**.iso",
            "template": [
                "/autoinstall/laptops/foton.ks"
            ]
        },
        {
            "image": "/win11_****.iso",
            "template": [
                "/autoinstall/desktops/buran_unattended.xml"
            ]
        }
    ]
}

Once done, simply boot the USB key on a device, then select the ISO in the Ventoy menu. You will have 2 options for each ISO:

  • Boot without an installation template
  • Boot with /autoinstall/**/** template depending on the selected ISO

If the boot option with installation template is chosen, the installation will be launched in a fully automatted manner !

WSL2

For WSL2, the new Cloud-Init WSL datasource is used. This allows to bring your own custom distribution image and provision it in a standard and automated way. Regarding requirements, the image must at least include systemd and cloud-init packages.

The default.user-data file located in wsl2 folder must be placed at %USERPROFILE%\.cloud-init\default.user-data.

As an example, we will import an official Ubuntu 24.04 WSL image provided by Canonical:

PS C:\WSL> wsl --import Linux <install folder> ubuntu.tar.gz

Launch the WSL2 by waiting for cloud-init to provision your instance:

PS C:\WSL> wsl -d Linux -- cloud-init status --wait
...................................................................................................
status: done

As cloud-init will shutdown the WSL distribution at the end of provisionning, shutdown the WSL and start it again to avoid any issues:

PS C:\WSL> wsl --shutdown
PS C:\WSL> wsl -d Linux

And voilà !

References

About

Unattended installation configurations for my personal devices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published