giovedì 4 ottobre 2007

VirtualBox: compattare dischi virtuali ad espansione dinamica - guest Windows

Aggiornamento: il post resta validissimo per la comprensione tecnica del problema pertanto continuo a consigliarne la lettura, ma al momento di procedere è senz'altro più semplice usare CloneVDI.
_________________________________________________________________________

Nel prologo sull'argomento, abbiamo inquadrato il problema: quando liberiamo spazio sul disco rigido virtuale, il corrispondente file vdi che lo contiene sull'host non si ridimensiona di conseguenza: occorre forzarne il ridimensionamento con un apposito comando, modifyvdi, disponibile solamente dalla console a linea di comando dell'host attraverso il gestore di comandi di VirtualBox, VboxManage.

Purtroppo però ciò non è sufficiente, occorre che sia soddisfatto un pre-requisito: lo spazio libero sul guest deve essere marcato a zero (il valore, non la cifra) prima che il comando possa agire su di esso compattandolo. Questo perché quando cancellate un file, questi non viene realmente cancellato: semplicemente lo spazio che occupa viene dichiarato libero in una apposita tabella, in questo modo lo si può riutilizzare per scriverci nuovi file.

I settori del disco rigido quindi, contengono ancora i dati, ed è per questo che il comando modifyvdi non riesce a fare il suo lavoro: può infatti agire solo su spazio realmente vuoto e non su quello dichiarato semplicemente come tale. Occorre un programma che svuoti per davvero lo spazio dichiarato libero. Innotek a dire il vero qui è stata un po' latitante, tant'è che VirtualBox a differenza di prodotti analoghi, non ha uno strumento per marcare a zero i settori liberi del disco rigido virtuale.

In questo post, realizzato con il contributo di Michele Benvegnù, vediamo la soluzione a questo problema e la successiva compattazione del file vdi per guest Windows; nel prossimo post sull'argomento vedremo il tutto per guest Linux.

Si chiama SDelete ed è un programma di Mark Russinovich di Sysinternals. La sua funzione (tra le altre) è proprio quella di scrivere a zero i settori non utilizzati di un qualunque disco, compresi quelli virtuali di VirtualBox. Scaricate lo zip dall'indirizzo web http://www.microsoft.com/technet/sysinternals/FileAndDisk/SDelete.mspx direttamente dal guest, oppure dall'host in una cartella condivisa, così da renderla immediatamente disponibile anche al guest.

Scompattate il file nel guest, è lì che lo dovremo usare: quello che ci interessa è l'eseguibile sdelete.exe, un programma utilizzabile solo da linea di comando in quanto privo di front-end grafico.

Vediamo gli screenshot della situazione iniziale così da poter poi apprezzare anche visivamente le differenze. In fig. 1 vedete la situazione dello spazio sul guest.

Fig. 1 - Compattazione disco virtuale - spazio iniziale guest
fig. 1


Con un disco rigido di capacità massima di 20 GB, vi ho copiato sopra 4 GB di file tramite condivisione cartelle: ho copiato 6 volte con 6 nomi diversi la iso d'installazione di Ubuntu:

700 MB x 6 = ~ 4 GB

che sommati ai circa 1-1,2 GB dell'installazione di Windows, fanno circa 5,2 GB occupati di spazio disco occupato. Ed infatti lo spazio libero sul disco del guest è:

20 GB - 5,2 GB = 14,8 GB

Il file vdi sull'host (fig. 2) è appunto di circa 5,8 GB, quanto serve a contenere tutto il disco rigido virtuale.

Fig. 2 - Compattazione disco virtuale - spazio iniziale file vdi su host
fig. 2


Ora elimino (non cestino, ma elimino definitivamente, anche dal cestino) i sei file di Ubuntu nel guest, in fig. 3 la nuova situazione dello spazio sul guest.

Fig. 3 - Compattazione disco virtuale - spazio iniziale file vdi su host
fig. 3


Sono stati liberati i 4 GB e passa, quindi:

14,8 GB liberi + oltre 4 GB liberati = 18,9 GB liberi

Andate a controllare la situazione sull'host: come ci aspettavamo, non è cambiato nulla, il file vdi non si è ridimensionato di conseguenza e invece di scendere a soli 1-1,2 GB e rimasto di 5 e passa giga.


Ok, è il momento di far intervenire SDelete.

Aprite la finestra del DOS con: pulsante start --> Esegui --> scrivete cmd e date invio. Nella finestra DOS che si apre, date questo comando doppi apici compresi:

“C:\Documents and Settings\utente1\Desktop\sdelete.exe” -c C:

Nel frattempo il comando porta a termine il suo compito (fig. 4), potranno servire anche una decina di minuti a seconda del sistema che avete, vi spiego la sua sintassi:

- C:\Documents and Settings\utente1\Desktop\ è il percorso dove si trova SDelete, l'avevo messo sul Desktop del guest, sostituitelo con il percorso della cartella in cui avete messo SDelete sul vostro sistema guest;

- i doppi apici servono a causa dello spazio in Documents and Settings, se nel percorso della vostra cartella non vi sono spazi, potete ometterli;

- c è un flag che dice a SDelete di mettere tutti zero nei settori liberi del disco rigido virtuale;

- C: è il disco su cui agire.

Fig. 4 - Compattazione disco virtuale - comando SDelete
fig. 4


Se nel frattempo SDelete ha terminato, all'interno della finestra DOS sarà comparso un messaggio del tipo: Free space cleaned on C:. Spegnete la macchina guest.

E' arrivato finalmente il momento di compattare il file vdi sull'host: ora è possibile perché la precondizione che lo spazio libero sul disco rigido virtuale fosse marcata a zero è soddisfatta. Seguendo gli stessi passi fatti nella macchina guest, aprite una finestra DOS anche sull'host. Al suo interno date questo comando, doppi apici compresi:

"C:\Programmi\innotek VirtualBox\VBoxManage" modifyvdi “nomefile”.vdi compact

Mentre il comando fa il suo lavoro vi spiego anche qui la sintassi:

- intanto i doppi apici anche qui servono ove ci siano spazi vuoti. Normalmente la linea di comando interpreta gli spazi vuoti come la fine di qualcosa; se non mettiamo i doppi apici, C:\Programmi\innotek VirtualBox\VBoxManage non viene interpretata come una cosa unica ma viene presa solo la prima parte, cioè C:\Programmi\innotek e li si ferma dando errore.

- stessa cosa con il nome del file vdi (e mi raccomando, solo il nome, l'estensione .vdi NON deve essere compresa nei doppi apici). I doppi apici vanno messi solo se il nome del file vdi presenta spazi al suo interno;

- VBoxManage è il comando che lancia il manager a linea di comando di VirtualBox, serve a dare da linea di comando tutti i comandi che normalmente date dall'interfaccia grafica, e altri che l'interfaccia grafica non implementa ancora ma sono comunque disponibili da linea di comando;

- modifyvdi è il comando impartito a VBoxManage, gli dice che volete modificare il file nomefile.vdi;

- compact dice che la modifica che volete effettuare sul file vdi è la sua compattazione.

Nel frattempo la compattazione dovrebbe essere finita anche sul vostro sistema, in fig. 5 il risultato: come potete vedere, il file vdi è tornato all'incirca alle sue dimensioni iniziali.

Fig. 5 - Compattazione disco virtuale - dimensione file vdi dopo compattazione
fig 5


E se il sistema guest è Linux? I passi da fare sono i medesimi, lì vedremo nel prossimo post sull'argomento.

@:\> ... con il contributo di Michele Benvegnù (www.benvegnu.it)

mercoledì 3 ottobre 2007

VirtualBox: togliere/mettere il Blocco Maiuscole (Caps Lock)

Vi è mai capitato di avere le maiuscole inserite sull'host con blocco maiuscole (Caps Lock) nell'host e nel momento che passate al guest non riuscite a toglierle? E naturalmente il viceversa: non le avete nell'host e quando passate alla finestra del guest volete inserire il blocco maiuscole. Semplicemente non c'è verso di farlo.

Piccolo trucco per superare questa idiosincrasia di VirtualBox: impostate preventivamente nell'host la presenza o meno del blocco maiuscole. E se proprio ve ne siete dimenticati, tornate su una finestra qualunque dell'host, inserite/disinserite il Blocco Maiuscole e tornate nella finestra del guest, vi porterete dietro le impostazione fatte nell'host.

@:\>

Ma perché, Windows non è gratis?

Riflettevo (e certo, sotto la doccia! ;-D) su quanto mi diceva Eleonora (nome completamente inventato).

Eleonora a 17 anni frequenta il quarto anno del musicale, e ha una alfabetizzazione informatica che credo è della maggioranza delle persone che usano un computer: lo accende; lo usa per scaricare le foto dalla macchinetta digitale, masterizza qualche CD musicale, carica i suoi MP3 sull'iPod, naviga nel mentre scrive qualche e-mail, eventualmente (ma non sono sicuro) ha dei contatti su Messenger, qualche altra cosa che non so; lo spegne.

Che sia Vista, XP, Ubuntu, SUSE, Fedora o qualsiasi altro sistema operativo, le è completamente trasparente. Se le mostrassi qualche flame che ogni tanto parte fra sostenitori di questo sistema operativo contro i sostenitori di quel sistema operativo, sono sicuro mi guarderebbe con i suoi occhietti verdi e mi direbbe: “ma questi, sono pazzi?!?”

Quello che le interessa non è il particolare tecnico per realizzare ciò che le serve, ma che ciò che le serve, funzioni. Non gli frega un bel niente se per mettere i suoi MP3 sull'iPod serve iTunes che non gira su Linux, vuole comprare un PC, accenderlo, usarlo, spegnerlo; nient'altro! E questo lei come la stragrande maggioranza di coloro che usano un PC. Ed è giusto così.

Quando comprate un cellulare, volete che premendo un tasto dopo aver selezionato un numero, parta la chiamata e se dall'altra parte rispondono, si instauri la comunicazione. Nessuna sega sui protocolli GSM o UMTS, sulle variazioni del segnale o il passaggio da una cella (antenna) all'altra; il tutto pretendete che vi sia trasparente, voi volete telefonare, punto!

Ma fino a che punto si può portare avanti questo discorso? Fino al punto in cui Eleonora, parlando di Windows e delle sue differenze con Linux, mi dice: “ma perché, Windows non è gratis?”.

@:\>

VirtualBox: cartelle condivise in guest Windows (2a parte)

Nel post “VirtualBox: cartelle condivise in guest Windows (1a parte)” abbiamo visto come era possibile aggiungere cartelle condivise alla macchina virtuale spenta. In questo post invece vedremo come farlo quando la macchina virtuale è già accesa, e come nulla ci obblighi a condividere singole cartelle: condivideremo infatti l'intero hard disk dell'host! Cominciamo.

Avviate la macchina virtuale Windows e cliccate sul menù Dispositivi --> Cartelle condivise... della finestra di VirtualBox (fig. 12).

Fig. 12 - VirtualBox cartelle condivise - Creazione a macchina virtuale accesa
fig. 12


Si aprirà la finestra di dialogo di Cartelle condivise, cliccate sul pulsante indicato dal mouse per aggiungere una nuova cartella (fig. 13).

Fig. 13 - VirtualBox cartelle condivise - Aggiunta nuova cartella da condividere
fig. 13


Dalla finestra Aggiungi condivisione che si aprirà, cliccate sul pulsante indicato dal mouse per trovare la posizione sull'host della cartella da condividere (fig. 14).

Fig. 14 - VirtualBox cartelle condivise - Percorso cartella
fig. 14


Indicate in Nome cartella (fig. 15), il nome con cui volete sia vista nel guest la cartella condivisa. Notate la spunta nel checkbox di Make Permanent (che strano, deve essere sfuggita la traduzione di questa voce), sta ad indicare che la cartella verrà condivisa in maniera permanente: tra un'accensione e l'altra della macchina virtuale, la condivisione della cartella non andrà persa.

Se invece vi interessa condividere la cartella solo per questa sessione di lavoro, togliete il segno di spunta. La cartella sarà una cartella transiente, ossia allo spegnimento della macchina la condivisione andrà persa. Quando avete finito, cliccate su OK per proseguire.

Fig. 15 - VirtualBox cartelle condivise - Nome cartella e scelta permanente
fig. 15


La cartella apparità nell'elenco di quelle condivise (fig. 16),
cliccate su OK per terminare.

Fig. 16 - VirtualBox cartelle condivise - Cartella condivisa aggiunta
fig. 16


Tornate in Risorse del computer e premete F5 se occorre: comparirà la cartella appena condivisa fra le Risorse di rete (fig. 17). Ricordate però: compare fra le risorse disponibili in rete, ma non state utilizzando davvero la rete che è disattivata (fig. 3 e relativo testo nella prima parte del post).

Fig. 17 - VirtualBox cartelle condivise - Cartelle condivise in Esplora risorse
fig. 17


Come accennato all'inizio del post, vediamo infine come poter condividere l'intero disco rigido dell'host.

Aggiungete una nuova cartella da condividere come in fig. 13, ma al momento di sceglierla, scegliete l'intero disco rigido dell'host come in fig. 18 dove è già selezionato.

Notate un'altra cosa di fig. 18: il pulsante Crea nuova cartella indicato dal mouse. Grazie ad esso potrete creare una nuova cartella direttamente sull'host. Quando avete finito, cliccate su OK per continuare.

Fig. 18 - VirtualBox cartelle condivise - Aggiunta hard-disk host
fig. 18


Come potete verificare in fig. 19, state per condividere l'intero disco rigido dell'host e se volete che questa condivisione sia permanente, lasciate selezionato Make Permanent, poi cliccate 2 volte di seguito sui 2 pulsanti OK che compaiono per terminare.

Fig. 19 - VirtualBox cartelle condivise - Aggiunta hard-disk host terminata
fig. 19


Ed ecco il risultato finale: l'host Windows che condivide l'intero disco rigido con il guest anch'esso Windows.

Fig. 20 - VirtualBox cartelle condivise - Hard disk host in Esplora risorse
fig. 20


Abbiamo terminato per quanto riguarda la condivisione di cartelle con guest Windows. Nel prossimo post sull'argomento vedremo come condividere cartelle con guest Linux.

@:\>

martedì 2 ottobre 2007

Virtualizzazione: un ponte fra le persone

Ero sotto la doccia mentre pensavo alla virtualizzazione. Si sii, lo so, ci sono tante altre cose belle da fare sotto la doccia: fischiettare, cantare, coccolarsi e farsi coccolare, e via dicendo. Però in quel momento mi è venuta in mente la virtualizzazione: e mi è apparsa l'immagine di un ponte.

Un ponte che collega sistemi operativi diversi, che permette loro di interagire, di girare l'uno nell'altro, di non chiudersi nel loro box, piccolo o grande che sia (a seconda della base di utenti). Eppure il ponte è solo apparentemente fra sistemi operativi e programmi diversi. In realtà la virtualizzazione getta un ponte fra diverse filosofie di utilizzo, fra diverse modi di concepire, costruire e utilizzare gli strumenti informatici. Strumenti informatici usate da persone.

Ed ecco allora: la virtualizzazione è un ponte fra le persone.

Persone che amano fare cose diverse, con strumenti diversi, per assecondare passioni diverse. Ma provano gli strumenti dell'altro, toccano con mano, fanno un giro all'interno della filosofia dell'altro, e si confrontano e scambiano. E così si arricchiscono l'un l'altro.

I ponti sono necessari per permettere a ognuno di stare nel suo, ed allo stesso tempo attraversare quel ponte e conoscere l'altro se vogliamo. I ponti sono collegamenti sottili ma potenti a disposizione di ognuno, la virtualizzazione è un ponte.

Attraversiamolo.


@:\>

Radiohead: musica ad offerta

Segno della wikinomics che avanza, sempre su Punto Informatico leggo di questa meravigliosa iniziativa dei Radiohead. In poche parole hanno deciso di saltare completamente la catena distributiva della major e distribuirla direttamente: e fin qui nulla di nuovo.

La vera novità è il prezzo: ad offerta!

Si, difficile a credersi ma non esiste un prezzo prefissato da pagare per scaricare, si può offrire liberamente quanto si crede. E se proprio non siete convinti, allora scaricate gratis e tornate dopo aver ascoltato la loro musica per la vostra offerta.

Nell'articolo maggiori particolari; buona lettura.

@:\>

Blade Runner

"Io ho visto cose che voi umani non potreste immaginarvi. Navi da combattimento in fiamme al largo dei bastioni di Orione... e ho visto i raggi B balenare nel buio vicino alle porte di Tannhauser. E tutti quei momenti andranno perduti nel tempo come lacrime nella pioggia. È tempo di morire."

Uno dei momenti più intensi di un film meraviglioso.

Volevo segnalarvi un articolo intitolato "Il ritorno di Blade Runner" su Punto Informatico, con dei video e le ultime novità sulla terza versione del film ormai in uscita.

@:\>

PDF-XChange Viewer: sostituiamo Acrobat Reader

Nel post "Adobe Acrobat Reader: vulnerabilità grave" vi segnalavo una grave vulnerabilità del lettore di Adobe. La cosa ora sta prendendo contorni un pò più definiti: leggo infatti che il problema affligge Windows XP SP2 e Windows 2003 Server con sopra IE7 e Adobe Reader 8.1, 8.0 e 7.

Anche Foxit Reader che usavo personalmente ne è afflitto, ma in questo caso l'utente che ha aperto il documento deve poi anche interagire con lo stesso perché l'exploit si attivi. Nei commenti ad "Adobe Acrobat Reader: vulnerabilità grave", Michele Benvegnù invitava a provare anche un altro lettore di file pdf.

Si tratta di PDF-XChange Viewer
(fig. 1).

Fig. 1 - PDF XChange Viewer - Spash screen
fig. 1


oltre a non essere segnalato fra quelli affetti dal bug (ma questo non vuol dire che non lo sia), è comunque davvero carino per le funzionalità che offre. Fra le altre :

- aggiunta di annotazioni, commenti e disegni direttamente nel pdf
(fig. 2) scegliendoli dalla barra che vedete a sinistra del programma;

Fig. 2 - PDF XChange Viewer - Schermata principale
fig. 2


- evidenziazione di testo e oggetti, come fareste con l'evidenziatore su un foglio di carta e con la possibilità ovviamente di toglierla con facilità(fig. 3);

Fig. 3 - PDF XChange Viewer - Evidenziazione del testo
fig. 3


- salvataggio dei documenti oltre che in pdf, anche come immagine a scelta fra una caterba di formati supportati, fra cui i classici png, jpeg e gif giusto per dirne alcuni (fig. 4);

Fig. 4 - PDF XChange Viewer - Salvataggio PDF come immagini
fig. 4


- estrazione del testo dal pdf per un comodo copia-incolla in altri documenti.

Per molte di queste funzionalità
con Adobe bisognerebbe sborsare alcune centinaia di euro per l'acquisto di Adobe Acrobat Standard o Professional, qui sono disponibili gratis. In questo periodo sto studiando per il corso di certificazione LPI Linux dal pdf del corso, e poter fare direttamente sul documento evidenziazioni, sottolineature, aggiunta di commenti proprio come se scrivessi con la matita sul foglio di un libro stampato, è di una comodità incredibile.

Dulcis in fundo, è perfettamente virtualizzabile con SVS (come riva11 aveva segnalato, Acrobat Reader rompe il layer di SVS), pertanto, anche se non credo tornerete indietro una volta provato PDF-XChange Viewer, se proprio volete toglierlo almeno il vostro Windows resterà pulito come prima dell'installazione.

@:\>

lunedì 1 ottobre 2007

VirtualBox: compattare dischi virtuali ad espansione dinamica - prologo


Quando create il disco rigido della vostra macchina virtuale, VirtualBox crea un file sull'host con un nome del tipo C:\Documents and Settings\VostroNomeUtente\.VirtualBox\Machines\NomeMacchinaVirtuale.vdi
Su di esso viene salvato tutto il contenuto del disco rigido della macchina virtuale; una cosa del genere l'abbiamo già vista nei post relativi all'installazione di Linux direttamente da Windows.

Oltre a supportare con alcune restrizioni il formato aperto VMDK, VirtualBox utilizza soprattutto il formato proprietario VDI, tramite cui può creare 2 tipi di dischi rigidi virtuali:

- a dimensione fissa;
- ad espansione dinamica.

Rivediamo rapidamente cosa sono: supponendo di aver creato un disco rigido virtuale di 10 GB, nel primo caso sul vostro host viene creato subito un file della stessa dimensione, 10 GB. Non è la cosa migliore quando abbiamo poco spazio perché non abbiamo ancora installato nulla e già abbiamo tanto spazio occupato; in compenso le prestazioni sono migliori perché non si perde tempo ad allocare ed eventualmente modificare le dimensioni del file vdi, lo si fa una volte per tutte all'inizio.

Nel secondo caso invece, nel sistema host viene creato un file che inizialmente è di piccole dimensioni, pochi KB, e che cresce man mano serve ulteriore spazio durante l'installazione del sistema operativo, degli applicativi, o comunque durante il normale uso del sistema virtualizzato.

Lo spazio disco sull'host in questo modo non viene sprecato, ne viene sempre allocato esattamente quanto ne serve in quel momento al disco rigido guest, ma le prestazioni sono, sia pur di poco, inferiori rispetto ai dischi rigidi virtuali a dimensione fissa proprio per via di questa ulteriore attività di allocazione al volo ogni volta che serve più spazio al sistema guest.

Questa soluzione però non è tanto dinamica quanto si potrebbe pensare:
quando cancelliamo dati dal disco rigido virtuale, il corrisponte file vdi sulla macchina host non si restringe, ma rimane della dimensione massima sino a quel momento raggiunta.

Facciamo un esempio per capirci: dopo avere installato un guest Windows (ma la cosa è analoga con guest Linux) con un Office e gli altri programmi che ci possono servire, dalle proprietà del disco rigido nel sistema guest ci accorgiamo che l'occupazione di spazio è 3 GB: il file vdi sull'host sarà all'incirca della stessa grandezza. Se scaricate 4 GB di file da Internet, o li copiate dall'host tramite la condivisione (un file ad esempio di 4 GB potrebbe essere la iso di una distribuzione Linux), nel disco rigido virtuale vedrete salire l'occupazione dello spazio a 7 GB, e così il file vdi.

Ora viene il bello (meglio dire, il brutto): se cancellate questo file e vuotate il cestino nel guest, l’occupazione di spazio nel guest torna a 3 GB, ma il file vdi sull'host rimane di 7 GB!

Per risolvere questo problema è necessario “compattare” il file vdi tramite il comando modifyvdi, disponibile solamente dalla console a linea di comando attraverso il gestore di comandi VboxManage di VirtualBox stesso.

Con il contributo di Michele Benvegnu, che già qui aveva raccolto un po' di idee e soluzioni, nel prossimo post sull'argomento vedremo concretamente come fare nel caso di guest Windows, nei successivi il caso di guest Linux.

@:\>

________________________________________________________________________

Aggiornamento: attualmente sia su Windows che Linux per la compattazione di file VDI è più semplice e ricco di opzioni l'uso di CloneVDI.

Bentornato autunno

Spesso succede di alzarmi molto presto, diciamo le 4 del mattino.
E' un'ora magica: c'è qualcosa nell'aria, un'energia molto particolare, fine, sottile, penetrante ma leggera, che ti arriva fin nel cervello e all'istante ti snebbia la mente senza forzare: semplicemente sei sveglio.

E così, anche questa mattina sono salito sul terrazzo che ho la fortuna di poter usare in questo periodo, e ho respirato a pieni polmoni: un'aria sottile, penetrante ma gradevole e tranquilla mi ha riempito, seguita da uno strano profumo: qualcosa di vago ma familiare, e ho continuato a respirare. La memoria olfattiva è potente, a volte un profumo può farci tornare indietro fino all'infanzia in un istante.

Mi sono ritrovato a ricordare della mia infanzia, di quando il primo ottobre era il giorno in cui cominciavano le scuole (frequentavo le elementari), di quando le stagioni si presentavano regolari e sempre uguali, di quando ottobre era il mese dei funghi e con mio zio andavamo nel bosco a cercarli.

Ecco cosa mi ricordava quell'odore: è l'odore delle foglie bagnate del sottobosco che cominciano a trasformarsi nell'humus che nutrirà la terra per l'anno a venire. E' stato un momento dolce di incontro con me stesso, di chi sono e di chi sono stato, l'io bambino e l'io adulto, uniti da un ricordo lontano ma vivo, in qualche modo sempre presente, dell'autunno che vive e porta un tepore dolce e avvolgente.

Bentornato autunno, non lo sapevo, ma ti stavo aspettando.

@:\>