Files
FWS-ISO/docs/gameboot-test-checklist.md
nocode 9836925a37 docs(gameboot): add hardware validation checklist for gameboot dual-boot
Add comprehensive test checklist for validating gameboot Windows dual-boot functionality across 8 phases, from ISO build through hibernation, Secure Boot, Windows deployment, BCD configuration, and full gameboot cycle testing. Includes safety precautions, prerequisite checks, and recovery procedures.
2026-07-09 14:40:53 +02:00

109 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Checklist de validation matérielle — gameboot + dual-boot Windows
> **Rien de tout ça n'a encore tourné.** Le code a passé deux revues adversariales,
> mais le déploiement Windows et le BCD sont marqués **NON VALIDÉ** : cette phase
> **va faire remonter des bugs**, surtout aux phases 56. Avance dans l'ordre
> (du moins risqué au plus destructif) et **ne saute pas un ✅ pour passer au suivant**.
## ⚠️ Avant tout — sécurité données
- [ ] **Sauvegarde** de tout ce qui compte sur la machine cible (les tests des phases 5+ **effacent un disque entier**).
- [ ] Un **disque à sacrifier** identifié (≠ disques de jeux `Games-L1/L2`). Tes 3 NVMe sont pleins → libère-en un ou ajoute-en un.
- [ ] Note écrite du **disque exact** à dédier à Windows (ex. `/dev/nvmeXn1`) — tu la revérifieras à chaque étape.
---
## Phase 0 — Prérequis
- [ ] Machine cible **UEFI** (pas BIOS) — `[ -d /sys/firmware/efi ] && echo UEFI`
- [ ] **TPM 2.0** présent — `ls /sys/class/tpm/tpm0`
- [ ] **IOMMU** activable au firmware (Vanguard l'exige) — à vérifier dans le setup BIOS.
- [ ] **ISO Windows 11 25H2** (édition **Pro** de préférence) sur clé USB, branchée.
- [ ] Licence Windows valide sous la main (activation post-install).
## Phase 1 — Build de l'ISO
- [ ] `./setup-aur.sh` a déjà tourné (repo local fws-local : anaconda, fws-dnd…).
- [ ] `./build-offi.sh` → l'ISO se construit **sans `target not found`** (les nouveaux paquets `wimlib hivex sbctl sbsigntools mokutil binutils` sont officiels, tirés par mkarchiso).
- [ ] ISO produite dans `out/…`.
- [ ] Écrire l'ISO sur une clé USB de boot (`dd` / Ventoy).
## Phase 2 — Tests NON destructifs (aucune écriture disque)
- [ ] Booter l'ISO FWS en **live**.
- [ ] `fws-gameboot doctor` s'exécute et liste RAM / swap / VRAM / Secure Boot / entrées de boot.
- [ ] Lancer l'installateur : la spoke **« Dual-boot Windows »** apparaît sur le hub Résumé.
- [ ] Cocher la case → le combo disque **n'a AUCUN disque présélectionné** (choix explicite obligatoire).
- [ ] Choisir un disque **non vide** → l'avertissement affiche **« CE DISQUE CONTIENT DES DONNÉES »**.
- [ ] Sélectionner le **même** disque pour FWS (Destination) et pour Windows → le **Récapitulatif** affiche **⛔ CONFLIT** (contrôle croisé).
- [ ] Les lanceurs **« Jouer à Valorant / LoL »** apparaissent dans le menu d'applications (wofi/rofi).
- [ ] `pkexec fws-gameboot to-windows` **sans mot de passe** en session active (polkit).
## Phase 3 — Hibernation / resume (LE point dur matériel n°1)
> À valider **avant** de câbler quoi que ce soit à Windows. RTX 5090 (Blackwell) =
> suspend/hibernate historiquement fragile.
- [ ] Provisionner un swap ≥ RAM+VRAM (~96 Go) et `resume=` (cf. `docs/hibernate-swap-dualboot.md` §1-2).
- [ ] `NVreg_PreserveVideoMemoryAllocations=1` posé + services `nvidia-suspend/hibernate/resume` actifs.
- [ ] `systemctl hibernate` avec une **session graphique chargée** (jeu/desktop lourd).
- [ ] Au rallumage : **session restaurée** ET **affichage NVIDIA intact** (pas d'écran noir / Xid).
- [ ] `journalctl -b -1 -k | grep -iE 'hibernation|Image saved|resume'` → propre.
## Phase 4 — Secure Boot
- [ ] `sudo fws-secureboot-setup` → signe `\EFI\FWS\grubx64.efi` + `\EFI\BOOT\BOOTX64.EFI` + noyaux.
- [ ] Firmware : Setup Mode → `sbctl enroll-keys --microsoft` → activer Secure Boot.
- [ ] `bootctl status | grep 'Secure Boot'`**enabled**.
- [ ] `cat /sys/kernel/security/lockdown`**[none]** (hibernation préservée).
- [ ] FWS **boote toujours** sous Secure Boot (sinon → média de récupération).
## Phase 5 — Déploiement Windows 🔴 DESTRUCTIF (disque sacrificiel UNIQUEMENT)
> **Danger maximum.** Vérifie 3× le disque cible. Les garde-fous fail-closed
> doivent refuser tout disque protégé — teste-les d'abord exprès.
- [ ] **Test négatif** : dans la spoke, choisir le disque de FWS/racine → le déploiement doit **ABORTER** (`DEPLOY_FAILED`), rien d'effacé.
- [ ] Install FWS + dual-boot activé sur le **disque sacrificiel**, ISO USB branchée.
- [ ] Surveiller `/tmp/fws-windows-deploy.log` : garde-fous OK → carve → `wimlib apply` → BCD.
- [ ] Vérifier que **seul** le disque sacrificiel a été touché (les Games intacts — `lsblk -f`).
- [ ] `cat /var/lib/fws/windows-deploy.status``DEPLOY_OK` (ou `DEPLOY_FAILED` explicite).
- [ ] **Au 1er reboot post-install : la machine boote FWS** (pas Windows, pas WinPE en boucle).
## Phase 6 — Bootabilité Windows (⚠ voie BCD NON VALIDÉE — debug attendu ici)
- [ ] Voie **WinPE-bcdfix** : au 1er reboot, WinPE tourne, `bcdboot` s'exécute, puis retour FWS.
- Si **boucle WinPE** : vérifier l'assignation des lettres (`FWSWIN`/`WINESP`) et l'index de `boot.wim` dans `fws-windows-bcdfix`.
- [ ] Depuis FWS, `efibootmgr` : entrée **Windows Boot Manager** présente, **FWS en tête** de BootOrder, **pas** d'entrée « FWS WinPE » résiduelle.
- [ ] Boot manuel de Windows (menu firmware) → **Windows démarre** jusqu'à l'OOBE unattended.
## Phase 7 — Premier démarrage Windows (auto)
- [ ] OOBE **sans intervention** : compte `gaming` local, **auto-login**, pas d'écran compte Microsoft.
- [ ] `FirstBoot-FwsGameboot.ps1` s'exécute (tâches ONSTART + logon créées, `powercfg /h off`).
- [ ] `Install-Games.ps1` télécharge/lance les installeurs Valorant + LoL (vérifier les URLs `installers.json` si échec).
- [ ] `manage-bde -status`**BitLocker OFF** (anti-lockout OK).
## Phase 8 — Aller-retour gameboot complet (le but final)
- [ ] Depuis FWS : clic **« Jouer à Valorant »** → FWS **hiberne** → reboot → Windows bare-metal.
- [ ] **Vanguard démarre** et Valorant se lance (pas de VAN9003 / erreur VM).
- [ ] Quitter Valorant → reboot → **FWS reprend la session hibernée intacte** (apps/onglets).
- [ ] `BootOrder[0]=FWS` toujours vrai après plusieurs cycles (`fws-gameboot-bootfix`).
- [ ] Test crash : tuer Valorant brutalement → retour propre à FWS (ou reste sur Windows selon le filet).
---
## Filets de récupération (à préparer AVANT la phase 5)
- [ ] **Média de récupération FWS** prêt (ré-enrôlement clés / re-signature) en cas de brick Secure Boot.
- [ ] Clé USB d'install Windows officielle (pour réparer un BCD cassé avec `bcdboot` natif).
- [ ] Savoir entrer dans le menu de boot firmware (touche F2/F12/Suppr selon la carte).
## Attentes réalistes (marqué NON VALIDÉ dans le code)
- **BCD / WinPE-bcdboot** (phase 6) : le plus susceptible d'échouer au 1er essai → itérer.
- **Sémantique BootNext** du firmware (phase 8) : à confirmer sur ta carte mère précise.
- **Resume GPU 5090** (phase 3) : dépend du pilote ; si KO → mode reboot simple (fallback déjà câblé).
- **URLs installeurs Riot** (phase 7) : Riot les change → `installers.json` à mettre à jour si le download échoue.