Files
nix/hosts/installer/README.md
Nikolaos Karaolidis 1234d7d455 Add lanzaboote
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-08-09 18:09:43 +02:00

1.8 KiB

installer

I have automated myself out of a job. Here's how to use the installer to create a new host:

  1. Enable Secure Boot Setup Mode on the target device's UEFI menu - this will vary depending on the manufacturer

  2. Boot into the installer

  3. Connect to the internet with sudo nmcli device wifi connect "<SSID>" [--ask]

  4. Run sudo nix-install /etc/nixos -m install|repair -s -h host [-k key] [-c] [-r]"

  5. Enable Secure Boot on the device's UEFI menu.

Reinstalling the Installer

  1. Download a Minimal Live Nix ISO
  1. Burn the ISO
  • On Windows, use Rufus to burn the ISO to a USB drive.

  • On Linux, use the dd command:

    sudo dd if=<path-to-iso> of=/dev/sdX bs=4M status=progress
    
  1. Boot into USB

  2. Connect to the Internet with wpa_supplicant

  • Identify your network interface:

    ip link show | grep -E '^[0-9]+:' | awk '{print $2}' | tr -d ':'
    
  • For an open network:

    wpa_supplicant -i "${interface}" -c <(wpa_passphrase "${ssid}") -B
    
  • For a secured network:

    config=$(mktemp)
    wpa_passphrase "${ssid}" "${passphrase}" > "${config}"
    wpa_supplicant -i "${interface}" -c "${config}" -B
    rm "${config}"
    
  • Obtain an IP address:

    dhcpcd
    
  1. Clone the flake repository

    git clone git.karaolidis.com/karaolidis/nix
    cd nix
    
  2. I really hope you had a backup of the keys, because you must copy them to the repository before the next step.

  3. Run nix --experimental-features "nix-command flakes" shell nixpkgs#disko nixpkgs#sbctl nixpkgs#jq -c bash hosts/common/configs/system/nix-install/install.sh . -m install -h installer -k personal -c