vendredi 18 mai 2012

UEFI : le guide de survie pour installer Windows 7 et 8

abstract-hd-wallpaper-258886966d

UEFI vous connaissez ? “Unified Extensible Firmware Interface”, c’est le nouveau standard qui à terme devrait remplacer le BIOS.

Les raisons principales de ce changement sont les suivantes :

  • BIOS qui est en 16 bits ne permet pas d’adresser toute la mémoire physique disponible.
  • BIOS est trop lent à s’initialiser.
  • BIOS ne peut occuper au maximum qu’1Mo de mémoire quelque soit la taille de celle-ci.
  • Il est limité à 4 partitions physiques de 2.2 Téra maximum.(Problématique si on souhaite ne faire qu’une partition sur un disque de 3 Tera) 
  • Aucun standard/spécification n’existe pour le BIOS.

    UEFI adresse toutes ces limitations, et fait bien plus encore !  Pour être claire UEFI est un véritable OS embarqué. Pour en connaitre les principaux contours, voici une très bonne vidéo de présentation !

    La partie qui nous préoccupe aujourd’hui est la partie disque, et dans ce domaine UEFI a de quoi faire rêver :

    UEFI met fin au règne des disque MBR dont j’ai cité les limitations plus haut, et donne naissance au disque GPT (Bravo pour le nom !!) qui peuvent adresser pas moins de 128 partitions de 9.4 milliard de tera octets (Zo) par disque physique (Non, il n’y à pas erreur !).

    L’accès à ces partitions gigantesques est soumis à quelques contraintes dont les principales sont les suivantes :

  • Un OS 64 Bits (Windows 7/2008 R2/Windows 8/8.1).
  • Un OS 32 Bits uniquement sur certaines plateforme Hardware type Clovertrail
  • Un disque GPT.
  • Une carte mère avec UEFI activée.

    Cependant, si vos disques font moins de 2.2 tera et ne sont pas GPT vous pouvez quand même implémenter GPT, ceci dit l’intérêt devient plus que discutable…

    Pour infos les versions précédentes de Windows permettaient déjà de créer des disques GPT, mais pas pour les partitions devant booter sur l’OS.

    Comme vous le constatez également, en dehors d’un OS 64 Bits ; point de salut. Oubliez donc le boot UEFI sur les OS 32 Bits car même si cette spécification existe, Microsoft n’a pas voulu l’implémenter…

    Update 18/02/2013 : Il semble que pour Windows 8, Microsoft est finalement décidé de supporter UEFI sur son OS 32 Bits, notamment à cause des processeurs Atom Z2760 “clover trail” qui ne sont que 32 bits et qui son installé dans pas mal de tablettes x86…

    UEFI embarque un mode de compatibilité qui émule le BIOS. Le guide que je vous propose va vous permettre d’utiliser UEFI en mode natif, c’est à dire : en désactivant la compatibilité avec les anciens mode de démarrage BIOS.

    La conséquence directe de ce mode natif impliquera non seulement que vos disques durs et partitions OS soient configurés en mode UEFI, mais également tout périphériques susceptibles de booter !!! Donc également les clés USB (Les CD/DVD restant lisibles dans leur format d’origine malgré l’existence d’une spécification UEFI !).

    Problèmes des clés USB

    Si le partitionnement du disque dur et l’installation de l’OS ne présentent pas de difficultés particulières; il va falloir ruser un peu pour les clés USB, mais nous allons voir cela tout de suite :

  • Le file system de l’UEFI est (accrochez-vous à votre chaise ! ) du FAT/FAT32. Cette spécification met des facto en péril vos futur déploiement du fait des limites techniques du système FAT qui ne peut pas gérer des fichiers de plus de 4 GO…(UEFI ne supportant pas non plus ExFAT !)

    Update 05/11/2013 : Si vous rencontrez ce problème et que vous cherchez une solution, j’ai écrits un outils pour MDT permettant de s’affranchir de cette Limite. Toutes les infos ici.

    Pour rappel, 4 GO c’est la taille que fera votre fichier Install.WIM (le fichier principal d’installation de Windows) après l’intégration du SP1 et de quelques patches supplémentaires, c’est aussi la taille du fichier d’installation de Windows 8 !

    Est-ce vraiment un problème ? … en fait pas vraiment… En repassant l’UEFI en mode compatibilité on peut s’affranchir de cette limitation et utiliser le NTFS ! Cependant, j’ai lu ça et là que ce mode de compatibilité pourrait disparaitre un jour, aussi, étudier la question avant de se retrouver au pied du mur me paraissait important.

    Important : Si votre image WIM fait moins de 4GO la suite de cet article ne vous concerne plus. Depuis Windows 8, La création d’un média UEFI compatible est relativement simple, ce tutorial vous l’explique deux méthodes pour creer  votre clé  : http://www.nextofwindows.com/how-to-make-uefi-bootable-usb-flash-drive-to-install-windows-8/

    Donc,pour contourner ce “problème”  nous allons devoir créer une seconde partitions sur la clé USB que nous formaterons cette fois en NTFS, et sur laquelle nous pourrons déposer nos fichiers volumineux.

    Nouvelle coquille : Windows 7 n’est capable de ne lire ou formater qu'une seule et unique partition sur un média amovible !!!! La seconde partition n’étant tout bonnement pas affichée. Windows 8 fait à peine mieux, puisqu'il affiche les deux partitions, mais ne sait lire que la première.

    Le seul moyen pour que les deux partitions de cette clé soient accessibles quelque soit le contexte (BIOS, WinPE, Windows) et qu'‘elle soit détecté, non pas comme un média amovible, mais comme un disque local !

    Clés USB ‘Fixed Disk’

    A l’heure actuelle, vous pouvez aller acheter une clé USB qui, selon une logique propre à chaque constructeur, sera reconnue comme disque local (fixed drive), ou comme média amovible (removable device).

    Soyons claire : il n’existe actuellement aucun moyen d’identifier quel est le type de la clé avant de l’avoir acheté !!!

    Sachez également que vous aurez besoin du même type de clé si vous voulez utiliser WindowsToGo.

    Deux solutions s’offrent à vous pour régler ce problème : soit avoir de la chance à l’achat de votre clé, soit transformer celle-ci en disque local, voici brièvement comment faire :

    Téléchargez et installez l’application ChipGenius à cette adresse afin de connaitre les spécifications de votre clé USB.

    Nous avons besoin de deux Informations importantes : les numéros VID et PID :

    image

    Ensuite, vous pouvez soit vous rendre sur le liens proposé par l’application, soit entrez vos VID/PID sur cette page.

    quel en est l’intérêt : la page internet va vous dire quelles applications connues peuvent reformater votre clé.

    Si une application existe, vous pourrez la télécharger en allant sur cette page là.

    La plus part  des outils de reformatage qui vous seront proposés ne fonctionnent que sur votre clé, n’essayez donc pas le même utilitaire sur un model de marque différente, vous risqueriez de détruire votre clé.

    Le reformatage permet, entre autre de changer le type de votre clé et donc de transformer cette dernière en Fixed Drive.

    Préparation de votre environnent de travail

    Le problème de clé étant maintenant réglé, voici la liste des près-requis pour mener à bien notre installation :

  • Une clé USB de 8Go minimum reconnu comme disque local.
  • Un PC de travail avec Windows 7/8/2008 R2 en version 64 Bits uniquement.
  • Les sources d’installation de Windows en 64 Bits (Le DVD
  • Un PC de test prenant en charge L’UEFI.
  • Le logiciel Visual BCD
  • Le WAIK (Window7) ou l’ ADK (Windows 8)

    Sur le PC de test, vous allez activer l’UEFI en éditant le BIOS. l’UEFI est en général configuré en mode compatible afin de pouvoir gérer à la fois les disque MBR et GPT. Vous allez le passer en mode natif UEFI :

    WP_000090

    Partitionnement de la clé USB

    Insérez votre clé USB et ouvrez une invite de commande en mode administrateur. Lancez Diskpart avec les commandes suivantes :

    DISKPART
    LIST DISK (identifiez votre clé USB, dans cet exemple ma clé à le numéro 1)

    2011-12-30 07h44_50
    Puis sélectionnez la avec la commande :

    SELECT DISK 1 (Remplacer le chiffre 1 par le numéro correspondants à votre propre clé USB).

    CLEAN (pour effacer tout contenu existant)
    CREATE PARTITION PRIMARY SIZE=204
    FORMAT FS=FAT32 LABEL=”EFI” QUICK
    ASSIGN
    CREATE PARTITION PRIMARY
    FORMAT FS=NTFS LABEL=”OS” QUICK
    ASSIGN

    Bravo, vous venez de créer une partition Fat32 de 200 Mo et une partition NTFS qui utilise la quantité restante sur votre clé :

    2011-12-30 08h11_35

    Préparation de la Clé USB

    Munissez-vous maintenant de votre CD d’installation Windows 7/8 X64 et copiez les fichiers et répertoires suivants sur la partition nommé “EFI” de votre clé USB :

    Boot
    Efi
    autorun.inf
    Bootmgr
    Bootmgr.efi

    Copiez ensuite les fichiers et répertoires suivants sur la partition nommée '”OS” de votre clé USB :

    Sources
    Support
    upgrade
    setup.exe

    Si Vous êtes sous Windows 7 X64, quelques opérations supplémentaires par rapport à Windows 8 sont à opérer :

    Retournez dans la partition EFI et copiez le répertoire  EFI\Microsoft\Boot un niveau au dessus afin qu’il se retrouve dans EFI\Boot

    Récupérez le fichier Bootmgfw.efi qui se trouve dans C:\Windows\Boot\EFI et copiez le sur la clé dans le répertoire EFI\Boot en le renommant en Bootx64.efi

    l’ arborescence de votre répertoire boot doit maintenant ressembler à ça :

    2011-12-30 11h09_50

    Nous allons maintenant modifier le magasin BCD afin que le boot sache à quel endroit aller chercher ces fichiers de démarrage.

    Si vous ne l’avez pas encore fait, installez Visual BCD et dans le menu Store de celui-ci, cliquez sur Open Store et choisissez le fichier E:\efi\microsoft\boot\bcd (Remplacez E par la lettre correspondant la partition EFI de votre clé USB)

    Dans l’arborescence de droite sélectionnez Windows Setup

    image

    et modifiez successivement les entrées ApplicationDevice et OSDevice en remplaçant dans le chemin du ramdisk, l’emplacement [boot] par la lettre correspondant à la partition OS de votre clé USB.

    image

    Votre Magasin BCD doit normalement ressembler à ça :

    image

    Une fois ceci terminé quittez Visual BCD, il reste une dernière modification à effectuer afin d’indiquer sur le boot ou se trouve l’OS

  • BOOTSECT /NT60 E: (remplacer E: par la lettre correspondant à partition EFI de votre clé) , Notre clé est prête !!

    Préparation de l’OS

    Nous allons maintenant créer un fichier de réponse afin que Windows s’installe en créant les partitions dont il à besoin pour gérer correctement l’UEFI, à savoir :

  • Une partition en FAT32 pour l’amorçage UEFI du système.
  • Une partition WinRE en NTFS (facultative) 
  • Une partition réservée pour le besoin de Windows (MSR).
  • Une partition NTFS contenant notre OS.
  • Une seconde partition NTFS (facultative)

    Pour Créer le fichiers de réponse installez le WAIK ou l’ ADK et lancez WSIM (Windows System Image Manager). Je vous invite à vous reporter à mon article sur l’installation silencieuse de Windows 8 pour tous les détails. le fichier à créer est en tout point identique sauf en ce qui concerne les éléments suivants : 

    Microsoft-Windows-Setup_neutral > DiskConfiguration >Disk

    DiskID=0 sélection du 1er disque
    WillWipeDisk = true le disque sera reformaté dans son intégralité

    Création d’une partition principale (Primary) pour WINRE.

    Microsoft-Windows-Setup_neutral > DiskConfiguration >Disk >CreatePartition

    Order = 1 définit l'ordre de création des partitions sur le disque
    Size = 300 taille de la partition en Mégabits (ici 300 MO).
    Type = Primary type de partition : Primary

    Création de la partition UEFI.

    Microsoft-Windows-Setup_neutral > DiskConfiguration > Disk > CreatePartition

    Order = 2  
    Size = 260 Taille minimum pour les disques Advanced Format
    Type = EFI  

    Création de la partition MSR (réservé pour Windows).

    Microsoft-Windows-Setup_neutral > DiskConfiguration > Disk > CreatePartition

    Order = 3  
    Size = 128  
    Type = MSR  

    Création de la partition Windows

    Microsoft-Windows-Setup_neutral > DiskConfiguration > Disk > CreatePartition

    Order = 4  
    Size = 80000 Partition OS de 80 Go
    Type = Primary  

    Création de la seconde partition NFTS

    Microsoft-Windows-Setup_neutral > DiskConfiguration > Disk > CreatePartition

    Extend = True Utilise tout l'espace restant pour créer la partition
    Order = 5  
    Type = Primary  

    Définition des paramètres de formatage pour nos différentes partitions :

    Microsoft-Windows-Setup_neutral > DiskConfiguration > Disk > ModifyPartition

    Format = NTFS  
    Label = WINRE  
    Order = 1  
    PartitionID = 1  
    Microsoft-Windows-Setup_neutral > DiskConfiguration >Disk >ModifyPartition
    Format = FAT32  
    Label = SYSTEM  
    Order = 2  
    PartitionID = 2  

    Microsoft-Windows-Setup_neutral > DiskConfiguration >Disk >ModifyPartition

    Format = NTFS  
    Label = WINDOWS  
    Order = 3  
    PartitionID = 4  
    Microsoft-Windows-Setup_neutral > DiskConfiguration >Disk >ModifyPartition
    Format = NTFS  
    Label = Data  
    Order = 4  
    PartitionID = 5  

    Installation de l’OS

    Microsoft-Windows-Setup_neutral > Image Install >OS Image >InstallTo 

    DiskID = 0 Disque d’installation de l’OS
    Partition = 4 Partition d’installation de l’OS

    Notre fichier est prêt, sauvez le sous le nom autounattend.xml sur la partition OS de votre clé USB.

    Pour finir, nous allons devoir ouvrir l’image Boot.wim afin d’ordonner à Setup.exe (fichier responsable de l’installation de Windows) d’aller chercher ces informations sur la seconde partition de la clé.

    Ouvrez une invite de commande en mode administrateur et tapez les commandes suivantes pour monter l’image :

    MD c:\temp
    Dism /Mount-Wim /WimFile:H:\sources\boot.wim /index:2 /MountDir:C:\Temp

    Dans le répertoire C:\Temp\Windows\System32 nous allons créer un fichier winpesh.ini qui sera exécuté à la place de Setup.exe. Voici ce qu’il faudra y mettre :

    [LaunchApps]
    Cscript.exe, %WINDIR%\system32\winpesh.vbs

    Enfin, un petit script vbs que nous nommerons  winpesh.vbs va nous permettre de relancer setup.exe sur la bonne partition avec le fichier de réponse adéquat :

    ' Script By Diagg 01/05/2012
    ' www.zany-openeyes.fr
    ' Launch Windows installation setup with the first autounattend.xml found in any drive
    Set oShell = CreateObject("WScript.Shell")
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oDrives = oFSO.Drives
    FndXML = 0
    For each oDrvFound in oDrives
        If  oFSO.FileExists(oDrvFound & "\autounattend.xml") Then
            FndXML = 1
            oShell.run "%SYSTEMDRIVE%\sources\setup.exe /unattend:"& oDrvFound & "\autounattend.xml", 0,True
            Exit for
        End IF
    Next
    If FndXML = 0 Then
        oShell.run "%SYSTEMDRIVE%\sources\setup.exe", 0,True
    End If

    Une fois le fichier de script crée, nous pouvons refermer notre image WIM :

    Dism /Unmount-Wim /Mountdir:C:\Temp /Commit

    La Clé USB est maintenant 100% opérationnelle en mode “UEFI Only”, et l’OS le sera également dés qu'il sera installé.

    Petit regret : la solution n’est pas compatible avec le mode “Legacy Only” (Bios uniquement) pour une raison que je n’ai pas eu le temps de déterminer ( si quelqu’un a l’info, n’hésitez pas à partager).

    J’insiste encore : il est probable que vous n’ayez jamais à utiliser le mode “UEFI Only” et donc toute la partie inhérente à la clé USB. Si ce jour devait malgré tout arriver, nous somme prêt !

    Je n’ai délibérément traité que la partie Boot Windows dans ce billet, les sujets sur l’UEFI sont légion : Secure Boot, Dual Boot OS X/Windows, Shell UEFI, Applications UEFI etc etc… Il est probable que je re-aborderai le sujet dans de prochains billets, d’ici là, je vous laisse vous faire la main sur la question et vous invite à méditer ce tweet de Michael Niehaus (Monsieur MDT) qui en dit long sur la question…

  • 11 commentaires:

    1. Je n'ai pas pu changer la clef USB en Fixed Disk tel qu'indiqué mais j'ai trouvé une façon qui semble faire l'affaire. Voir ici: http://agnipulse.com/2012/03/filter-drivers-removable-media-fixed-disk-windows/

      Il me reste maintenant qu'à essayer la suite!

      RépondreSupprimer
      Réponses
      1. C'est finalement à éviter, car aucune façon de revenir en arrière avec cette technique. La clé est foutu. Par contre vos instructions m'ont donné une idée, pourquoi ne pas simplement prendre deux clefs? Une formaté en FAT32 et l'autre en NTSF, puisque vos instructions donnent la possibilité de pointer une autre partition du Magasin BCD deux clefs devraient en théorie pouvoir fonctionner! Je l'essaye! J'ai fait l’acquisition de deux clefs de 8 GO pour ce faire.

        Supprimer
      2. bonjour Pierre, le driver n'est pas une solution car votre clé ne sera vue comme média fixe qu'a partir du moment ou windows aura démarré. Hors dans notre cas, la clé doit être 'vue' comme un média fixe dés que l'ordinateur s'allume (infiniment plutôt donc)....

        Supprimer
      3. Pour les retour arrière : à priori, une fois qu'on a changé il n'y a plus moyen de revenir en arrière. autre point important ces manipulation sont surtout valable pour des clés USB 2, car il est difficile de trouver des listes à jour de VID/PID pour clés USB 3...

        L'idée des deux clés a l'aire sympa, dites moi si ça marche. Mais au faites, êtes vous vraiment sure d'avoir besoin de 2 partitions sur votre clé USB, quel est votre problème exactement ?

        Supprimer
      4. @Nicolas Lacour :
        si j'ai bien tout compris, les 2 clés (ou bien les 2 partitions)
        - une FAT parce que le UEFI ne sait booter que sur du FAT
        - une NTFS pour pouvoir poser des fichiers de pluss que 4Go...

        Supprimer
      5. c'est exactement ça, mais si ton fichier fait moins de 4GO, une seul partition en FAT est suffisante.

        Supprimer
    2. Bonjour,
      Je cherche à installer Windows sur une partition GPT dans l'objectif d'un hackintosh. Ma clé USB boot bien l'installation de Windows mais au moment de formater la partition, il me dit qu'il ne peut pas être installé sur une table GPT. Une idée ?
      Déjà, est-ce que toutes les versions de Windows 8 64-bit sont installables sur un disque GPT ?

      RépondreSupprimer
    3. J'ai le même problème que anonyme Windows ne peut pas s'installer sur une partition gpt

      RépondreSupprimer
    4. Bonjour, avez vous vérifié que votre PC démarre bien en mode Full UEFI ? Si vous êtes toujours en mode "Bios Compatible", Windows va commencer à s'installer et lors du formatage, ne trouvant pas de disque GPT (qui n'est reconnu qu'en UEFI) il va se mettre en erreur...

      RépondreSupprimer
    5. bon j'ai du changer de clé usb entre temps car elle ma lâché fichue clé.
      j'ai une clé de 16go que je trouve sur les lien donner par contre je n'arrive pas a la mètre en disque dur, après avoir rentre les données nécessaire je doit télécharger ceci: SM3257EN-MPTOOL-K0929 | Silicon outils de production de programmes, par contre je ne trouve pas l’option pour mètre la clé en disque dur une aide serait la bien venu

      RépondreSupprimer
    6. excuser moi encore serait t'il possible d'avoir le fichier unnatendu car la je galère vraiment merci

      RépondreSupprimer