Import setup scripts.

This commit is contained in:
2024-01-03 15:28:53 +00:00
parent 2e33f49ec9
commit 17ff375971
9 changed files with 414 additions and 0 deletions

56
nixos-setup/setup.sh Executable file
View File

@@ -0,0 +1,56 @@
DISK=/dev/disk/by-id/nvme-eui.002538b981b03d98
KEY_DISK=/dev/disk/by-id/usb-Intenso_Micro_Line_22080777640496-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!"