Dossier machine, disposition et migration
Chaque hôte a son dossier usr/machines/<hôte>/. Les fichiers y sont rangés
selon qui les écrit : vous, l’installation, la machine elle-même ou le
générateur. Le framework les importe un par un, il n’y a pas de default.nix.
Disposition
Section intitulée « Disposition »usr/machines/<hôte>/ configuration.nix # vous : seul fichier à éditer <autres>.nix # vous : importés depuis configuration.nix install/ disko.nix # disposition du disque, figée à l'installation state.nix # system.stateVersion, figé à l'installation hardware/ hardware-configuration.nix # relevé sur la machine detected-hardware.nix # pilotes réseau relevés (just detect-hw)
var/generated/hosts/<hôte>.nix # drapeaux de démarrage déduits du disque| Fichier | Écrit par | Réécrit | Si perdu |
|---|---|---|---|
configuration.nix | vous (semé par just generate) | jamais | travail perdu |
install/disko.nix | just generate (profil et devices) | tant que l’hôte n’est pas installé | disposition réelle du disque inconnue |
install/state.nix | just install, just install-key | jamais | données des services incohérentes |
hardware/ | just install, copy-hw, detect-hw | à chaque relevé | relevé à refaire sur la machine |
var/generated/hosts/<hôte>.nix | just generate | à chaque génération | rien, il est recalculé |
var/generated/hosts/<hôte>.nix n’existe que si le disque impose des réglages
de démarrage (RAID logiciel, marqueurs NEEDEDFORBOOT).
Le sceau de l’installation
Section intitulée « Le sceau de l’installation »install/state.nix scelle l’hôte. just install l’écrit juste avant le
formatage, avec la release nixpkgs du moment (la valeur qu’écrirait
nixos-generate-config).
- Avant :
install/disko.nixsuitetc/config.yamlà chaquejust generate. - Après :
install/disko.nixne bouge plus. Le blocdiskod’etc/config.yamln’a plus d’effet.
| Besoin | Action |
|---|---|
| Réinstaller à l’identique (restauration, bases de données) | ne rien toucher |
| Changer de disque en gardant les données | supprimer install/disko.nix, puis just generate |
| Repartir d’une machine neuve, sans reprise | supprimer install/state.nix |
Migrer depuis l’ancienne disposition
Section intitulée « Migrer depuis l’ancienne disposition »Changement cassant : l’ancienne disposition (default.nix importé comme
point d’entrée) n’est plus lue.
| Ancien | Nouveau |
|---|---|
default.nix | configuration.nix, sans les imports ni stateVersion |
system.stateVersion de default.nix | install/state.nix |
disko.nix | install/disko.nix |
hardware-configuration.nix | hardware/hardware-configuration.nix |
detected-hardware.nix | hardware/detected-hardware.nix |
generated-configuration.nix | var/generated/hosts/<hôte>.nix, généré |
-
Relever les devices forcés par l’ancien
generated-configuration.nix(lignesdisko.devices.disk.<disque>.device = lib.mkForce "…"). Ils ne sont plus générés. -
Déplacer les fichiers
Fenêtre de terminal cd usr/machines/<hôte>mkdir -p install hardwaregit mv disko.nix install/disko.nixgit mv hardware-configuration.nix hardware/ # si présentgit mv detected-hardware.nix hardware/ # si présentgit mv default.nix configuration.nixgit rm generated-configuration.nix -
Reporter les devices relevés à l’étape 1 dans
install/disko.nix, quand ils diffèrent de la valeurdevicedu fichier. -
Créer
install/state.nixavec la valeur exacte de l’anciensystem.stateVersion:# usr/machines/<hôte>/install/state.nix{ system.stateVersion = "25.11"; } -
Alléger
configuration.nix: retirer les imports denot-detected.nix,generated-configuration.nix,hardware-configuration.nix,disko.nix,detected-hardware.nixet la lignesystem.stateVersion. Garder tout le reste. -
Régénérer et commiter
Fenêtre de terminal just cleangit add usr/machines var/generated