Automatiser un Multiboot entre NT 5.x & WinPe 2.X

Problématique

En complément de cet article Technet Comment créer un Windows PE 2.x Multiboot 32 et 64 bit, je souhaiterais vous proposer un autre post permettant par exemple, un multiboot entre votre OS de production et WinPe

Objectif

En plus d'être un outil de déploiement, WinPe est aussi un outil de "récupération".

En proposant une solution de démarrage parallèle, vous pouvez par la suite essayer de recopier des fichiers manquant ou défectueux, lancer un Chkdsk, modifier la base de registre, ou, dans le pire des cas, redescendre directement un master.

Prérequis

Les prérequis sont les même que dans l'article technet Comment créer un Windows PE 2.x Multiboot 32 et 64 bit

Procédure

Imaginons le scénario suivant:

  • Un Windows Server 2003
  • Un disque local ayant 2 partitions C:\ et D:\
  • Un WinPe et les outils Bootsect.exe (des Waik 1.1) et Bcdedit.exe de Server 2008 sur un partage réseau z:\

Scenario

Attention : la manipulation ci-après va mettre à jour/modifier la séquence de démarrage de votre serveur vers une séquence Windows Vista/Server 2008/Seven

La séquence passe donc de :

  • De

Boot NT 5.x 

  • A

Boot NT 6 et 7

Attention-2: (Le retour)

  • Pour une installation NT 5.x, le MBR (Secteur 0) contient les informations pour aller chercher le NTFS Boot secteur en Secteur 63 sur le disque, ce NTFS Boot secteur contient les informations pour aller chercher un NTLDR
  • Pour une installation NT 6 & 7, le MBR (Secteur 0) contient les informations pour aller chercher le NTFS Boot secteur en Secteur 2048 sur le disque, ce NTFS Boot secteur contient les informations pour aller chercher un Bootmgr

Note : c'est un peu lourd mais ça a son importance pour la suite. Vous pouvez consulter les informations sur ces secteurs en utilisant un outil comme DskProbe

Après ces petites remarques, voici donc les commandes qui peuvent être réutilisées dans un batch:

  1. Mettre à jour le NTFS boot Secteur
    Rem Le MBR ne sera pas touché, seuls les informations du NTFS Boot Secteur (secteur 63) seront modifiées afin qu'il cherche un bootmgr
    Bootsect /nt60 c:

  2. Copier les sources de WinPe dans d:\ et les fichiers de démarrage sur c:\
    copy z:\WinPe\ISO\bootmgr c:
    xcopy /e z:\WinPe\ISO\boot c:\boot
    xcopy z:\WinPe\ISO\sources d:\WinPe

  3. Lancer la même commande
    bcdedit -store boot\BCD /enum all
    Rem récupérer le {GUID} de Device Options (aussi appelé {ramdiskoptions})

  4. Mettre à jour les variables du BCD
    bcdedit -store boot\BCD /set {default} device ramdisk=[d:]\WinPE\boot.wim,{GUID}
    bcdedit -store boot\BCD /set {default} osdevice ramdisk=[d:]\WinPE\boot.wim,{GUID} 

  5. Creer une entree pour Windows Server 2003 dans le BCD
    bcdedit -store boot\BCD /create {ntldr} /d "Windows Server 2003"
    bcdedit -store boot\BCD /displayorder {NTLDR} /addfirst 

  6. Modifier l'entrée NTLDR
    bcdedit -store boot\BCD /set {ntldr} device boot
    bcdedit -store boot\BCD /set {ntldr} path \ntldr 

  7. Supprimer EMS & modifier la description
    bcdedit -store boot\BCD /set {default} description "Windows PE 2.1"
    bcdedit -store boot\BCD /deletevalue {default} ems

  8. Basculer l’entrée Ntldr en choix pas défaut & réduire le timeout
    bcdedit -store boot\BCD /default {ntldr}
    bcdedit -store boot\BCD /set {bootmgr} timeout 5

  9. Enumérer le BCD afin de vérifier le résultat
    bcdedit -store boot\BCD > d:\Bcdedit.txt

Le résultat devrait être le suivant:

BcdeditBCD

Vincar (pour les intimes)
Windows Core Support Engineer