# Procédure d'installation du poste **d2nix** Le poste dispose d'un EFI, le disque sera chiffré ## partitionnement gdisk /dev/sda * ````o```` creation d'une nouvelle table de partitions * ```n``` ajouter une partition de 500M de type ef00 pour l'EFI * ```` n ```` ajouter une partition avec le reste de l'espace disponible, type 8300 * ```` w ```` on valide la table et on sort ### Chiffrement cryptsetup luksFormat /dev/sda2 # création d'un volume chiffré cryptsetup luksOpen /dev/sda2 enc-pv # ouverture du volume chiffré sur le point /dev/mapper/enc-vp ### Partitionnement LVM Création de deux volumes logiques LVM. Le premier de 8Go pour la swap (j'ai 8Go de RAM) et le second pour la racine pvcreate /dev/mapper/enc-pv vgcreate vg /dev/mapper/enc-pv lvcreate -L 8G -n swap vg lvcreate -l '100%FREE' -n root vg ### formattage mkfs.fat /dev/sda1 mkfs.ext4 -L root /dev/vg/root mkswap -L swap /dev/vg/swap ## Pré-installation mount /dev/vg/root /mnt mkdir /mnt/boot mount /dev/sda1 /mnt/boot swapon /dev/vg/swap ## Installation nixos-generate-config --root /mnt A partir de là le système peut-être installé. Perso, je reprends une conf dans mon git que je modifie : nix-shell -p git git clone https://git.atlanticaweb.fr/alexandre/nixos-config.git Dans un premier temps je copie le répertoire `nixos-config/modules` dans `/mnt/etc/nixos` et je récupère un configuration.nix que je vais adapter. Enfin dans le hardware.nix, il faut ajouter le volume /boot pour qu'il soit dans le **fstab** puis ajouter le chargement dans l'initrd du LVM et du déchiffrement. ça nous donne : fileSystems."/boot" = { device = "/dev/disk/by-uuid/0BEC-722D"; fsType = "vfat"; }; boot.initrd.luks.devices = { "partitions" = { device = "/dev/sda2"; preLVM = true; }; }; On peut démarrer l'installation avec : nixos-install reboot En cas d'erreur au reboot, on redémarre sur la clé. POur accéder à la configuration : cryptsetup luksOpen /dev/sda2 enc-pv lvchange -a y /dev/vg/swap lvchange -a y /dev/vg/root mount /dev/vg/root /mnt mount /dev/sda1 /mnt/boot swapon /dev/vg/swap cp /mnt/etc/wpa_supplicant.conf /etc Au reboot, je me connecte en root et je change le password de mon user. # Configuration utilisateur ## home-manager J'ai opté pour une installation locale à mon utilisateur de home-manager ajouter le dépot correspondant à la version en cours de nixpkgs : nix-channel --add https://github.com/nix-community/home-manager/archive/release-22.11.tar.gz home-manager mise à jour de la base nix-channel --update Installation nix-shell '' -A install En cas de message d'erreur, il faut rebooter (c'est ce que j'ai fais). Pour avoir mon dossier home-manager dans le depot git : ln -s /home/alexandre/git/nixos-config/d2nix/home-manager/ ~/.config/ J'ai également ajouté home-manager dans la liste des paquets à installer pour péréniser. # Post-installation Il faut supprimer le dossier `/etc/nixos/` et à la place : ln -s /home/alexandre/git/nixos-config/d2nix/nixos/ /etc/nixos Lien : https://gist.github.com/martijnvermaat/76f2e24d0239470dd71050358b4d5134