Distribuire un’immagine personalizzata Windows 8.1 Pro su Surface Pro 3 con WDS

In questo articolo vedremo alcuni consigli su come eseguire correttamente la distribuzione di Windows 8.1 Pro sul Surface Pro 3 con WDS. Non è necessario disporre necessariamente dell’ultima versione di Windows Server (nel mio caso ho utilizzato WDS su 2008 R2) ma è consigliabile non utilizzare versioni più datate e le immagini di avvio e installazione devono essere basate su Windows 8.1 Pro per ridurre i possibili problemi.

Iniziamo con il dire che per eseguire la distribuzione è possibile procedere in 3 diversi modi:

– Acquistando l’adattatore USB Ethernet originale Microsoft ed eseguendo un avvio PXE da rete. Questa a mio parere è la strada migliore se si vuole utilizzare come nel mio caso un server WDS.

– Eseguendo l’avvio da una pendrive USB e utilizzando un adattatore USB Ethernet commerciale per eseguire la comunicazione con il server di distribuzione. In questo caso è ovviamente necessario disporre anche di un hub USB. L’adattatore commerciale deve avere driver compatibili con Windows 8.1 che ovviamente dovranno essere integrati nella pendrive di avvio.

– Creando una pendrive di installazione per l’immagine personalizzata. In questo caso è necessario disporre di una pendrive di dimensioni sufficienti a contenere l’intera immagine WIM. Questa strada non verrà approfondita in questo articolo, ma molte parti dell’implementazione sono in comune con quanto descritto.

Per eseguire il boot da pendrive o da PXE è necessario tenere premuti (per massimo 5 secondi e con il dispositivo spento) il tasto di accensione e il tasto volume “-“. Nei miei test l’avvio non è sempre riuscito al primo tentativo (soprattutto utilizzando pendrive USB) quindi potrebbe essere necessario dover insistere un po’.

Il primo passaggio è quindi quello di creare un’immagine di avvio con i driver. Windows 8.1 Pro già include molti dei driver di base per Surface Pro 3, ma alcuni sono mancanti (come ad esempio quello dell’adattatore ethernet USB). Per eseguire l’integrazione è possibile utilizzare direttamente WDS solo se la versione di Windows Server è allineata (2012 R2), altrimenti come nel mio caso sarà necessario utilizzare la procedura manuale tramite DISM in quanto il sistema non sarà in grado di riconoscere la firma digitale.

Per iniziare scaricare e installare Windows ADK 8.1  su un computer dedicato alla creazione delle immagini:

Microsoft Download Center – Windows Assessment and Deployment Kit (Windows ADK) per Windows 8.1 Update

Attenzione: Per intervenire su immagini Windows 8.1 Pro è necessario utilizzare obbligatoriamente la versione dello strumento DISM fornita con questo pacchetto, quindi per sicurezza rimuovere prima tutte le eventuali versioni precedenti di ADK già presenti nel computer. Solitamente nelle ultime release di Windows ADK l’eseguibile di DISM è presente nella cartella C:\Program Files (x86)\Windows Kits\<versione>\Assessment and Deployment Kit\Deployment Tools\<architettura_CPU>\DISM.

Se si sta utilizzando una versione precedente di DISM verrà restituito un errore simile al seguente:

Error 0xc00000135

An error occurred while attempting to start the servicing process for the image
located at [….]

Una volta completata l’installazione, scaricare tutti i driver per Surface da questa pagina (file “Surface3_150504.zip”):

Microsoft Download Center – Surface software, firmware, and drivers

Montare l’immagine boot.wim di Windows 8.1 tramite DISM. Ricordo che è fondamentale utilizzare l’index 2 altrimenti il WDS client non sarà in grado di riconoscere correttamente i driver.

Dism /mount-wim /wimfile:C:\boot.wim /index:2 /mountdir:C:\mnt_boot

Dove:
“C:\boot.wim” è il percorso dell’immagine WIM di boot da modificare
“C:\mnt_boot” è il percorso della cartella utilizzata per montare l’immagine di boot

Quindi utilizzare questo comando per integrare i driver:

Dism /Image:C:\mnt_boot /Add-Driver /Driver:C:\drivers /Recurse /ForceUnsigned

Dove:
“C:\mnt_boot” è il percorso della cartella utilizzata per montare l’immagine di boot
“C:\drivers” è la cartella dove è stato estratto il contenuto del file ZIP

Per ulteriori informazioni sull’integrazione di driver:

Microsoft TechNet – Aggiungere e rimuovere driver offline

Una volta eseguita l’integrazione ed aver eseguito il commit delle modifiche sull’immagine, questa è pronta per essere utilizzata importandola in WDS (da questa potrà venire generata anche un’immagine di acquisizione).

Se su Surface non si esegue un boot PXE è necessario inoltre procedere con la creazione di un’immagine di individuazione che poi andrà integrata in una installazione su pendrive. Quest’ultima può essere generata utilizzando il comando Copype.cmd di Windows ADK. Per ulteriori informazioni su questo comando:

Microsoft TechNet – Opzioni della riga di comando di Copype

Chi vuole utilizzare il metodo di distribuzione interamente basato su pendrive può utilizzare lo stesso principio per creare delle vere e proprie installazioni complete della propria immagine personalizzata.

Passiamo ora alla fase di preparazione dell’immagine personalizzata mediante sysprep. Prima di poter eseguire questo strumento sull’immagine originale è necessario prendere qualche accorgimento:

– E’ necessario andare nelle impostazioni BitLocker, abilitare la crittografia sul volume e quindi disabilitarla nuovamente attendendo il termine della procedura. In caso contrario sysprep non verrà eseguito e verrà restituito un errore.

– Nel file di risposte di sysprep è necessario disabilitare la pulizia dei driver inserendo:

<settings pass="generalize">
        <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="(your token)" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices>
        <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
    </component>
</settings>

Attenzione: Questa parte di codice è solo un esempio per illustrare il dettaglio del blocco da inserire. E’ necessario utilizzare Windows System Image per modificare il file di risposte, utilizzando il file di catalogo corretto. Consiglio la lettura di questo precedente articolo (lo stesso meccanismo può essere applicato anche ai file di risposte di sysprep):

Come strutturare rapidamente un file di risposte per WDS

Se non si utilizza questo comando, sysprep sembra riuscire ma il computer si blocca in fase di arresto. Avviando nuovamente il sistema, sysprep sembra aver funzionato, ma in realtà l’immagine non può essere acquisita con WDS perché si trova in uno stato incoerente. Nel file di log “Setuperr.log” presente nella cartella di sysprep sono inoltre presenti numerosi errori di questo tipo:

Error SYSPRP SPPNP: Failed to secure driver file [….]. Err = 0x3

Error SYSPRP SPPNP: Failed to secure driver file [….]. Err = 0x2

In base alle mie ricerche il problema sembrerebbe essere causato da driver aggiuntivi utilizzati precedentemente da Microsoft per la generazione dell’immagine originale di Surface Pro 3.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *