https://nixos.org/nixos/download.html
loadkeys frUse fdisk (man fdisk) for mbr table or gdisk (man gdisk) for gpt (efi) table.
- Create 1G boot partition (partition code EF00 for efi)
- Create 100%FREE partition for luks
mkfs.msdos /dev/sda1 # (efi boot)
mkfs.ext4 -Lboot /dev/sda1 # (mbr boot)
parted /dev/sda set 1 bios_grub on # (mbr boot)cryptsetup luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 srootpvcreate /dev/mapper/sroot
vgcreate NixOS /dev/mapper/sroot
lvcreate --size 2G --name swap NixOS
lvcreate -l100%FREE --name rootfs NixOS
mkswap -Lswap /dev/NixOS/swap
mkfs.ext4 -Lrootfs /dev/NixOS/rootfsmk iso with https://github.com/apeyroux/nixos-iso
mount /dev/NixOS/rootfs /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
nixos-generate-config --root /mnt
# copy custom configuration.nix in /etc/nixos/
nixos-installvgchange -ay NixOSFollow https://github.com/apeyroux/nixos-iso
mkfs.msdos -nEFI /dev/nvme0n1p1
mkfs.ext4 -m 0 -L boot -j /dev/nvme0n1p2
zpool create -f -o ashift=12 -o altroot=/mnt zroot /dev/nvme0n1p3
zfs create -o encryption=aes-256-gcm -o keyformat=passphrase -o mountpoint=none zroot/root
zfs create -o encryption=aes-256-gcm -o keyformat=passphrase -o mountpoint=legacy zroot/home
zfs create -o mountpoint=legacy zroot/root/nixos
zfs create -o mountpoint=legacy zroot/home/alex
zfs set compression=lz4 zroot/home
zfs set dedup=on zroot/home
mount -t zfs zroot/root/nixos /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p2 /mnt/boot/
mkdir /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi/
zfs create -V 16G -b $(getconf PAGESIZE) -o compression=zle -o logbias=throughput -o sync=always -o primarycache=metadata -o secondarycache=none -o com.sun:auto-snapshot=false zroot/root/swap
mkswap -f /dev/zvol/zroot/root/swap
nixos-generate-config --root /mnt
# edit config.
nixos-install
sudo zfs allow -d alex create,destroy,snapshot zroot/home/alex