Automatizzare la creazione di un backup del contenuto delle unità USB

Le chiavette USB sono comunemente utilizzate per la memorizzazione delle tipologie di dati più disparati.
Automatizzare la creazione di un backup del contenuto delle unità USB

Le chiavette USB sono comunemente utilizzate per la memorizzazione delle tipologie di dati più disparati. Di solito vengono impiegate come memorie esterne per salvare e trasportare comodamente, altrove, file e documenti personali. In alcuni casi, le stesse unità USB vengono sfruttate come vere e proprie “cassette degli attrezzi informatici” salvando, al loro interno, utilità, applicazioni e distribuzioni Linux per la gestione, la manutenzione del sistema e la risoluzione dei problemi.

Ecco alcuni esempi di possibili utilizzi:

Qualora si volessero provare altre metodologie per la creazione di chiavette USB di boot, è tipicamente necessario riformattare l’unità di memorizzazione.
In Rete sono disponibili alcune utilità che consentono di creare una copia di backup dell’intero contenuto della chiavetta USB. Il contenuto dei file di backup potrà poi essere ripristinato all’occorrenza.

Le chiavette USB, inoltre, non sono eterne. Memorizzare file importanti su uno di tali supporti senza effettuare backup regolari può essere rischioso perché, alla lunga, si potrebbero sperimentare perdite di dati legati a malfunzionamenti dell’unità. A tal proposito, è interessante questo studio accademico su una serie di drive flash che ben mette in luce il problema dell’affidabilità.
Alcuni supporti, poi, possono iniziare a presentare problemi dopo un numero non particolarmente elevato di operazioni di scrittura. Emblematica la dichiarazione di qualche anno fa del portavoce di una famosa azienda che commercializza, tra gli altri prodotti, anche chiavette USB: “in condizioni ottimali, i nostri drive flash USB possono essere usati sino a 10 anni o più se impiegati come un CD-R (ovvero in sola lettura, n.d.r). Se usati come un CD-RW (effettuando quindi frequenti operazioni di scrittura, n.d.r.) la vita delle nostre unità è estremamente variabile“. Si pensi soltanto che la scrittura di un dato in una memoria flash richiede la cancellazione e la successiva riscrittura di un intero blocco (da 128 Kb a 256 KB). Qualora si volesse, ad esempio, scrivere un file da soli 6 KB, potrebbe quindi essere necessario intervenire su un blocco flash ampio 256 KB.

USB Image Tool è una della utility migliori sulla piazza: il programma, come requisito essenziale, necessita della presenza del framework .Net 3.5 sul sistema in uso. Dichiarato compatibile con Windows XP e Windows Vista, ne abbiamo verificato la piena funzionalità anche sul più recente Windows 7.

Il programma è dotato sia di una comoda interfaccia, sia di un componente basato su riga di comando. Per utilizzare USB Image Tool, è sufficiente estrarre il contenuto dell’archivo Zip in una cartella su disco fisso. L’interfaccia grafica (GUI) del software si avvia semplicemente facendo doppio clic sul file eseguibile USB Image Tool.exe. Indispensabile, in questo caso, la presenza – nella medesima directory – della libreria usbit32.dll.
L’interfaccia basata su riga di comando (usbitcmd.exe), invece, non richiede né il .Net framework né il file usbit32.dll.

Facendo doppio clic sul file USB Image Tool.exe, verrà immediatamente presentata la finestra principale dell’applicazione: USB Image Tool mostra l’elenco delle unità USB correntemente collegate al personal computer.

Per ciascun supporto di memorizzazione vengono esposte una serie di informazioni: nome dell’unità, identificativo, numero di serie, percorso, locazione, lettera di unità assegnata da Windows, etichetta, file system, spazio libero ed utilizzato. Nel caso in cui un’unità USB non dovesse comparire in elenco, sarà sufficiente cliccare sul pulsante Rescan.
Va precisato che USB Image Tool non consente di effettuare solamente il backup del contenuto di unità USB ma anche delle schede di memoria.

Particolare attenzione va risposta sull’impostazione selezionata nel menù a tendina in alto: a differenza di Volume mode, l’opzione Device mode consente di richiedere il backup di tutto il contenuto del supporto USB, compreso il settore di boot. Allorquando si intenda realizzare una copia di backup di una penna o di un disco USB avviabile, l’opzione da scegliere è quindi proprio Device mode. Diversamente, USB Image Tool produrrà una copia dei file memorizzati nell’unità ma non delle informazioni che ne permettono il boot all’avvio del sistema. L’opzione Device mode va selezionata anche quando l’unità USB contenga più di una partizione. Volume mode, infatti, si limita a copiare il contenuto della prima partizione presente nell’unità. Al momento, tuttavia, Windows limita ad una il numero delle partizioni che possono essere presenti in un’unità USB flash: l’impiego dell’opzione Device mode, quindi, è da limitarsi alle situazioni in cui si ha a che fare con un’unità USB avviabile al boot del personal computer.

In Windows Vista così come in Windows 7, per avere la possibilità di accedere all’utilizzo della modalità Device mode, è indispensabile avviare USB Image Tool con i diritti amministrativi. Per far ciò, è necessario fare clic con il tasto destro sul file USB Image Tool.exe quindi scegliere il comando “Esegui come amministratore“.

Dopo aver selezionato l’unità USB e cliccato sul pulsante Backup, USB Image Tool richiede di indicare la cartella dove salvare il file contenente il materiale presente nell’unità. Al file generato da USB Image Tool sarà assegnata l’estensione .img (o .ima). Il formato ISO non è adatto per la creazione di file d’immagine del contenuto di unità USB perché è differente il file system impiegato (ad esempio, ISO9660 o UDF). Per visionare il contenuto di un file .img senza ripristinarlo in un’unità USB, esistono comunque numerosi programmi tra i quali lo “storico” “WinImage” (trial 30 giorni). In alternativa, come spiegato più avanti, si può ricorrere ad un comodossimo software quale OSFMount che s’incarica di “montare” il file e di renderlo accessibile da parte del sistema operativo così come da qualunque delle applicazioni installate.

Il file d’immagine prodotto da USB Image Tool avrà dimensioni pari a quelle dell’unità USB. Non importa se lo spazio effettivamente occupato su tale unità fosse inferiore all’effettiva capacità della stessa: la “fotografia” scattata da USB Image Tool può essere pensata come una copia speculare dello stato del supporto di memorizzazione.

La scheda Favorites consente di informare USB Image Tool circa l’esistenza di uno o più file d’immagine precedentemente creati e memorizzati su disco. Utilizzando il pulsante Restore, si potrà velocemente ripristinarli.

Per ripristinare il contenuto di un file d’immagine generato ricorrendo ad USB Image Tool, è sufficiente avviare il programma, selezionare l’unità USB di destinazione, cliccare sul pulsante Restore ed indicare il file .img od .ima.

Automatizzare il backup mediante l’uso di un semplice script

Gli utenti più smaliziati possono usare la vesione di USB Image Tool basata su riga di comando, ad esempio, per effettuare dei backup programmati.

Il comando usbitcmd l consente di ottenere la lista delle unità USB connesse al sistema. Importante, in questa fase, annotare il numero identificativo associato all’unità USB d’interesse (colonna Device).

Digitando, ad esempio, usbitcmd d 1234 si possono ottenere tutti i dettagli relativi all’unità indicata (sostituire 1234 desunto in precedenza).
Digitando, ad esempio, usbitcmd b 2380 USBDRIVE.imz /c si creerà il backup del contenuto dell’unità USB 2380, in formato compresso (file USBDRIVE.imz).
Aggiungendo lo switch /d si può richiedere l’impiego della modalità “Device mode” (backup di unità disco avviabili). In questo caso, tuttavia, il prompt dei comandi di Windows dovrà essere aperto con i diritti di amministratore.
Ricordiamo che la compressione dei dati può richiedere molto tempo per poter essere portata a completamento.

Per automatizzare la procedura di creazione del backup del contenuto dell’unità USB, abbiamo provveduto a sviluppare un semplice script VBS. Per usufruirne, è sufficiente copiare il file usbitcmd.exe nell’unità USB e, nella stessa directory, creare un file VBS contenente il codice di seguito riportato:

' estrae la lettera identificativa dell'unità dal quale lo script è eseguito:
Set fso = WScript.CreateObject ("Scripting.FileSystemObject")
strCurrentDrive = left(fso.GetAbsolutePathName("."),2)

' prepara l'esecuzione del comando "usbitcmd l":
Set objShell = CreateObject("WScript.Shell")
strCommand = "usbitcmd l"
Set objExecObject = objShell.Exec(strCommand)

Do While Not objExecObject.StdOut.AtEndOfStream
	' legge ciascuna riga dell'output del comando "usbitcmd l":
	strResult = objExecObject.StdOut.ReadLine()
	
	' estrae l'id corrispondente all'unità dal quale lo script è eseguito (variabile deviceid):
	if instr(strResult,strCurrentDrive)>0 then
		pospipe=instr(strResult,"|")
 deviceid=trim(mid(strResult,1,pospipe-1))
	end if
Loop

backup_file = "%userprofile%\Documenti\backupusb_"& deviceid &".imz"
messaggio = "Verrà effettuato il backup dell'unità "& strCurrentDrive &"."&vbcrlf& _
		"Non rimuovere tale supporto sino alla comparsa del messaggio ""Backup completato""."& vbcrlf & vbcrlf & _
		"Il file di backup verrà salvato nel seguente percorso:"& vbcrlf & backup_file & vbcrlf & vbcrlf & _
		"Si desidera veramente procedere con il backup?"
Return = MsgBox(messaggio,4,"Attenzione")
if Return=6 then
	' esegue il backup del contenuto dell'unità usb:
	strCommand = "usbitcmd b "& deviceid &" "& backup_file &" /c"
 Return = objShell.Run (strCommand,0,true)

	WScript.Echo "Backup completato"
end if

Set objShell = Nothing
Set objExecObject = Nothing

Lo script VBS provvede, innanzi tutto, a stabilire l’unità disco dalla quale il file è stato avviato (righe 2-3). Il passo seguente, consiste nell’esecuzione del comando usbitcmd l dalla cartella corrente in modo da ottenere l’elenco delle unità USB connesse ed i relativi codici identificativi (righe 6-8).
Il ciclo do ... loop (righe 10-19) provvede a leggere ciascuna riga dell’output restituito dal comando usbitcmd l. Non appena viene rilevata la lettera identificativa corrispondente all’unità corrente, lo script estrae il relativo “device ID” (riga 17).

Dopo la visualizzazione di una finestra di dialogo attraverso la quale si potrà confermare o meno l’avvio della procedura di backup, lo script invocherà il comando seguente:

usbitcmd b "& deviceid &"%userprofile%\Documenti\backupusb_"& deviceid &".imz /c

(righe 29-30).
Come si vede, viene richiesto un backup nella modalità Volume mode mentre l’uso dello switch /c permette di comprimere (formato .IMZ) l’archivio generato. Qualora non si volesse fruire della compressione, basterà rimuovere lo switch /c dalla riga 29 modificandola così come segue:

strCommand = "usbitcmd b "& deviceid &" "& backup_file

Aggiundo l’opzione /d si potrà invece effettuare un backup nella modalità “Device“: ciò significa, come detto, che il backup dell’unità sarà completo ed includerà anche il settore di boot.

Per ripristinare un backup prodotto con lo script VBS, si potrà ricorrere alla GUI di USB Image Tool: basterà selezionare l’unità USB di destinazione, cliccare sul pulsante Restore e scegliere il file di backup in formato .IMZ o .IMA. Va ricordato che l’unità USB sulla quale viene richiesto il ripristino deve essere la stessa oppure disporre di una capienza adeguata (non tutte le chiavette USB da 2 o da 4 GB possono memorizzare lo stesso quantitativo di dati).

Il contenuto del file di backup in formato .IMA può essere “montato” sul disco fisso ricorrendo ad un’utilità come OSFMount, presentata in questo articolo.
Per procedere, dopo aver installato ed avviato il programma, è sufficiente cliccare sul pulsante Mount New quindi selezionare il file .IMA cliccando sull’apposito pulsante, evidenziato in figura:

Di default, OSFMount non visualizza i file con estensione .IMA. Prima di portarsi nella cartella contenente il backup, suggeriamo quindi di digitare *.ima nella casella Nome file e premere il tasto Invio.

Cliccando su OK, il file di backup della nostra unità USB, in formato .IMA, sarà “montato” – nel nostro caso – come disco fisso virtuale e ad esso sarà immediatamente assegnata la lettera identificativa di unità E::

Accedendo alla finestra Risorse del computer si potrà esaminare, in qualunque momento, il contenuto dell’archivio di backup precedentemente prodotto.

Nel caso in cui si avesse a disposizione un file con estensione .IMZ (archivio compresso), il file .IMA conservato al suo interno dovrà essere estratto servendosi di un programma come 7-Zip.

Ti consigliamo anche

Link copiato negli appunti