Files
alo-cluster/nixos-setup/zippy-setup.sh
2024-07-25 11:36:17 +01:00

57 lines
1.5 KiB
Bash
Executable File

DISK=/dev/disk/by-id/ata-KINGSTON_SKC600MS1024G_50026B7785AE0A92
KEY_DISK=/dev/disk/by-id/usb-Intenso_Micro_Line_22080777660702-0:0
parted "$DISK" -- mklabel gpt
parted -a optimal "$DISK" -- mkpart primary 512MiB -8GB
udevadm trigger
sleep 1
cryptsetup -v --keyfile-size 4096 luksFormat "$DISK"-part1 $KEY_DISK
cryptsetup open --key-file $KEY_DISK --keyfile-size 4096 "$DISK"-part1 luksroot
mkfs.btrfs -f -L btrfs /dev/mapper/luksroot
parted -a optimal "$DISK" -- mkpart primary linux-swap -8GB 100%
parted -a optimal "$DISK" -- mkpart ESP fat32 1MB 512MiB
parted "$DISK" -- set 3 esp on
udevadm trigger
sleep 1
mkfs.vfat "$DISK"-part3
mount /dev/mapper/luksroot /mnt
btrfs subvolume create /mnt/root
btrfs subvolume create /mnt/nix
btrfs subvolume create /mnt/persist
btrfs subvolume create /mnt/log
btrfs subvolume snapshot -r /mnt/root /mnt/root-blank
umount /mnt
mount -o subvol=root,compress=zstd,noatime /dev/mapper/luksroot /mnt
mkdir /mnt/nix
mount -o subvol=nix,compress=zstd,noatime /dev/mapper/luksroot /mnt/nix
mkdir /mnt/persist
mount -o subvol=persist,compress=zstd,noatime /dev/mapper/luksroot /mnt/persist
mkdir -p /mnt/var/log
mount -o subvol=log,compress=zstd,noatime /dev/mapper/luksroot /mnt/var/log
mkdir /mnt/boot
mount "$DISK"-part3 /mnt/boot
nixos-generate-config --root /mnt
# only enable here so that it doesn't get included in hardware-configuration.nix
mkswap -L swap "$DISK"-part2
swapon "$DISK"-part2
cp configuration.nix /mnt/etc/nixos
nixos-install
cp /mnt/etc/nixos/* /mnt/persist/etc/nixos
echo "done!"