Aucun changement fonctionnel -- juste les commentaires : essais de justification en plusieurs paragraphes remplacés par des notes courtes, type/quoi/pourquoi en une ou deux lignes. Corrige au passage un commentaire obsolète dans installer-base.nix qui décrivait encore l'usage de disko-install (abandonné depuis pour disko + nixos-install séparés). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
69 lines
2.3 KiB
Nix
69 lines
2.3 KiB
Nix
# Environnement live commun aux deux formes d'image (PXE netboot / ISO
|
|
# USB). Contient juste de quoi partitionner et installer ; la config
|
|
# cible est toujours récupérée depuis git au moment de l'install (repo
|
|
# public nixos_fleet ou repo privé nixos_users).
|
|
{ pkgs, lib, ... }:
|
|
|
|
let
|
|
installScript = pkgs.writeShellScriptBin "fleet-install" (builtins.readFile ./install.sh);
|
|
in
|
|
{
|
|
nix.settings.experimental-features = [
|
|
"nix-command"
|
|
"flakes"
|
|
];
|
|
|
|
# netboot.nix définit "/" et "/nix/.rw-store" (overlay où atterrissent
|
|
# les paquets téléchargés/construits pendant l'install) sans taille
|
|
# explicite -> 50% de la RAM chacun par défaut. .rw-store sature en
|
|
# premier sur un système complet (Cinnamon + Firefox + LibreOffice +
|
|
# VLC), pas "/". mkForce nécessaire : netboot.nix utilise
|
|
# mkImageMediaOverride (priorité 60), une assignation simple (100) est
|
|
# ignorée ; mkForce remplace toute la liste, d'où mode=0755 remis ici.
|
|
fileSystems."/".options = lib.mkForce [
|
|
"mode=0755"
|
|
"size=20%"
|
|
];
|
|
fileSystems."/nix/.rw-store".options = lib.mkForce [
|
|
"mode=0755"
|
|
"size=90%"
|
|
];
|
|
|
|
# Certains PC du parc n'ont que 4 Go de RAM. Le disque cible ne peut
|
|
# pas servir de secours ici (pas encore partitionné à ce stade) : swap
|
|
# compressé en RAM (zram), identique en PXE et en USB.
|
|
zramSwap = {
|
|
enable = true;
|
|
memoryPercent = 100; # jusqu'à 1x la RAM en swap compressé (~2-3x effectif)
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
git
|
|
parted
|
|
gptfdisk
|
|
util-linux # lsblk, fallocate
|
|
e2fsprogs # chattr (NOCOW pour le swapfile sur btrfs)
|
|
installScript
|
|
];
|
|
|
|
networking.networkmanager.enable = true;
|
|
services.xserver.xkb.layout = "fr";
|
|
console.keyMap = "fr";
|
|
|
|
# Root autologin sur tty1, l'installeur se lance automatiquement au
|
|
# login. Échec ou sortie -> shell root normal pour dépanner.
|
|
# mkForce : le profil installeur officiel (installation-device.nix)
|
|
# définit aussi cette option, même priorité -> conflit sinon.
|
|
services.getty.autologinUser = lib.mkForce "root";
|
|
users.users.root.password = lib.mkForce "";
|
|
|
|
programs.bash.loginShellInit = ''
|
|
if [ "$(tty)" = "/dev/tty1" ] && [ -z "''${FLEET_INSTALLER_RAN:-}" ]; then
|
|
export FLEET_INSTALLER_RAN=1
|
|
${installScript}/bin/fleet-install
|
|
fi
|
|
'';
|
|
|
|
system.stateVersion = "26.05";
|
|
}
|