La creazione di un Windows LiveCD ovvero di un ambiente Windows avviabile da CD/DVD può tornare utile in varie situazioni:
- Rimozione di virus e malware da un pc infetto quando i file sono bloccati dal sistema operativo.
- Ripristino di file eliminati erroneamente tramite un ambiente windows che non risiede sull'hard disk per evitare la sovrascrittura dei cluster occupati dai file da recuperare.
- Creazione di un ambiente Windows con tool preinstallati per la gestione della rete, del file system, etc.
- Creazione di un ambiente Windows per computer con risorse ridotte da utilizzarsi come thin client in ambiente Terminal Server.
- Creazione di una ambiente Windows da utilizzare come demo per un'applicazione.
Ci sono due possibilità per creare un Windows LiveCD:
- Utilizzare il tool Microsoft Windows Preinstallation Environment che è distribuita ai Microsoft Certified Partners, IHV, ISV e ODM.
- Utilizzare il tool BartPE free per uso personale o all'interno della propria azienda.
In questo articolo analizzeremo la seconda possibilità in quanto è accessibile a tutti gli utenti in possesso di un CD di Windows XP o Windows Server 2003.
Per utilizzare un Windows LiveCD occorre avere una licenza regolare del sistema operativo ed è necessario tenere presente le seguenti condizioni:
- Se si utilizza una licenza OEM (Original Equipment Manifacturer) il LiveCD potra essere eseguito solo sul computer a cui la licenza si riferisce
- Se di utilizza una licenza FPP (Full Package Product) o Open quando il LiveCD è in esecuzione utilizza la licenza e quindi può essere utilizzata simultaneamente su di un altro computer.
Oltre a creare un LiveCD è anche possibile utilizzare una chiavetta Usb, per maggiori dettagli si veda la seguente FAQ:
Can BartPE boot from USB flash drives (UFD)?
Sommario
BartPE Bart's Preinstalled Environment
Il tool è scaricabile al seguente link http://www.nu2.nu/pebuilder/download e consente di creare e masterizzare un'immagine iso prelevando i file necessari dal CD di Windows (a tal proposito se il CD non comprende l'ultimo Service Pack conviene crearne uno tramite un tool di slipstreaming come ad esempio nLite).
BartPE consente inoltre di aggiungere tramite appositi plugin delle applicazioni al sistema e integrarle nella shell creata da Bart Lagerweij, il tool contiene già alcuni plugin per alcune applicazioni e funzionalità come ad esempio:
- Ad-Aware SE
- McAffee Stinger
- McAffee Virus Scan (per cui è stata sviluppata una comoda GUI)
- Network support
- Remote Desktop Client
- RamDisk
- Symantec Ghost 8.0
Inoltre sul sito sono disponibili alcuni link da cui è possibile scaricare plugin aggiuntivi per le più disparate applicazioni come ad esempio:
Sempre sul sito sono disponibili alcuni driver per controller e schede di rete comuni.
Se si desidera già un LiveCD preconfigurato con un buon numero di applicazioni free e driver è possibile scaricarlo scaricarlo a questo link UBCD for Windows.
Per semplificare il procedimento di aggiornamento a release successive del tool in cui alcuni plugin di interesse potrebbere essere integrati conviene utilizzate un suffisso per le directory dei plugin aggiunti (ad esempio extra-sysclean).
Aggiunta di un driver E' possibile aggiungere solo driver per schede di rete e controller. Per aggiungere un driver è sufficiente creare una cartella contenente i file nella cartella relativa al tipo di driver (Net o SCSIAdapter) come indicato in Figura 1.
Per quanto riguarda i driver dei controller questi vengono aggiunti da BartPE utilizzando il file txtsetup.oem. E' possibile editare questo file ed escludere i driver non utilizzati dalla sezione [SCSI].
Per maggiori informazioni si veda il seguente link: http://www.nu2.nu/pebuilder/help/english/drivers.htm.

Figura 1
Creazione di un plugin
La filosofia che sta alla base della realizzazione di un plugin è quella di configurare la shell creata da Bart Lagerweij, tramite appositi file di plugin che si occupano anche di simulare l'installazione delle applicazioni copiando i file necessari e configurando il registro. L'esecuzione delle applicazioni avviene facendo uso di un RamDisk per consentire alle stesse di creare file ove necessario.
I plugin sono file inf in formato ascii con un'intestazione e alcune sezioni che permetteranno l'installazione di applicazioni quando verrà creato l'ambiente Windows o la personalizzazione di quest'ultimo.
Di seguito vengono presentate le sezioni necessarie per la realizzazione di un plugin per il tool SysClean di TrendMicro.
L'intestazione deve avere il seguente formato:
; sysclean.inf
; PE Builder v3 plug-in INF file for Trend Micro Sysclean
; Created by Ermanno Goletto
[Version]
Signature= "$Windows NT$"
Tramite questa sezione vengono impostati il nome del plugin, la sua abilitazione e un file di help.
[PEBuilder]
Name="Trend Micro Sysclean"
Enable=1
Help="sysclean.htm"
Questa sezione definisce le directory necessarie al plugin e deve rispettare il seguente formato: directoryID=dirname[, attribute]
Dove:
- directoryID rappresenta l'identificativo della directory:
| ID |
Directory |
Note |
| a-z |
directory dinamiche |
|
| 30000 |
PE Builder output root |
30001 e superiori sono usate dinamicamente da PE Builder |
| 1 |
\ |
System Root (sul CD è la cartella \i386 sull'hard disk è la cartella \minint) |
| 2 |
system32 |
|
| 3 |
system32\config |
|
| 4 |
system32\drivers |
|
| 5 |
system |
|
| 17 |
system32\drivers\etc |
|
| 20 |
inf |
|
| 21 |
Help |
|
| 22 |
Fonts |
|
| 24 |
msagent\intl |
|
| 124 |
WinSxS |
|
| 125 |
WinSxS\Manifests |
|
| 252 |
WinSxS\Policies |
|
- dirname è il nome della directory (nel caso contenga spazi deve essere racchiuso tra apici doppi "")
- attribute specifica come creare la directory:
- 0 (Default) definisce la directory.
- 1 Crea la directory nella System Root (\i386).
- 2 Crea la directory nella Root (\).
[WinntDirectories]
a="Programs\trendmicro",2
Questa sezione è utilizzata per la copia dei file necessari:
SourceDisksFiles[.build]
E' possibile avere sezioni diverse in base al sistema operativo con cui verrà creato il LiveCD (per ulteriori informazioni sui valori ammessi dall'opzione build si veda la sezione Variabili)
La sezione usa il seguente formato: filename=directoryID[, filenameRenamed][, attribute]
Dove:
- filename è il file da copiare
- directoryID è l'id della directory in cui copiare il file (vedere la sezione Sezione WinntDirectories).
- filenameRenamed è il file nome del file di destinazione se diverso da quello origine.
- attribute consente di abilitare/disabilitare alcune opzioni e può assumere i seguenti valori (il valore di default è 0):
- 1 Utilizzato per il controllo del plugin. Affinchè il plugin possa essere abilitato il file deve esistere nella stessa directory del file inf.
- 2 Non comprime il file.
- 4 Copia il file solo se esiste, in caso contrario non viene generato alcun errore.
- 8 Rinomina il file in caratteri maiuscoli. Quando si costruisce un'immagine ISO PE Builder rinomina i file in caratteri maiscoli (ciò è richiesto per eseguire il boot da CD).
[SourceDisksFiles]
files\sysclean.com=a,,1
files\lpt$vpn.*=a,,1
sysclean.cmd=a,,1
Questa sezione è utilizzata per collegare un file ad un altro:
Append[.build]
E' possibile avere sezioni diverse in base al sistema operativo con cui verrà creato il LiveCD (per ulteriori informazioni sui valori ammessi dall'opzione build si veda la sezione Variabili)
La sezione utilizza il seguente formato Filename=FilenameToAppend
Dove:
- Filename è il file su cui i dati saranno collegati
- FilenameToAppend è il file che contiene i dati da collegare
Questa sezione viene utilizzata di solito per aggiungere una voce al menù della shell creata da BartPE contenuto nel file nu2menu.xml del plugin nu2menu che si occupa appunto di costruire il menù.
[Append]
nu2menu.xml, sysclean_nu2menu.xml
In questo caso il file sysclean_nu2menu.xml avrà il seguente contenuto:
In questo modo verrà creato nel gruppo Programs un menù item Trend Micro Sysclean che avvierà il file sysclean.cmd che viene riportato di seguito:
@Echo off
REM set default location on ramdrive
set sysclean=%ramdrv%\sysclean
if not exist %sysclean% md %sysclean%
xcopy /s "%systemdrive%\programs\sysclean\*.*" "%sysclean%\"
%ramdrv%
cd sysclean
sysclean
I campi stringa nel plugin possono utilizzare le seguenti variabili PE-Builder tramite la sintassi @variabile@:
| Variabile |
Significato |
| Program |
Nome del builder (Default PE-Builder) |
| Version |
Versione del builder |
| IsoFile |
Nome file e path dell'immagine ISO |
| OutDir |
Path dell'output directory |
| SourcePath |
Path della source directory |
| PluginDir |
Path della directory del plugin corrente |
| PluginFile |
Nome file e path del plugin corrente |
| Language |
Linguaggio corrente |
| Verbose |
Modalità Verbose (0=Off, 1=On) |
| Build |
Build di windows (2600=XP, 3790=2003 Server) |
Per realizzare plugin che necessitano di configurazioni più complesse come copia di intere directory, aggiunta di di chiavi di registro sono disponibili ulteriori sezioni e modifica dei file di plugin:
SourceDisksFolders section
Software.AddReg section
Software.DelReg section
SetupReg.AddReg section
Default.AddReg section
Default.DelReg section
AddLine section
DelLine section
SetValue section
Per informazioni più approfondite si faccia riferimento al seguente : Plugin file format
Il accetta le seguenti opzioni a linea di comando:
| Opzione |
Significato |
| -auto |
Avvia automaticamente il build. |
| -exit |
Chiude il tool al termine del build. Nel caso di errori durante il build pebuilder non viene chiuso. |
| -overwrite |
Sovrascrive le directory senza chiedere conferma. |
| -verbose |
Visualizza maggiori informazioni. |
| -skipregistry |
Salta il build dei file di registro. |
| -skipfiles |
Salta il build dei file, utile nel caso in cui si stiano testando modifiche che coinvolgono solo il registro. |
| -buildiso |
Costruisce o ricostruisce il file ISO nell'output directory, nel caso sia stato specificato tramite l'interfaccia grafica ne esegue anche la masterizzazione. |
Tramite queste opzioni è possibile creare il LiveCD tramite script dopo avere configurato drivers e plugins tramite l'interfaccia grafica. Questa possibilità può tornare utile nel caso sia necessario aggiornare file di alcuni plugin (ad esempio antivirus) prima di creare e masterizzare il LiveCd per esempio su un supporto riscrivibile.
A titolo viene riportato il batch Build.bat per l'aggiornamento dei file di Ad-Aware Lavasoft, SysClean Trend Micro e McAffee Virus Scan. Il funzionamento del batch presuppone che esso sia presente in una directory che contiene la directory del PEBuider e che in tale directory siano presenti i seguenti tool free come mostrato il Figura 2:
Figura 2
ECHO *** Update Ad-Aware ***
start /b /wait download.exe http://download.lavasoft.de.edgesuite.net/public/defs.zip /output:_
PEBuilder\plugin\adawarese\files /update /overwrite
unzip32 -u PEBuilder\plugin\adawarese\files\defs.zip -d PEBuilder\plugin\adawarese\files
start /b /wait download.exe http://download.lavasoft.de.edgesuite.net/public/sites.zip /output:_
PEBuilder\plugin\adawarese\files /update /overwrite
unzip32 -u PEBuilder\plugin\adawarese\files\sites.zip -d PEBuilder\plugin\adawarese\files
ECHO *** Update SysClean ***
del PEBuilder\plugin\Extra-sysclean\files\*.* /Q
start /b /wait download.exe ftp://ftp.antivirus.com/products/tsc/sysclean.zip /output:_
PEBuilder\plugin\Extra-sysclean\files
start /b /wait download.exe ftp://ftp.antivirus.com/products/pattern/lpt*.zip /newest /output:_
PEBuilder\plugin\Extra-sysclean\files
unzip32 PEBuilder\plugin\Extra-sysclean\files/*.zip -d PEBuilder\plugin\Extra-sysclean\files
ECHO *** Update McAffee Virus Scan ***
del PEBuilder\plugin\mcafee\files\*.* /Q
start /b /wait download.exe ftp://ftp.nai.com/CommonUpdater/sdat*.exe /output:_
PEBuilder\plugin\mcafee\files
FOR %%f IN (PEBuilder\plugin\mcafee\files\*.exe) DO %%f /e
ECHO *** Build ***
PeBuilder\pebuilder.exe -auto -buildiso -overwrite -exit
if errorlevel 1 echo *** Something was wrong ***
if errorlevel 1 pause
Con Windows Vista verrà rilasciata la versione 2.0 di Windows PE che sarà disponibile per tutti (e non solo a chi dispone di un contratto Microsoft Software Assurance come avviene per Windows PE per Windows XP) inoltre avrà a corredo strumenti per la preparazione e l'installazione di Windows Vista. Sarà altresì possibile avviare un sottoinsieme di Windows Vista da un supporto di rete o rimovibile.
Per maggiori informazioni si veda il seguente:
Panoramica su Windows PE 2.0 per Windows Vista
http://www.microsoft.com/italy/technet/windowsvista/deploy/winpe.mspx
(a cura di Ermanno Goletto)