nixos-config/hosts/d2nix-archives/README.md

3.2 KiB

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 '<home-manager>' -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