57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
> https://grahamc.com/blog/erase-your-darlings/
|
|
|
|
# Get hostid
|
|
|
|
run `head -c 8 /etc/machine-id`
|
|
and copy into networking.hostId to ensure ZFS doesnt get borked on reboot
|
|
|
|
# Partitioning
|
|
|
|
parted /dev/nvme0n1 -- mklabel gpt
|
|
parted /dev/nvme0n1 -- mkpart root ext4 512MB -8GB
|
|
parted /dev/nvme0n1 -- mkpart swap linux-swap -8GB 100%
|
|
parted /dev/nvme0n1 -- mkpart ESP fat32 1MB 512MB
|
|
parted /dev/nvme0n1 -- set 3 esp on
|
|
|
|
# Formatting
|
|
|
|
mkswap -L swap /dev/nvme0n1p2
|
|
swapon /dev/nvme0n1p2
|
|
mkfs.fat -F 32 -n boot /dev/nvme0n1p3
|
|
|
|
# ZFS on root partition
|
|
|
|
zpool create -O mountpoint=none rpool /dev/nvme0n1p1
|
|
|
|
zfs create -p -o mountpoint=legacy rpool/local/root
|
|
|
|
## immediate blank snapshot
|
|
|
|
zfs snapshot rpool/local/root@blank
|
|
mount -t zfs rpool/local/root /mnt
|
|
|
|
# Boot partition
|
|
|
|
mkdir /mnt/boot
|
|
mount /dev/nvme0n1p3 /mnt/boot
|
|
|
|
#mk nix
|
|
zfs create -p -o mountpoint=legacy rpool/local/nix
|
|
mkdir /mnt/nix
|
|
mount -t zfs rpool/local/nix /mnt/nix
|
|
|
|
# And a dataset for /home: if needed
|
|
|
|
zfs create -p -o mountpoint=legacy rpool/safe/home
|
|
mkdir /mnt/home
|
|
mount -t zfs rpool/safe/home /mnt/home
|
|
|
|
zfs create -p -o mountpoint=legacy rpool/safe/persist
|
|
mkdir /mnt/persist
|
|
mount -t zfs rpool/safe/persist /mnt/persist
|
|
|
|
Set ` networking.hostid`` in the nixos config to `head -c 8 /etc/machine-id`
|
|
|
|
nixos-install --impure --flake github:truxnell/nix-config#<MACHINE_ID>
|
|
|
|
consider a nixos-enter to import a zpool if required (for NAS) instead of rebooting post-install
|