Accueil > Mirage > automatiser l’installation depuis BootUSB pour Mirage
Déc/1330

BootUSB-MirageHorizon Mirage permet de manipuler agilement les OS et les restaurations à partir du client Mirage. Mais pour les machines nues, il faut d’abord fournir un OS avec le client pour pouvoir gérer la machine depuis le serveur Mirage. Cette opération se fait à partir d’une installation automatisée de Windows 7 sur clé USB bootable.

Pour générer cette clé USB bootable, utiliser les scripts fournit dans « BootUSB.zip« . Avant d’utiliser les scripts, il faut fournir:

  • une clé USB de minimum 4 Go (qui sera formatée)
  • le contenu du DVD Windows 7 Professional/Enterprise 32/64 bits
  • le fichier MSI du client Mirage x86 ou x64 (en fonction de la distribution Windows 7 utilisée), le copier dans « BootUSB/MirageClient/« 
  • les drivers Windows 7 pour la machine nue (à minima le driver réseau), les copier dans « /BootUSB/Drivers/« 
  • avoir le lecteur U: disponible

Avant la création de cette clé USB bootable, il faut modifier le fichier « autounattend.xml » si l’on souhaite avoir une installation complétement automatisée. En effet, le fichier fournit n’inclut pas la réinititalisation des disques et l’autre fichier Unattend « autounattend_full_auto.xml » n’inclut pas l’injection des drivers et du client Mirage. Il faut donc faire un mix des 2 fichiers pour avoir une installation complétement automatisée.

En plus du simple mix, j’ai passé le clavier en français et ajouté la désactivation du Firewall et des Windows Update. L’exemple ci-dessous a été fait pour une distribution « Windows 7 Enterprise 32/64 bits English ». Si votre distribution est en français, il faut modifier les sections « SetupUILanguage » et « UILanguage » de « en-US » à « fr-FR« . Dans un soucis de clarté, l’exemple ne contient que les composants x86, mais le fichier XML téléchargeable ensuite contient bien les composants en double (x86/amd64).

Exemple de fichier « autounattend.xml » (en jaune les lignes à modifier/ajouter):

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <ProtectYourPC>3</ProtectYourPC>                <NetworkLocation>Home</NetworkLocation>
                <HideEULAPage>true</HideEULAPage>                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>            </OOBE>
            <UserAccounts>
                <AdministratorPassword>
                    <Value>cABhAHMAcwB3AG8AcgBkAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
                    <PlainText>false</PlainText>
                </AdministratorPassword>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>cABhAHMAcwB3AG8AcgBkAFAAYQBzAHMAdwBvAHIAZAA=</Value>
                            <PlainText>false</PlainText>
                        </Password>
                        <DisplayName>Test</DisplayName>
                        <Group>Administrators</Group>
                        <Name>Test</Name>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
            <AutoLogon>
                <Password>
                    <Value>cABhAHMAcwB3AG8AcgBkAFAAYQBzAHMAdwBvAHIAZAA=</Value>
                    <PlainText>false</PlainText>
                </Password>
                <Enabled>true</Enabled>
                <Username>Test</Username>
            </AutoLogon>
        </component>
        <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Reseal>
                <ForceShutdownNow>false</ForceShutdownNow>
                <Mode>OOBE</Mode>
            </Reseal>
        </component>
    </settings>
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>en-US</UILanguage>
                <WillShowUI>OnError</WillShowUI>            </SetupUILanguage>
            <InputLocale>fr-FR</InputLocale>            <SystemLocale>fr-FR</SystemLocale>            <UILanguage>en-US</UILanguage>
            <UserLocale>fr-FR</UserLocale>        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserData>
                <AcceptEula>true</AcceptEula>
                <FullName>Test</FullName>
                <Organization>Test</Organization>
            </UserData>
            <DiskConfiguration>                <Disk wcm:action="add">                    <CreatePartitions>                        <CreatePartition wcm:action="add">                            <Order>1</Order>                            <Size>200</Size>                            <Type>Primary</Type>                        </CreatePartition>                        <CreatePartition wcm:action="add">                            <Order>2</Order>                            <Type>Primary</Type>                            <Extend>true</Extend>                        </CreatePartition>                    </CreatePartitions>                    <ModifyPartitions>                        <ModifyPartition wcm:action="add">                            <Active>true</Active>                            <Format>NTFS</Format>                            <Label>System</Label>                            <Order>1</Order>                            <PartitionID>1</PartitionID>                        </ModifyPartition>                        <ModifyPartition wcm:action="add">                            <Format>NTFS</Format>                            <Label>Windows</Label>                            <Order>2</Order>                            <PartitionID>2</PartitionID>                        </ModifyPartition>                    </ModifyPartitions>                    <DiskID>0</DiskID>                    <WillWipeDisk>true</WillWipeDisk>                </Disk>                <WillShowUI>OnError</WillShowUI>            </DiskConfiguration>            <ImageInstall>                <OSImage>                    <InstallTo>                        <DiskID>0</DiskID>                        <PartitionID>2</PartitionID>                    </InstallTo>                    <WillShowUI>OnError</WillShowUI>                </OSImage>            </ImageInstall>        </component>
    </settings>
    <settings pass="specialize">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <ComputerName>WIN7TEMP</ComputerName>            <TimeZone>Romance Standard Time</TimeZone>            <RegisteredOwner>Wanova</RegisteredOwner>
            <RegisteredOrganization>Wanova</RegisteredOrganization>
        </component>
        <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <WillReboot>Never</WillReboot>
                    <Path>c:\windows\setup\Wanova\Setup.cmd</Path>
                    <Order>1</Order>
                    <Description>Wanova BootUSB - Post Installation Script</Description>
                </RunSynchronousCommand>
            </RunSynchronous>
        </component>
        <component name="Networking-MPSSVC-Svc" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">            <DomainProfile_EnableFirewall>false</DomainProfile_EnableFirewall>            <PrivateProfile_EnableFirewall>false</PrivateProfile_EnableFirewall>            <PublicProfile_EnableFirewall>false</PublicProfile_EnableFirewall>        </component>    </settings>
    <settings pass="offlineServicing">
        <component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DriverPaths>
                <PathAndCredentials wcm:action="add" wcm:keyValue="1">
                    <Path>C:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="2">
                    <Path>D:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="3">
                    <Path>E:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="4">
                    <Path>F:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="5">
                    <Path>G:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="6">
                    <Path>H:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="7">
                    <Path>I:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="8">
                    <Path>J:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="9">
                    <Path>K:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="10">
                    <Path>L:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="11">
                    <Path>M:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="12">
                    <Path>N:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="13">
                    <Path>O:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="14">
                    <Path>P:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="15">
                    <Path>Q:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="16">
                    <Path>R:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="17">
                    <Path>S:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="18">
                    <Path>T:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="19">
                    <Path>U:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="20">
                    <Path>V:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="21">
                    <Path>W:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="22">
                    <Path>X:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="23">
                    <Path>Y:\MirageDrivers\</Path>
                </PathAndCredentials>
                <PathAndCredentials wcm:action="add" wcm:keyValue="24">
                    <Path>Z:\MirageDrivers\</Path>
                </PathAndCredentials>
            </DriverPaths>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="catalog:d:/sources/install_windows 7 enterprise.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

le fichier XML complet en téléchargement:XML-icon

NB:  Si vous souhaitez modifier graphiquement le fichier d’utiliser « Windows System Image Manager (SIM) » fournit dans Windows AIK pour Windows 7.

 

Lancer une première fois le script « win7usb.cmd » pour identifier la clé USB (disque 1 dans notre cas):

win7usb-cmd

Puis lancer la commande en précisant: <l’emplacement de la distribution Win7> <le chemin vers le MSI du client Mirage> <l’adresse IP du serveur Mirage> <utilisation de communication SSL> <le numéro du disque USB> <le répertoire des drivers additionnels>. Comme dans l’exemple ci-dessous:

win7usb.cmd d: .\MirageClient\MirageClient.x86.13359.msi 192.168.0.120 false 1 .\Drivers\

NB1:  La machine une fois installé est en autologon avec le compte « test« . Mais si besoin, son mot de passe est « password » et celui de d’administrateur est « passwd1!« .

NB2:  Pour tester la clé USB bootable, je vous recommande d’utiliser l’ISO « Plop Boot Manager« . En effet, les machines virtuelles ne permettent pas le Boot USB.

NB3:  Il est également possible de créer une clé USB bootable basée sur Windows XP, en utilisant le script « xpusb.cmd » dans ce cas, il faut partir d’un CD de restauration XP. Le script n’est pas officiellement supporté.

  1. Pas encore de commentaire
  1. Pas encore de trackbacks