107 lines
3.2 KiB
Markdown
107 lines
3.2 KiB
Markdown
# 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
|