57 lines
1.5 KiB
Bash
Executable File
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!"
|
|
|