This is my guide that I synthesized from different sources. Mainly:
Installed it on /dev/sda. First, create an empty MBR partition table.
sudo fdisk /dev/sda
(fdisk) o
Create 2 main partitions (/dev/sda1 and /dev/sda2):
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 526335 524288 256M 83 Linux /boot
/dev/sda2 526336 765986815 765460480 365G 83 Linux Encrypted with LUKS, 3 LVM partitions:
swap vg -wi-ao---- 8.00g swap
root vg -wi-ao---- 80.00g /
blubber vg -wi-ao---- 277.00g
Create partitions:
(fdisk) n
(fdisk) p
(fdisk) 1
(fdisk) <Enter>
(fdisk) +256M
(fdisk) t
(fdisk) 83
(fdisk) n
(fdisk) p
(fdisk) 2
(fdisk) <Enter>
(fdisk) +365G
(fdisk) t
(fdisk) 83
(fdisk) w (Write Changes)
Format Partitions:
sudo mkfs.ext2 /dev/sda1
Setup encryption
# sudo cryptsetup -c aes-xts-plain64 -y --use-random luksFormat /dev/sda2
# sudo cryptsetup luksOpen /dev/sda2 luks
Create LVM Partitions This creates one partions for root, modify if /home or other partitions should be on separate partitions
# sudo pvcreate /dev/mapper/luks
# sudo vgcreate vg /dev/mapper/luks
# sudo lvcreate --size 8G vg --name swap
# sudo lvcreate --size 80G vg --name root
# sudo lvcreate -l +100%FREE vg --name blubber
Format LVM partitions
# sudo mkfs.ext4 /dev/mapper/vg-root
# sudo mkfs.ext4 /dev/mapper/vg-anbar
# sudo mkswap /dev/mapper/vg-swap
Mount the new system
# sudo mount /dev/mapper/vg-root /mnt
# sudo mkdir /mnt/boot
# sudo mount /dev/sda1 /mnt/boot
# sudo swapon /dev/mapper/vg-swap
install it .. changing config
sudo nixos-generate-config --root /mnt
sudo nixos-install
If install is successful, you’ll be prompted to set password for root user. Then reboot, and remove installation media.
Login to root, and add add user:
useradd -c 'Me' -m me
passwd me