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

6.8 KiB
Raw Permalink Blame History

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.statusDEPLOY_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 -statusBitLocker 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.