Aller au contenu

Sortir du partage NFS des homes

Le service nfs partage les répertoires XDG des utilisateurs depuis un serveur de zone : sur chaque client, ~/Documents, ~/Images… sont des liens symboliques vers /mnt/nfs/homes/<login>/, l’ancien contenu étant garé en <répertoire>.bak.

Cette page décrit la marche arrière : couper le partage, puis rendre à chaque home des répertoires locaux ordinaires.

  1. Dans etc/config.yaml, retirez "nfs-client" du champ features de chaque hôte client, et la clé nfs: des services du serveur.

  2. Régénérez et appliquez, clients d’abord, serveur en dernier :

    Fenêtre de terminal
    just generate
    just apply <client>
    just apply <serveur>
  3. Vérifiez que plus rien n’est monté sur les clients :

    Fenêtre de terminal
    findmnt /mnt/nfs/homes # doit ne rien renvoyer
Fenêtre de terminal
just nfs-cleanup <hôte> # simulation, n'écrit rien
just nfs-cleanup <hôte> apply # exécution

on accepte une liste séparée par des virgules, ou all pour tous les nœuds. Le mode check affiche exactement les actions que apply effectuerait.

Pour chaque compte de /home et pour les seuls répertoires XDG de premier niveau, le script :

  • supprime les liens vers le partage ;
  • sur l’ancien serveur, rapatrie d’abord les données de /srv/nfs/homes/<login>/ dans le home (copie reflink, puis suppression de la source une fois les tailles comparées) ;
  • restaure les <répertoire>.bak dont le nom est libre ;
  • supprime les doublons FR/EN vides uniquement, et signale ceux qui portent des données des deux côtés ;
  • régénère les répertoires manquants avec xdg-user-dirs-update, dans la langue de la zone ;
  • supprime les signets GTK pointant vers le partage.

Le script est idempotent : un second passage ne trouve plus rien à faire.

Le partage de pistes ne dépend plus du service nfs : déclarez stk: dans les services de l’hôte qui sert, et posez sur chaque joueur

darkone.graphic.supertuxkart = {
enable = true;
enableNfsClient = true;
};

L’hôte qui sert n’a rien à monter, ses pistes sont déjà locales.