diff --git a/flake.nix b/flake.nix index ee9041d..e4173b3 100644 --- a/flake.nix +++ b/flake.nix @@ -189,24 +189,32 @@ if grep -q "tmpfs /nix/.rw-store" /proc/mounts 2>/dev/null; then echo "ISO environment detected - running full install for: $HOSTNAME" - # Step 1: Partition and format disk - echo "--- Step 1/4: Running disko ---" + # Step 1: Expand tmpfs and set up zram swap BEFORE downloading anything + echo "--- Step 1/4: Expanding tmpfs and enabling zram swap ---" + sudo mount -o remount,size=4G /nix/.rw-store + if sudo modprobe zram 2>/dev/null; then + echo 2G | sudo tee /sys/block/zram0/disksize > /dev/null + sudo mkswap /dev/zram0 + sudo swapon /dev/zram0 + echo "zram swap enabled" + else + echo "zram not available, continuing without it" + fi + + # Step 2: Partition and format disk + echo "--- Step 2/4: Running disko ---" sudo nix --extra-experimental-features "nix-command flakes" run \ github:nix-community/disko/latest -- \ --mode destroy,format,mount \ --flake "$FLAKE_DIR#$HOSTNAME" - # Step 2: Create swap file on installed root to relieve RAM pressure - echo "--- Step 2/4: Creating 2GB swap file ---" + # Step 3: Create swap file on installed root for nixos-install + echo "--- Step 3/4: Creating 2GB swap file on target disk ---" sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048 status=progress sudo chmod 600 /mnt/swapfile sudo mkswap /mnt/swapfile sudo swapon /mnt/swapfile - # Step 3: Expand /nix/.rw-store tmpfs (default is too small for install) - echo "--- Step 3/4: Expanding /nix/.rw-store to 3G ---" - sudo mount -o remount,size=3G /nix/.rw-store - # Step 4: Install NixOS echo "--- Step 4/4: Running nixos-install ---" sudo nixos-install --flake "$FLAKE_DIR#$HOSTNAME"