README/AGENTS.md : documente la construction + gravure de l'ISO depuis Windows

Generalise pour n'importe quelle machine Windows qui a suivi la
section WSL du README, pas pour la configuration particuliere de
cette session. Construire l'ISO marche normalement sous WSL ; la
graver est une autre affaire (WSL2 n'a pas d'acces natif aux
disques amovibles, source Microsoft Learn) -- deux options
documentees : copier le .iso vers Windows + outil natif (Rufus...),
ou usbipd-win pour rattacher la cle USB a WSL et dd normalement.

AGENTS.md : meme mise en garde cote agent, avec consigne explicite
de ne pas improviser un contournement si usbipd n'est pas deja en
place -- construire l'ISO puis la remettre a l'operateur humain.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-12 14:46:31 +02:00
co-authored by Claude Sonnet 5
parent c94c870c82
commit 911f191998
2 changed files with 27 additions and 0 deletions
+2
View File
@@ -43,6 +43,8 @@ sudo dd if=result/iso/*.iso of=/dev/sdX bs=4M status=progress conv=fsync
`/dev/sdX` doit être confirmé par l'opérateur humain avant d'exécuter le `dd` (voir règle plus haut) -- ce n'est pas négociable, une erreur ici écrase un disque en silence.
**Si l'agent tourne sous WSL (Windows)** : `lsblk` n'y verra la clé USB QUE si elle a été explicitement rattachée via `usbipd attach --wsl` ([doc officielle](https://learn.microsoft.com/en-us/windows/wsl/connect-usb), détails dans le [README.md](README.md)). Par défaut WSL2 n'a aucun accès aux disques amovibles. Si ce n'est pas déjà en place, ne pas improviser un contournement : construire l'ISO (ça, ça marche normalement sous WSL), remettre le `.iso` produit à l'opérateur humain, et le laisser le graver avec un outil Windows natif (Rufus...).
Définition de l'image : [installer/iso.nix](installer/iso.nix). Attribut de flake : `nixosConfigurations.installer-iso`.
## Installer le serveur PXE (depuis zéro)
+25
View File
@@ -587,6 +587,31 @@ networkingMode=mirrored
Puis `wsl --shutdown` et rouvrir Ubuntu. Ce mode partage directement la pile réseau de Windows à WSL, au lieu de passer par le NAT + proxy DNS interne.
## Construire l'ISO et la graver, depuis Windows
Construire l'ISO fonctionne exactement comme sur Linux, depuis WSL (voir "Utiliser les repos depuis WSL" plus haut) :
```bash
cd "/mnt/c/Users/<toi>/Desktop/Claude/Nixos/nixos_fleet"
nix build .#nixosConfigurations.installer-iso.config.system.build.isoImage
```
Le fichier `.iso` produit (`result/iso/*.iso`) est un fichier normal côté WSL, accessible aussi depuis Windows via `\\wsl$\<distribution>\...` ou en le copiant dans `/mnt/c/...`.
**Le graver sur la clé USB est une autre affaire** : WSL2 n'a par défaut aucun accès aux disques amovibles (`wsl --mount` ne fonctionne que sur des disques fixes/VHD, pas sur une clé USB -- source : [Microsoft Learn](https://learn.microsoft.com/en-us/windows/wsl/connect-usb)). Deux façons de faire, pas de troisième :
**Option simple (recommandée)** : copier le `.iso` produit vers le système de fichiers Windows, puis le graver avec un outil Windows natif (Rufus, balenaEtcher, Win32DiskImager...). Fonctionne toujours, aucune configuration supplémentaire.
**Option avancée** : rattacher la clé USB à WSL avec [usbipd-win](https://github.com/dorssel/usbipd-win) ([doc officielle](https://learn.microsoft.com/en-us/windows/wsl/connect-usb)), puis utiliser `dd` normalement depuis WSL comme sur Linux :
```powershell
winget install --interactive --exact dorssel.usbipd-win
usbipd list # repérer le bus ID de la clé USB
usbipd attach --wsl --busid <busid>
```
Puis, dans WSL, `lsblk` doit faire apparaître la clé (ex. `/dev/sde`) -- vérifier ce nom avant tout `dd` (voir la mise en garde `dd` dans [AGENTS.md](AGENTS.md)).
## Appeler `nix` depuis un outil qui pilote WSL sans shell interactif
`wsl.exe nix --version` échoue avec `nix: command not found` : une commande non-interactive ne source pas le profil qui ajoute `nix` au PATH. Forcer un shell de login :