Skip to content

Instantly share code, notes, and snippets.

@igor-ramazanov
Last active July 26, 2023 10:33
Show Gist options
  • Save igor-ramazanov/80bf107d952961d37d0906908853ed4e to your computer and use it in GitHub Desktop.
Save igor-ramazanov/80bf107d952961d37d0906908853ed4e to your computer and use it in GitHub Desktop.
Amnesaic NixOS installer script using tmpfs
#!/usr/bin/env bash
set -xeuo pipefail
DISK=/dev/nvme0n1
parted $DISK -- mklabel gpt
parted $DISK -- mkpart ESP fat32 1MB 512MB
parted $DISK -- set 1 esp on
parted $DISK -- mkpart primary linux-swap 512MB 8GB
parted $DISK -- mkpart primary 8GB 100%
cryptsetup --verify-passphrase -v luksFormat "$DISK"p3
cryptsetup open "$DISK"p3 enc
mkfs.fat -F 32 -n boot "$DISK"p1
mkswap -L swap "$DISK"p2
swapon "$DISK"p2
mkfs.ext4 -L nixos /dev/mapper/enc
mount -t tmpfs none /mnt
mkdir -p /mnt/{boot,nix,etc/nixos,var/log,home/igor}
mount -t tmpfs none /mnt/home/igor
mount /dev/disk/by-label/boot /mnt/boot
mount /dev/disk/by-label/nixos /mnt/nix
mkdir -p /mnt/nix/persist/{etc/nixos,var/log}
mount -o bind /mnt/nix/persist/etc/nixos /mnt/etc/nixos
mount -o bind /mnt/nix/persist/var/log /mnt/var/log
nixos-generate-config --root /mnt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment