lunedì 19 maggio 2008

VirtualBox snapshot (2a parte)

Nel post precedente eravamo arrivati al punto in cui era ormai chiaro il meccanismo degli snapshot di VirtualBox. Vediamone adesso un utilizzo concreto.

Supponendo che l'aggiornamento sia andato a buon fine, saremo noi a crearci dei problemi simulando l'incubo peggiore di ogni amministratore di sistema: il danneggiamento di un'intera installazione con un solo comando dato nel punto sbagliato e nella situazione sbagliata!

Fate ripartire la macchina virtuale, aprite la shell e date il comando (Fig. 15):

sudo rm -fR /*

Questo comando chiede da utente root, quindi con i massimi privilegi, di

- rimuovere (rm, remove),
- forzando la rimozione senza stare a scocciarci con troppi messaggi di avviso (f, opzione “force”),
- eliminando ciò che trova anche nelle sottodirectory (R, Recursive),
- partendo dal punto iniziale del filesystem (/, come C: in Window),
- tutti i file (*) che incontra.

Fig 15 - VirtualBox snapshot - comando di cancellazione intera distribuzione Ubuntu
Fig. 15


Partendo dall'inizio del filesystem e cancellando tutto ciò che incontra man mano che si addentra in ogni sottocartelle che trova, capite come questo comando nel tempo di un caffè avrà spianato la vostra intera installazione Linux la quale continuerà a funzionare in qualche modo, solo perché una parte dei file erano già caricati in memoria; i segni della devastazione sono comunque evidenti (Fig. 16).

Fig 16 - VirtualBox snapshot - primi segni della devastazione dopo comando di cancellazione
Fig. 16


Spegnete e riaccendete la macchina virtuale (Fig. 17), potrete constatare da voi che è ormai defunta.

Fig 17 - VirtualBox snapshot - messaggio di errore del bootloader Grub
Fig. 17


Prima di procedere al ripristino della macchina virtuale, aiutandoci con Fig. 18 ricapitoliamo un attimo la situazione e rispondiamo finalmente alla domanda su cosa siano Snapshot attuale e Stato attuale:

- Snapshot iniziale, il primo snapshot che abbiamo creato, contiene la macchina virtuale prima di effettuare l'aggiornamento;
- Snapshot attuale è il modo di VirtualBox di chiamare sempre l'ultimo snapshot creato, nel nostro caso è “Snapshot 2” e contiene la macchina dopo l'aggiornamento;
- Stato attuale contiene lo stato della macchina al momento dell'ultimo spegnimento, ossia la devastazione appena realizzata.

Ora finalmente ha un senso il messaggio “lo stato attuale differisce da quello memorizzato nello snapshot attuale”. Per forza: Snapshot attuale contiene la macchina virtuale subito dopo l'aggiornamento, perciò ancora funzionante, Stato attuale la successiva devastazione.

Fig 18 - VirtualBox snapshot - stato attuale differisce da snapshot attuale
Fig. 18


Per riavere funzionante la nostra macchina virtuale, dobbiamo allora ripristinare Snapshot attuale che in questo momento è “Snapshot 2”. Come fare? Dopo aver selezionato Stato attuale cliccate sul pulsante Ripristina lo snapshot attuale (Fig. 19).

Fig 19 - VirtualBox snapshot - ripristino snapshot attuale
Fig. 19


Pochi attimi e VirtualBox avrà ripristinato Snapshot attuale, provate a riavviare e vedrete il miracolo: la vostra macchina virtuale vive di nuovo!

Bene, supponendo che il nuovo Ubuntu sia di vostro gradimento e vogliate tenerlo, lo snapshot creato prima dell'aggiornamento oramai ha esaurito la sua funzione di punto di ripristino, possiamo eliminarlo.

Cliccate su “Snapshot iniziale”, poi sul pulsante Scarta snapshot (Fig. 20).

Fig 20 - VirtualBox snapshot - scarta snapshot
Fig. 20


Ci vorrà un po' mentre VirtualBox elimina lo snapshot (Fig. 21), questo perché non lo elimina realmente, ma fa un'operazione di “cucitura” fra i vari file .vdi creati durante la creazione degli snapshot.

Anche la scritta che appare durante l'operazione, "preserving changes to normal disk “Ubuntu7_10.vdi”" (Fig. 21), lo dice chiaro: i cambiamenti della macchina virtuale prima contenuti in quello snapshot ed il relativo file .vdi, vengono ora preservati all'interno del normale file .vdi che fa da disco rigido alla macchina virtuale.

Fig 21 - VirtualBox snapshot - fusione dello snapshot scartato con disco rigido normale
Fig. 21


Andiamo allora a controllare a livello dei file della macchina virtuale cosa è accaduto. E infatti uno dei due file .vdi nella cartella Snapshots è sparito (Fig. 22): il suo contenuto dovrebbe essere andato ad ingrossare il file .vdi del disco rigido normale della macchina virtuale; verifichiamo.

Fig 22 - VirtualBox snapshot - sparito file snapshot scartato
Fig. 22


Ed infatti il disco rigido normale che finora non si è era mai modificato, per la prima volta adesso risulta aumentato di dimensioni (Fig. 23); il contenuto del file .vdi mancante dalla cartella Snapshots è stato effettivamente “fuso” al disco rigido normale della macchina virtuale.

Fig 23 - VirtualBox snapshot - aumentate dimensioni file disco rigido normale
Fig. 23


A questo punto non è difficile immaginare cosa accade se scartate anche “Snapshot 2” (Fig. 24).

Fig 24 - VirtualBox snapshot - scarta Snapshot 2
Fig. 24


La cartella Snapshots è vuota (Fig. 25), l'ultimo file .vdi che ancora conteneva è stato anch'esso fuso al disco rigido normale.

Fig 25 - VirtualBox snapshot - cartella Snapshots vuota
Fig. 25


A questo punto non vi resta che cambiare il nome della macchina virtuale in accordo con la nuova versione di Ubuntu e avete finito.

Nel frattempo anche il nostro viaggio nel mondo degli snapshot di VirtualBox volge al termine. Ci rimane un'ultima domanda a cui dare risposta, era la terza delle tre che ci eravamo fatte all'inizio: quando NON utilizzare gli snapshot?

La risposta è semplice: MAI come backup di una macchina virtuale. Infatti per come abbiamo visto funzionano gli snapshot, non vengono create delle copie dei file della macchina virtuale ma solo uno “spezzettamento” di questi, dove ogni pezzo è un punto di ripristino. E' sufficiente che uno solo di questi pezzi si danneggi e la macchina virtuale non parte più, ne abbiamo file da prendere da qualche altra parte per sostituire quelli danneggiati.

Perciò ricordate: usate gli snapshot unicamente per creare rapidamente un punto di ripristino della macchina virtuale prima dei vostri smanettamenti. Quando arriva il momento di metterla al sicuro, fate un bel backup di tutti i suoi file da qualche altra parte, tipo un altro disco rigido dell'host, e questa volta sarete davvero al sicuro da eventuali problemi.

E' con questo è tutto, abbiamo finito.

Alla prossima.
@:\>