martedì 30 ottobre 2007

VirtualBox: compattare dischi virtuali ad espansione dinamica - guest Linux (3a parte)

Aggiornamento: attualmente per compattare file VDI è più semplice e ricco di opzioni l'uso di CloneVDI. ____________________________________________________________________

Ok, ripreso fiato? Bene, ora fate un altro bel respiro profondo. Se la 2a parte del post era faticosina, questa che è interamente da linea di comando lo è ancora di più. Ma siamo finalmente in dirittura d'arrivo, non vorrete fermarvi proprio adesso che siete ad un passo dal compattare i dischi rigidi ad espansione dinamica anche su guest Linux, vero? Su, forza, iniziamo. ;-)

Avete ancora la shell aperta? No? Riapritela, e preparatevi: porteremo Linux in modalità monoutente. Quasi che fosse un vecchio DOS, in modalità monoutente Linux non accetta più di un utente, è scollegato dalla rete, non ha interfaccia grafica, insomma, l'ideale per non avere rotture di scatole quando dobbiamo fare lavori di amministrazione molto profondi all'interno della macchina. Da shell date il comando

sudo telinit 1

che porterà la vostra macchina al runlevel 1. I runlevel in Linux specificano cosa deve essere in funzione e cosa no per ognuno di essi; portarsi a runlevel 1 permette appunto di rendere la macchina monoutente, tirar via tutto ciò che non serve per la sua amministrazione (interfaccia grafica, rete...) e lavorarci in tranquillità. Se tutto è andato bene, vi ritroverete in una schermata simile a quella di fig. 7. Date il comando

clear

per dare una bella ripulita allo schermo, e cominciate a guardarvi intorno: noterete, se guardate l'ultima lettera del prompt (#), che in questo momento siete amministratore della macchina.

Fig. 7 - Compattazione disco virtuale con zerofree - comandi per azzerare spazio libero
fig. 7

Ora date il comando:

df

Df permette di visualizzare dimensioni, spazio libero ed utilizzato di una data partizione, dato senza nessun argomento come sopra, ci mostra i dati di tutte le partizioni. In fig. 7 potete vedere il tipico risultato di un'installazione standard di Ubuntu.

La riga che ci interessa è la prima (la terza nello screenshot): nella prima colonna dice che esiste un dispositivo (/dev = device) che corrisponde al vostro disco rigido (/hda1), dopo un po' di dati sullo spazio occupato o meno, ci dice che è montato all'inizio del filesystem (estrema destra, la colonna “Montato su” e sotto “/”).

Non entro in ulteriori dettagli, vado al sodo: i dati che ci interessano sono la prima e l'ultima colonna, “/dev/hda1” e “/”. Quello che ora faremo è rimontare il vostro disco rigido in sola lettura, indispensabile per fare le operazioni che ci occorrono senza far danni. Date il comando:

mount -n -o remount,ro -t ext2 /dev/hda1 /

che tradotto significa: fai il mount, senza aggiornare il file mstab (-n), facendo il remount in sola lettura (remount,ro) come se fosse un filesystem di tipo EXT2 (-t ext2), del dispositivo /dev/hda1, rimontandolo in /, dove cioè si trovava all'inizio (l'ultima colonna del comando df, ricordate?). Per migliorare la leggibilità, in fig. 8 ho aggiunto io un riga vuota fra un comando e l'altro, se tutto va bene il comando in realtà non restituisce nulla. Ora date il comando:

fsck -f /dev/hda1

farete così un bel FileSystemChecK, un controllo approfondito del vostro disco, per assicurarvi che tutto è a posto. Se riscontrasse dei problemi e vi propone dei rimedi, accettateli, a meno di essere dei “filesystem guru” non riusciremmo a fare meglio di quanto propone. Quando ha terminato ed è tutto ok, date un bel

cd /root

per portarvi nella home dell'amministratore. Ricordate? E' lì che abbiamo messo zerofree: è arrivato il momento di usarlo. Prima però verifichiamo se tutto è posto sui permessi di esecuzione del file. Date il comando

ls -l

Se il risultato è qualcosa del tipo

-rw-r--r-- 1 root root

le cose NON sono a posto. Le lettere vanno lette a gruppi di tre a partire dal secondo carattere e significano che il file:

- ha attivi i permessi di lettura/scrittura (rw, read write) per l'utente root;
- ha attivo il permesso di lettura (r) per il gruppo root;
- ha attivo il permesso di lettura (r) per tutti gli altri.

Per tutti manca il permesso di esecuzione del file (sarebbe una x alla terza lettera di ogni gruppo di tre, invece c'è - che significa la sua assenza), aggiungetelo per tutti con il comando:

chmod +x zerofree

poi verificate che adesso sia tutto a posto con

ls -l

e dovreste avere qualcosa del tipo

-rwxr-xr-x 1 root root ...

con le x ad ogni terza lettera del gruppetto di tre. Bene, ora potete eseguirlo con il comando:

./zerofree /dev/hda1

Il comando dice a Linux di eseguire il programma zerofree cercandolo nella directory corrente (./) e di passare al programma il disco su cui agire (/dev/hda1). Sembrerà che non accada nulla ma in realtà il programma sta lavorando intensamente; guardate l'icona di attività dei dischi rigidi virtuali, in basso a destra sulla barra di stato della finestra di VirtualBox che contiene il guest, e ve ne accorgerete.

Quando zerofree avrà terminato il suo lavoro ricomparirà semplicemente il prompt: ridate il comando fsck -f /dev/hda1 per essere sicuri dell'integrità del disco rigido, infine spegnete la macchina virtuale con il comando:

halt

Sul guest è tutto.

Ora che le zone libere del disco rigido virtuale sono state segnate con valori zero da zerofree, sull'host non vi resta che dare il solito comando

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

ed avete terminato del tutto (per maggiori informazioni sul comando, leggete la fase 4 della 1a parte del post). Ricordate che i doppi apici che racchiudono nomefile servono solo se nomefile contiene degli spazi, altrimenti potete ometterli.

Anche per questa volta abbiamo finito. Per questa volta! Infatti nel prossimo post sull'argomento vedremo come fare tutto ciò per una distribuzione Mandriva e più in generale per una qualunque distribuzione Linux. Nei due post dedicati ad Ubuntu infatti, ho tirato via dritto sulle eventuali difficoltà incontrate indicandovi preventivamente cosa fare per evitarle.

Con Mandriva non faremo così: mi mostrerò quali sono i messaggi di errore che ho incontrato usando un'installazione di default della distribuzione, in fase di compilazione del programma zerofree per esempio, oppure i messaggi di fsck quando incontra un problema, e come farci guidare da questi alla ricerca della soluzione. Al prossimo post sull'argomento allora; a presto.

@:\>

lunedì 29 ottobre 2007

VirtualBox: compattare dischi virtuali ad espansione dinamica - guest Linux (2a parte)

Aggiornamento: attualmente per compattare file VDI è più semplice e ricco di opzioni l'uso di CloneVDI. ____________________________________________________________________

Come dicevo? “Ok, è tutto...”? E invece no. La soluzione proposta nella 1a parte del post era infatti si molto immediata, usava direttamente comandi Linux disponibili in tutte le distribuzioni, ma scarsamente efficiente, soprattutto nella gestione dello spazio disco sull'host. Vediamo questa volta una soluzione che usa un programma dedicato, zerofree: non può rivaleggiare in facilità con la precedente soluzione ma è estremamente più efficiente.

Zerofree ed è il frutto del lavoro di Ron Yorston e di un successivo miglioramento di the_camel; colgo l'occasione per ringraziarli entrambi. Proprio come SDelete per i guest Windows, anche zerofree va a cercare tutti i blocchi liberi del disco rigido virtuale e lì riempie con il valore zero. Funziona su filesystem EXT2 ed EXT3 (un filesystem è il tipo di organizzazione dei file sul disco rigido, Windows usa NTFS) che è la scelta di default della stragrande maggioranza delle distribuzioni Linux, e sicuramente della Ubuntu e della Mandriva che useremo come esempio.

In questo post ci occuperemo in particolare di Ubuntu; Mandriva la vedremo successivamente come esempio valido per qualunque distribuzione. Salvate le vostre macchine virtuali e iniziamo.

Andate sulla pagina di Ron Yorston e scaricate il file zerofree-1.0.1.tgz. Potete farlo direttamente dal guest dove lo dovremo usare, oppure dall'host e poi tramite la condivisione cartelle copiarlo nel guest Linux. Portate per comodità il file sul desktop e osservate (fig. 1): si tratta di un file .tgz, un formato compresso tipico di Linux (simile ai file jar di Java per fare un esempio) contenente il sorgente del programma: dobbiamo decomprimerlo e compilarne il contenuto.

Fig. 1 - Compattazione disco virtuale con zerofree - file tgz zerofree
fig. 1

Aprite la shell (Applicazioni --> Accessori --> Terminale) e portatevi nella directory del Desktop con il comando

cd Desktop

Attenzione al fatto che tutte le distribuzioni più recenti hanno tradotto Desktop con Scrivania, perciò se il comando non funziona verificate che non sia il vostro caso. Ora date il comando:

tar xvzf zerofree-1.0.1.tgz

Verrà creata la directory zerofree-1.0.1 come sottodirectory di Desktop (fig. 2), ed infatti comparirà la relativa icona sul Desktop.

Fig. 2 - Compattazione disco virtuale con zerofree - decompressione file tgz
fg. 2

Ora entriamo nella nuova directory con il comando:

cd zerofree-1.0.1.

Se date il comando ls per vederne il contenuto, troverete i due file che ci interessano: zerofree.c, il sorgente C del programma che dovremo compilare, e Makefile, contenente le istruzioni per il compilatore (il programma che a partire dal sorgente del programma crea il file eseguibile).

Ubuntu però (ed anche altre distribuzioni), nella sua installazione di default non ha gli strumenti essenziali alla compilazione di un programma. No problem: provvediamo subito. Visto che siamo già nella shell, approfittiamone per fare da qui l'installazione del pacchetto build essential che contiene ciò che cerchiamo:

sudo apt-get install build-essential

Accettate gli ulteriori pacchetti che eventualmente vi indicherà come necessari e proseguite. Se non amate lavorare dalla shell, o magari volete dare un'occhiata all'installer grafico di Ubuntu, Synaptic, allora Sistema --> Amministrazione --> Gestore pacchetti Synaptic (fig. 3).

Fig. 3 - Compattazione disco virtuale con zerofree - Ubuntu Synaptic
fig. 3


Con il comando Cerca in alto a destra (fig. 4) usate la stringa "build-essential" per cercare e selezionare il pacchetto d'installazione corrispondente, poi cliccate su Applica per installare il tutto. Accettate l'eventuale software aggiuntivo che vi verrà segnalato (le cosidette dipendenze) e proseguite.

Fig. 4 - Compattazione disco virtuale con zerofree - Ubuntu installa build essential
fig. 4


Ma non basta: manca ancora una libreria, la ext2fs, usatela come stringa in ricerca nel comando Cerca ed installate anche questa (il nome esatto è e2fslibs-dev, fig. 5).

Fig. 5 - Compattazione disco virtuale con zerofree - Ubuntu installazione libext2fs
fig. 5


Ok, ora siamo davvero pronti alla compilazione di zerofree. Dalla shell date il comando:

make

Tutto qua; pochi istanti ed il programma sarà compilato. Se date un ls nella shell, lo vedrete nella lista dei file contenuto all'interno della directory in cui vi trovate, oppure potete vederne l'icona dal file manager (fig. 6).

Fig. 6 - Compattazione disco virtuale con zerofree - compilato su Ubuntu
fig. 6


Benissimo, non ci resta che copiarlo nella cartella root dell'amministratore visto che è appunto uno strumento di amministrazione:

sudo cp zerofree /root

Che dite, ci vogliamo fermare un pò a riprendere fiato? Il prossimo post sull'argomento sarà davvero molto intenso... e tutto da linea di comando. ;-)


@:\>

venerdì 26 ottobre 2007

VirtualBox: su, sudo e cartelle condivise in guest Linux

Prologo: questo post riguarda tutte le distribuzioni Linux che usano il comando su invece che sudo come in Ubuntu per eseguire operazioni riservate all'amministratore di sistema. Come distribuzione di esempio è stata usata Mandriva 2008.

Dicevo qualche post fa che Mandriva è una delle distribuzioni che più mi piacciono fra quelle che non uso. Visti però i recenti problemi di installazione della openSUSE 10.3 in VirtualBox, ho deciso di farne la distribuzione da affiancare alla Ubuntu quando ci sono da fare esempi concreti nei post.

Una delle cose che inizialmente mi ha messo in difficoltà nell'usarla, è stata la differente gestione della modalità amministrativa rispetto ad Ubuntu. In poche parole Mandriva usa la modalità classica con il comando su che cambia la nostra utenza trasformandoci direttamente nell'amministratore; Ubuntu invece usa il comando sudo che eleva momentaneamente i nostri privilegi a quelli dell'amministratore restando però chi siamo.

Il comando sudo ha una serie di vantaggi rispetto a su: permette infatti un controllo molto più fine su quali attività amministrative l'utente può fare (scelte sempre dall'amministratore), usando direttamente la password utente: l'amministratore in questo modo non deve esporre la sua password ma può comunque concedere a determinati utenti la possibilità di fare cose che solo lui potrebbe. Ubuntu in realtà è andata oltre, disabilitando del tutto l'amministratore e usando solo il comando sudo per le attività amministrative; risulta comunque sempre possibile riattivare su con il comando sudo passwd root.

A seconda che la distribuzione usi il comando su oppure il comando sudo il comportamento della stessa cambia. Chi come Michele Benvegnù ha provato infatti a seguire quanto indicato nel post relativo alla condivisione cartelle su guest Linux, si è sicuramente accorto che le cose con Mandriva non funzionano. Vediamo allora come attivare il comando sudo per tutte le distribuzioni che, come Mandriva, di default usano il comando su.

Il file da modificare si trova in /etc e si chiama sudoers. Aprite la shell, in Mandriva e tutte le distribuzioni con l'interfaccia grafica KDE, si chiama Konsole (fig. 1), quando l'interfaccia grafica è Gnome si chiama Terminale (l'abbiamo visto in molti altri post con Ubuntu dove appunto si usa Gnome).

Fig. 1 - attivazione comando sudo - apertura konsole
fig. 1


Ora date i seguenti comandi (fig. 2):

cd /etc [invio]
su [invio]


Con questi comandi vi siete spostati nella directory etc e siete diventati amministratore (necessario per modificare il file sudoers altrimenti immodificabile per un utente normale).

Potete notare anche visivamente la differenza fra utente normale e amministratore: se guardate la forma del prompt, noterete che prima di dare il comando su, quindi utente normale, il prompt terminava sempre con $, dopo essere diventati amministratore la riga termina sempre con #. Quando non sapete se siete utente normale o amministratore, guardate l'ultimo carattere della riga: $ utente normale, # amministratore.

Ora date il comando:

visudo [invio]

Fig. 2 - attivazione comando sudo - comando visudo
fig. 2


Il contenuto del file sudoer si apre all'interno di un editor (fig. 3), fate molta attenzione: come avvisa anche la 3a riga del file, occorre usare esclusivamente il comando visudo per modificare sudoers. Questo perché quando salverete le modifiche, vengono eseguiti ulteriori controlli per evitare che errori di sintassi nel file taglino fuori tutti gli utenti del sistema.

Ora fate ancora più attenzione: l'editor in cui vi trovate funziona come vi (pronuncia vì ai): come utenti Windows non assomiglia a nulla di ciò che conoscete, perciò vi prego di fare esattamente come vi dico.

Prima cosa da sapere: ogni riga che inizia con il simbolo cancelletto #, è un commento (ogni file di configurazione di Linux è così, è una sua caratteristica generale, ricordatela).
Seconda cosa: vi, l'editor, ha due modalità di funzionamento: appena entrati, come in questo momento, è in modalità comando. Se scrivete una lettera adesso (non lo fate, per carità!), questa non comparirebbe come testo ma verrebbe interpretata come comando, perciò buoni e fermi, non premete nulla di più di quanto vi dico.

Ok, ora portate con i tasti freccia il cursore d'inserimento al punto dove lo vedete in fig 3 (il rettangolo chiaro sullo sfondo nero sul lato sinistra della schermata). Questo perché è in quel punto che vogliamo inserire del testo.

Fig. 3 - attivazione comando sudo - contenuto file sudoers
fig. 3


Premete il ":" (due punti) sulla tastiera. Vedrete il quadratino schizzare verso il fondo della schermata e lì comparirà il ":". Aggiungete la lettera "i" (fig. 4) e date invio.


Fig. 4 - attivazione comando sudo - modalità inserimento
fig. 4


Sia il ":" che la "i" scompariranno ma il cursore resterà sul posto. Siete entrati in modalità inserimento, e tutto ciò che da questo momento scrivete viene inserito come testo nel punto in cui si trovava inizialmente il cursore (ricordate? Nello spazio vuoto sotto la prima riga visibile in fig. 4). Bene, ora con la massima attenzione, date un invio, e anche se sembra non sia successo nulla, scrivete:

VostraUser ALL=(ALL) SETENV: ALL

dove al posto di "VostraUser" mettete il nome della vostra user, quella che usate per entrare nel sistema. Date un altro invio, poi premete il tasto Esc sulla tastiera. Dopo qualche attimo l'editor uscirà dalla modalità inserimento tornando alla modalità comando, e ciò che avete inserito comparirà magicamente al suo posto (fig. 5, la riga che inizia per gds, la mia user).

Fig. 5 - attivazione comando sudo - inserimento completato
fig. 5


A questo punto salvate il tutto e uscite dall'editor con il comando ":wq" e dando invio.

Se per qualche motivo doveste sbagliare, non allarmatevi: tornate in modalità comando con Esc e date il comando ":q!" seguito da invio. Uscirete dall'editor senza salvare, rientrate con il comando visudo e riprendete d'accapo.

Bene, se avete fatto tutto correttamente, ora il comando sudo è attivo anche per la vostra user. A questo punto non vi resta che seguire il post sulle cartelle condivise in guest Linux e vedrete che questa volta tutto funzionerà correttamente anche su Mandriva e le altre distribuzioni.

@:\>

giovedì 25 ottobre 2007

Compattazione dischi rigidi guest Linux: ci siamo

Buone nuove dal fronte compattazione dischi rigidi virtuali ad espansione dinamica: proprio ieri ho terminato le prove ed ora anche i guest Linux hanno la loro compattazione al pari dei guest Windows! :-D

Non mi resta che esporvi il tutto: si tratta solo di compilare il programma dal sorgente dopo aver installato tutte le dipendenze necessarie, lavorare come amministratore in modalità monoutente da linea di comando, smontare e rimontare filesystem... pauuraa eehhh?!?

Su su, tranquilli, sono qui apposta per mostrarvelo con semplicità e tante immagini; solo un pò di pazienza e sono da voi. Nel frattempo che cambio anche il titolo ai post già pubblicati, per renderlo più consono al contenuto (perciò se dovesse ricomparire nel vostro lettore di feed non ci fate caso), approfittatene per salvare la vostra macchina virtuale. Stavolta ci avvicineremo molto più del solito al cuore di Linux e lo faremo con grande cautela, ma prevenire è sempre meglio che curare. ;-)

@:\>

mercoledì 24 ottobre 2007

Adobe Acrobat Reader: vulnerabilità risolta

Tempo fa vi avevo segnalato una grave vulnerabilità di Adobe Acrobat Reader. Se non l'avete sostituito con l'ottimo PDF-XChange Viewer segnalato da Michele Benvegnù, allora è arrivato il momento almeno di aggiornarlo alla nuova versione 8.1.1 che risolve la vulnerabilità.

Fate attenzione: nel momento in cui scrivo, sul sito Adobe (www.adobe.it) è disponibile la versione aggiornata del player nella sola lingua inglese, quello di default proposto per noi utenti italiani è ancora la versione buggata 8.1. Nel frattempo lo traducono, un pensierino a PDF-XChange Viewer io lo farei! ;-)

@:\>

martedì 23 ottobre 2007

VirtualBox: struttura e backup delle macchine virtuali

In questi ultimi post, fra compattazione dei dischi rigidi ad espansione dinamica, condivisione di cartelle, sia per guest Windows che guest Linux, smanettamenti vari che continueremo a vedere nei prossimi post, è arrivato il momento di cominciare a prendere qualche precauzione, caso mai Murphy fosse nei paraggi. ;-)

Personalmente ho già perso un'intera installazione Linux mentre smanettavo per capire come compattarne il disco rigido virtuale. Vedremo perciò quel tanto che basta della struttura e dell'organizzazione dei file di VirtualBox sull'host, per capire dove mettere mano e salvare le nostre preziose macchine virtuali con tutte le loro configurazioni.

Questa organizzazione è per fortuna molto semplice. Di default VirtualBox crea una cartella .VirtualBox in C:\Documents and Settings\NomeUtente\ (fig. 1). Al suo interno ci sono: un file xml su cui sono salvate le impostazioni di VirtualBox stesso, e 2 sottocartelle, Machines e VDI su cui concentreremo un attimo la nostra attenzione.

Fig. 1 - Struttura cartella VirtualBox
fig. 1


Machines è la cartella che contiene le nostre macchine virtuali. Al suo interno troverete tante sottocartelle con lo stesso nome e nello stesso numero delle macchine virtuali (fig.2).

Prendiamo come esempio la cartella Ubuntu 7.04. Le configurazioni della macchine virtuali, ossia sistema operativo installato, memoria RAM e scheda video, disco o dischi rigidi collegati alla macchina virtuale e così via, sono salvate nel file NomeMacchinaVirtuale.xml.

La cartella Logs contiene invece i log di VirtualBox relativi alla macchina virtuale.

La cartella Snapshot è molto interessante: è qui che vengono salvati gli snapshot che sono un po' come i punti di ripristino di Windows. In realtà VirtualBox fa il furbetto e non salva realmente un'immagine dell'intera macchina virtuale, ma questo lo vedremo in un altro post.

Fig. 2 - Struttura cartella Machines
fig. 2


Se Machines contiene la macchina virtuale, la cartella VDI contiene il suo o i suoi dischi rigidi (per un massimo di 3): notate infatti come la macchina virtuale UbuntuTest ne abbia 2, UbuntuTest.vdi e UbuntuTest2.vdi.

E' qui dunque che viene salvato il file più importante: all'interno del file vdi è contenuto infatti tutto il disco rigido della macchina virtuale e quindi tutto il sistema operativo che vi è installato sopra. Ed è sempre questo il file di cui ci stiamo occupando nella serie di post dedicata alla compattazione di dischi rigidi ad espansione dinamica, citata all'inizio del post.

Fig. 3 - Struttura cartella VDI
fig. 3


Per mettere al sicuro le nostre macchine virtuali, possiamo allora fare così: copiare da qualche altra parte, l'ideale sarebbe un'unita di backup esterna, per esempio uno dei tanti dischi rigidi USB da collegare all'host, l'intera cartella .VirtualBox. Successivamente, ad ogni modifica importante del sistema operativo guest, per esempio l'aggiornamento da Ubuntu 7.04 a 7.10, salvataggio del solo file vdi della macchina virtuale interessata.

Naturalmente questa è una soluzione come dire, casalinga. Facile, immediata, senza tanti fronzoli, il suo limite più grande è che la macchina virtuale da salvare deve essere spenta. In un ambito home questo non dovrebbe essere un problema, ma in futuro non è da escludere qualche altro post sull'argomento per descrivere modalità di salvataggio un po' più sofisticate.

@:\>

lunedì 22 ottobre 2007

VirtualBox: cartelle condivise in guest Linux (4a parte)

Vi ricordate? Nella 3a parte del post concludevo dicendo che in fondo non è necessario fare il l'auto-mount della cartella condivisa alla partenza del guest Linux, e per la verità è anche meglio non farlo per almeno 3 motivi:

- occorre modificare dei file di configurazione all'interno di Linux da cui è sempre meglio star lontani;
- condividiamo ogni volta una cartella che magari ci serve solo ogni tanto;
- se vogliamo condividere un'altra cartella occorre riandare a cercare quel file, modificare le indicazioni della cartella condivisa al suo interno, salvare, riavviare la macchina virtuale per caricare la nuova cartella condivisa.

Troppo macchinoso?!? Assolutamente! Esiste però un modo non solo più semplice di caricare la cartella condivisa, ma anche più elastico: può essere caricata o scaricata al volo senza riavviare la macchina, e solo quando effettivamente ci occorre. Useremo uno script, un semplice file di testo con all'interno i comandi che abbiamo dato a mano nella shell della 2a parte del post.

Lo faremo usando come esempio una Ubuntu, e per lavorare nella massima comodità, faremo altre 3 cose:

- monteremo la cartella condivisa direttamente in una cartella sul desktop, così da averla sempre immediatamente a disposizione senza dover vagare nel filesystem di Linux alla sua ricerca;
- creeremo un ulteriore script per smontare sempre al volo la cartella (unmount);
- creeremo un paio di pulsanti sul pannello di Gnome (l'interfaccia grafica di Ubuntu), quello in alto con sopra i vari menù di Ubuntu per intenderci, da cui avviare direttamente gli script.

Iniziamo creando la cartella sul desktop in cui montare la cartella condivisa: cliccate direttamente sul desktop con il tasto destro e poi su Crea cartella con il tasto sinistro (fig. 23), datele un nome, per esempio Cartella condivisa host, e salvatela.

Fig. 23 - Mount script - creazione cartella condivisa
fig. 23

E' il turno dei 2 file che conterranno gli script di mount e unmount (smontaggio) della cartella condivisa. Aprite l'Editor di testo (si tratta di gedit, fig. 24),

Fig. 24 - Mount script - apertura editor testo
fig. 24


e al suo interno scrivete le 2 seguenti righe (fig. 25):

#!/bin/bash
sudo mount -t vboxsf 'Cartella condivisa host' /home/nomeutente/Desktop/'Cartella condivisa host'


Poi salvate il tutto nella vostra home con il nome mountcc (senza tanta fantasia, sta per Mount Cartella Condivisa); di default l'editor si dovrebbe essere aperto proprio al suo interno. Verificate comunque, alla voce Salva nella cartella di fig. 25 deve esserci il vostro nome utente.

Fig. 25 - Mount script - creazione script
fig. 25


Create un secondo documento nell'editor, inserite le 2 righe sotto,

#!/bin/bash
sudo umount 'Cartella condivisa host'


e salvate il documento sempre nella vosta home con il nome di umountcc. Vediamo un attimo cosa abbiamo scritto. La prima riga in comune ad entrambi gli script, #!/bin/bash, avvisa il sistema che:

- (#!) tutto quanto segue è un script di shell (o terminale che dir si voglia, ma d'ora in poi diremo shell);
- la shell da eseguire si trova nella directory /bin in un file che si chiama shell;

La seconda riga invece chiama con i privilegi di amministratore (sudo):

- il comando di mount (spiegato nella parte iniziale della 2a parte del post) nel primo script per montare la cartella condivisa,
-il comando di umount (senza la n) per smontare la cartella condivisa.

Il motivo per cui vi ho chiesto di salvarli nella vostra home è presto detto: quando aprite la finestra di terminale che fra poco useremo, questa di default si apre proprio sulla vostra home. In questo modo potrete semplicemente aprire il terminale e dare subito i comandi mountcc e umountcc senza doverli andare a cercare da qualche parte.

Bene, gli script sono creati, ma i file che li contengono, così come sono verrebbero letti come normali file di testo; dobbiamo renderli eseguibili. Aprite il terminale (guardate fig. 24, è l'ultima voce del menù) e date il comando ls (LiSt, analogo a dir per Windows) per vedere il contenuto della vostra home: eccoli lì i 2 file di script, mountcc e umountcc (fig. 26). Sempre nella finestra di terminale date i comandi:

chmod +x mountcc
chmod +x umountcc


Se tutto è andato bene, il comando vi restituirà ogni volta semplicemente il prompt mentre entrambi i file sono diventati eseguibili.

Fig. 26 - Mount script - assegnazione permessi esecuzione
fig. 26


Proviamo i due script. Dall'interno del terminale date il comando ./mountcc: dopo aver dato la password da amministratore, andate a dare un'occhiata in Cartella condivisa host sul desktop: et voilà! Il contenuto della cartella condivisa sull'host ora è visibile direttamente sul desktop di Linux. :-D

Vi piace? Sii?!? Ma non abbiamo mica finito qua. Sempre nel terminale, ora date il comando ./umountcc: la cartella condivisa così viene smontata, ed il suo contenuto scompare. ;-)

Bene, constatato che gli script funzionano, diamo un tocco di eleganza al tutto: niente lancio a mano degli script (cosa comunque sempre possibile nel modo che abbiamo visto), ma due bei pulsanti su cui cliccare per lanciarli.

Cliccate con il tasto destro sul pannello di Gnome (fig. 27) e poi con il sinistro sulla voce Aggiungi al pannello:

Fig. 27 - Mount script - aggiungi elemento sul pannello
fig. 27


Nella finestra che si è aperta, cliccate su Icona avvio applicazioni personalizzata (fig. 28).

Fig. 28 - Mount script - crea nuova icona sul pannello
fig. 28


Fate le opportune selezioni e riempite i vari campi in modo tale da ottenere un risultato analogo a fig. 29; in particolare nel campo Comando, tramite il tasto accanto Esplora, cercate e selezionate lo script mountcc. Cliccate anche su Nessuna icona se volete associare al vostro pulsante una icona, quando avete finito su OK per terminare.

Fig. 29 - Mount script - informazioni creazione nuova icona sul pannello
fig. 29


Ed eccola, sul vostro pannello (fig. 30) è comparsa l'icona del pulsante da cui lanciare la script di mount della cartella condivisa. Ripetete tutti i passaggi per creare un analogo pulsante di lancio dello script di unmount.

Fig. 30 - Mount script - icone avvio script disponibili sul pannello
fig. 30


A questo punto non vi resta che provarli. Aprite Cartella condivisa host sul desktop e cliccate sul pulsante di mount: si aprirà la finestra di terminale dove inserire la password da amministratore (le operazioni di mount e unmount sono operazioni riservate all'amministratore se non diversamente specificato). Inserita e dato invio, vedrete comparire in tempo reale il contenuto della cartella condivisa sull'host. Cliccando sull'altro pulsante e data la password se richiesta, vedrete scomparire davanti ai vostri occhi il contenuto della cartella condivisa.

Bene, e con questo credo abbiamo finito anche l'argomento cartelle condivise. In una mia riflessione "sotto la doccia" qualche post addietro, descrivevo la virtualizzazione come un ponte fra sistemi operativi, e più in generale fra idee, concezioni, modi di essere, in definitiva fra persone. Vedo le cartelle condivise come l'esemplificazione pratica e immediata in VirtualBox di questo ponte.

E allora, buona condivisione a tutti! :-D
@:\>

sabato 20 ottobre 2007

Sono diventato giornalista!

Non riuscivo a crederci, e così sono andato a leggermi di persona l'articolo 2 del Disegno di Legge sull'Editoria del 3 agosto 2007, approvato formalmente al Consiglio dei Ministri del 12 ottobre 2007.

Recita testualmente: "Per prodotto editoriale si intende qualsiasi prodotto contraddistinto da
finalità di informazione, di formazione, di divulgazione, di intrattenimento, che sia destinato alla pubblicazione, quali che siano la forma nella quale esso è realizzato e il mezzo con il quale esso viene diffuso".

Insomma, per legge sono diventato giornalista con tutta la burocrazia e gli obblighi che ne conseguono, e questo per parlare di una passione che desideravo condividere con voi... sò cos'ée pazzi!

@:\>

VirtualBox 1.5.2: un miglioramento... ma...

Ho installato e testato un po' la nuova versione 1.5.2 di VirtualBox. Devo dire che questa volta la differenza di velocità è davvero tangibile (almeno sul mio portatile).

Le finestre della macchina virtuale, una Mandriva 2008 con KDE e una Ubuntu 7.10 (Gnome), sono davvero più scattanti nella risposta, ad un punto tale che la differenza fra il prima ed il dopo aggiornamento di VirtualBox e delle Guest Additions in ogni macchina virtuale, è visibile ad occhio nudo. Anche una openSUSE 10.3, che con la versione 1.5.0 di VirtualBox si era rifiutata ostinatamentedi farsi installare, qui non ha fatto una piega.

Ma... come spesso accade, non è tutto oro ciò che luccica. La openSUSE ad esempio: stavolta sono riuscito ad installarla, poi però ci sono stati problemi con le Guest Additions: una volta installate correttamente e fatta ripartire la macchina virtuale, tutto funziona ma guai a spegnerla. Alla riaccensione si comporta come se le Guest Additions non fossero mai state installate e a nulla vale reinstallarle: ad ogni spegnimento e successiva riaccensione se ne perde completamente traccia.

Nelle Mandriva 2008 si ottiene un messaggio relativo ad un file che non può essere modificato perché manca, solo Ubuntu sembra non faccia i capricci... incrociamo le dita. :-)

@:\>

venerdì 19 ottobre 2007

Firefox 2.0.0.8: aggiornamento di sicurezza importante

Importante aggiornamento di sicurezza per Mozilla Firefox, provvedete al più presto.

Tra gli altri viene fissato un bug con gli URI, la nuova emergenza sicurezza da cui dopo Windows, neanche Mac e Linux sembrano immuni.

@:\>

VirtualBox e Ubuntu 7.10: matrimonio possibile

E mai siffù un cotal delirio... ma dato il mortal sospiro de la pazienza mia, rimedio posi in aramaico antico. Ora: non crediate che conosca l'italiano, ne quello corrente ne quello colto dei nostri avi... è solo l'effetto collaterale dello sclero per installare la nuova Ubuntu 7.10.

Dite la verità, anche voi avete avuto problemi d'installazione su Virtualbox (dite di si, almeno per consolarmi): forse anche voi avete scaricato la iso, avviato VirtualBox, e creata al volo una macchina virtuale vi siete catapultati ad installarla, fermandovi tristemente davanti alla prima schermata (fig. 1).

Fig. 1 - Installazione - Schermata troppo grande
fig. 1


Problemi di riconoscimento dell'hardware della macchina virtuale portano infatti Ubuntu ad usare un monitor ed una scheda video generici settati a 800x600 pixel; peccato che anche le schermate d'installazione abbiano minimo questa risoluzione. Risultato: non si vedono i pulsanti Avanti-Indietro per proseguire nell'installazione, ne si possono ridimensionare le schermate d'installazione, sono già alla loro dimensione minima. Se anche voi avete questo problema allora vediamo insieme come risolverlo.

Cliccate su System --> Amministrazione --> Schermi e grafica (fig. 2).

Fig. 2 - Installazione - menu Schermi e Grafica
fig. 2


Cliccate su Model (fig. 3).

Fig. 3 - Installazione - menu scelta modello monitor
fig. 3


Scegliete un modello di monitor che sia il vostro o ci si avvicini, scegliendo fra quelli generici ad esempio (fig. 4).

Fig. 4 - Installazione - scelta modello monitor
fig. 4


Scegliete una risoluzione video che sia adeguata alle caratteristiche del monitor scelto, comunque almeno un 1024x768, la risoluzione minima per riuscire a superare il problema della schermata di installazione non interamente visibile (fig. 5). Quando avete terminato, cliccate sul pulsante Test in basso.

Fig. 5 - Installazione - scelta risoluzione monitor
fig. 5


Se compare la schermata di fig. 6 allora la nuova configurazione va bene, accettate le nuove impostazioni cliccando su Keep configuration. Se invece non dovesse comparire nulla, attendete pazientemente: dopo 15 secondi circa ritornerà tutto come prima con in più un messaggio che avvisa che la nuova configurazione non ha funzionato; ricominciate da fig. 3 e ritentate finché non trovate una configurazione che funzioni con una risoluzione di almeno 1024x768 pixel.

Fig. 6 - Installazione - configurazione monitor corretta
fig. 6


Quando avrete trovato la vostra configurazione corretta e l'avrete accettata, fate molta attenzione: deve assolutamente comparire il messaggio di fig. 7. Ho notato che non compare sicuramente quando fate il test della nuova configurazione video cliccando sull'apposito pulsante di fig. 5. Quindi, appena trovata una configurazione video che funzioni bene con una risoluzione di almeno 1024x768, appuntatevi qual'è e ricominciate un'ultima volta tutta la configurazione da fig. 3. Quando arriva il momento di testarla, non fatelo! Sapete già che funziona dalla volta precedente, cliccate semplicemente sul pulsante OK di fig. 5. Comparirà finalmente il messaggio di fig. 7, cliccate su Close per proseguire.

Fig. 7 - Installazione - richiesta logout
fig. 7


Fate il Log Out come vi è stato chiesto; basta cliccare sul pulsante a forma di interruttore di alimentazione in alto all'estrema destra del desktop di Ubuntu, poi, nella finestra che compare, cliccate su Log Out (fig. 8).

Fig. 8 - Installazione - logout per rendere effettive le impostazioni
fig. 8


Ripartita la sessione, dopo aver dato il vostro vostro nome utente e password vi ritroverete finalmente in una finestra abbastanza grande da vedere per intero le schermate d'installazione (fig. 9).

Fig. 9 - Installazione - nuova risoluzione 1024x768
fig. 9


Terminata l'installazione, potreste comunque avere dei problemi con il settaggio di una risoluzione video adeguata, fate riferimento al post “VirtualBox: Guest Additions e risoluzioni video in Ubuntu Linux” per una possibile soluzione.

Io ormai ho fatto, ma se proprio posso darvi un suggerimento, fate un bel salvataggio del file vdi della distribuzione Ubuntu precedente (se non sapete di cosa si tratta, date un'occhiata ai post sulla compattazione del file vdi, se ne parla abbondantemente) giusto per cautelarsi, poi procedete direttamente al suo upgrade dall'apposito menù Sistema --> Amministrazione --> Gestore aggiornamenti (fig. 10).

Fig. 10 - Installazione - Gestore aggiornamenti
fig. 10


Ho provato anche questo metodo, giusto perché mi piaceva smanettare anche con questa possibilità. Beh, con una connessione ADSL indispensabile a tirar giù i 1000 e passa pacchetti per quasi 700 MB di aggiornamenti, tempo un'ora e un quarto e la Ubuntu 7.04 era diventata 7.10 senza nessuna rottura di bip!

Solo una cosa: non impauritevi se dopo l'aggiornamento le VirtualBox Guest Additions smettono di funzionare, è normale; basta reinstallarle.

@:\>

giovedì 18 ottobre 2007

Virtuabox 1.5.2 è arrivato

Proprio stamane scrivevo in una e-mail di sperare in una nuova versione di VirtualBox come regalo per Natale, e invece: è online la versione 1.5.2 di VirtualBox!

Dal changelog e come testimonia anche il numero di versione, non ci sono novità eclatanti, ma tutta una serie di bugfix e miglioramenti che dovrebbero migliorarne la stabilità d'uso e la velocità. Installo e vi dico.

@:\>

VirtualBox e Mandriva 2008: matrimonio perfetto

Non riuscita dopo 5 tentativi l'installazione in VirtualBox di openSUSE 10.3, sono passato oltre. In questi giorni poi è uscita anche la Mandriva 2008, e così non ho perso l'occasione di farci un giro (fig. 1, interfaccia grafica KDE).

Fig. 1 - Mandriva 2008 - Desktop
fig. 1


Beh, che dire, un vero spasso. Installazione semplice e rapida, ma soprattutto, una bella sorpresa se viene virtualizzata in VirtualBox (fig. 2).

Fig. 2 - Mandriva 2008 - Scheda video
fig. 2


Ebbene si, avete visto bene! La Mandriva riconosce correttamente la scheda video come quella resa disponibile da VirtualBox, e sin da subito fornisce maggiori modalità grafiche rispetto ai classici 1024x768 pixel o anche meno.

E non è finita qua. Appena terminata l'installazione ed il primo riavvio, una volta spenta e riaccesa la macchina virtuale di Mandriva 2008, sorpresa: il mouse non casca nella finestra come accade normalmente. Fatto un giro di verifica, ecco spiegato il motivo (fig. 3).

Fig. 3 - Mandriva 2008 - Guest Additions installate
fig. 3


Le VirtualBox Guest Additions in versione OSE sono già installate sul sistema, una gran bella novità che rende sin da subito più usabile il sistema.

@:\>

Ubuntu 7.10 è arrivato

Da oggi in giornata si potrà finalmente scaricare la versione 7.10 di Ubuntu Linux. Vi volevo segnalare tra le molte novità, quelle che mi sembrano le più grosse in questa release:

- l'uso di GNOME 2.20 come interfaccia grafica,
- abilitazione di default di Compiz Fusion per gli effetti 3D,
- scrittura nativa del filesystem NTFS di Windows,
- AppArmor per la sicurezza.

Appena riesco a metterci sopra le mani vi faccio avere qualche immagine.

@:\>

martedì 16 ottobre 2007

VirtualBox: compattare dischi virtuali ad espansione dinamica - guest Linux (1a parte)

Aggiornamento: continuate a leggere il post se siete interessati all'aspetto tecnico del problema, per la sua soluzione attualmente è più semplice e ricco di opzioni l'uso di CloneVDI.
____________________________________________________________________

Nel prologo sull'argomento avevamo inquadrato la problematica: quando liberiamo spazio sul disco rigido della macchina virtuale, il file vdi sull'host che lo contiene 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.

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.

VirtualBox non ha un comando interno per marcare a zero i settori liberi del disco rigido virtuale, ma niente paura, come scopriremo tra breve ciò non è un problema con un guest Linux. Quanto vedremo poi è identico per tutte le distribuzioni, anche se le immagini per forza di cose devono far riferimento ad una in particolare ed in questo caso si tratta di una Ubuntu. Cominciamo.

Avviate la macchina virtuale della vostra distribuzione Linux e aprite il file manager (l'analogo dell'Esplora risorse per intenderci). Se date un'occhiata alla cartella che rappresenta l'intero filesystem (fig. 1), vederete quanto spazio libero in questo momento vi è sul vostro disco rigido virtuale (guardate sotto il mouse), nella macchina di esempio ancora 15,4 GB.

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


Diamo un'occhiata alle dimensioni del corrispondente file vdi sull'host contenente il disco rigido virtuale. Ci saremmo aspettati un file dalla dimensioni di circa:

20 GB - 15,4 GB = 5,6 GB

ma come potete vedere, ve ne è uno da 7 GB (fig. 2). La discrepanza è dovuta al fatto che il file manager non vi sta mostrando tutto lo spazio realmente utilizzato, manca ad esempio quello del file di swap: in Windows questo è un file come tutti gli altri (C:\pagefile.sys), su Linux è una vera e propria partizione separata adibita, esclusivamente a questo scopo e con un suo specifico tipo di filesystem.

Fig. 2 - Compattazione disco virtuale - dimensione iniziale file VDI
fig. 2


Visto che ora sappiamo come copiare file dall'host tramite le cartelle condivise, ne possiamo approfittare per copiarci da lì dei file molto grandi; esempio: 6 file da 700 MB ottenuti copiando nella cartella condivisa, con 6 nomi diversi, la iso d'installazione di Ubuntu. Dalla cartella condivisa, copiamoli sul Desktop di Linux (fig. 3).

Fig. 3 - Compattazione disco virtuale - copia file da host a guest
fig. 3


Terminata la copia, date un'occhiata nel file manager alla spazio libero, è diminuito a (fig. 4):

15,4 GB - (6 * 700 MB) = ~11, 3 GB

Fig. 4 - Compattazione disco virtuale - spazio guest diminuito
fig. 4


Corrispondentemente anche il file vdi sull'host è cresciuto, anche se con delle discrepanze per via della diversa gestione dello spazio disco fra Linux e Windows (fig. 5).

Fig. 5 - Compattazione disco virtuale - file VDI cresciuto
fig. 5


Ora eliminate i file copiati sul vostro Desktop Linux e verificate che lo spazio libero sia tornato quello originale (fig. 6). Verificate poi le dimensioni del file vdi sull'host; sono restate quelle di fig. 5: come ci aspettavamo, non si è ridimensionato.

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


Bene, iniziamo allora a lavorare alla sua compattazione. Vi riassumo le fasi su Linux perché leggermente diverse da Windows, con dei passaggio in più:

- fase 1: creazione di un unico file contenente caratteri e grande quanto tutto lo spazio libero sul guest così da riempirlo completamente;
- fase 2: sovrascrittura del file con valori zero;
- fase 3: cancellazione del file;
- fase 4: compattazione del file vdi sull'hot.

Vediamole una ad una.

Fase 1: la prima cosa da fare è creare un file.

Per farlo, aprite la finestra del terminale (shell) è date questo comando (fig. 7):

touch /home/nomeutente/Desktop/filetuttizero

Il comando touch crea il file di nome “filetuttizero” nella cartella /home/nomeutente/Desktop. Guardate infatti il vostro Desktop, è comparso un file con questo nome.

Fig. 7 - Compattazione disco virtuale - creazione filetuttizero
fig. 7


In questo momento il file è vuoto, (provate a guardarne le dimensioni, è zero byte), riempiamolo di caratteri: per comodità lo riempiremo di caratteri zero (caratteri questa volta, non valori, questo lo faremo dopo con un altro comando) perché su Linux c'è un dispositivo virtuale che ce li fornisce “aggratis”. Sempre dalla vostra finestra di terminale, date il comando

cat /dev/zero > /home/nomeutente/Desktop/filetuttizero

che significa:

- cat sta per conCATenate, concatena 2 file fra loro;
- /dev/zero è il dispositivo virtuale che fornisce caratteri zero a tutto spiano;
- > è l'operatore di redirezione, prende ciò che lo precede, cat /dev/zero, ossia i caratteri zero che questi fornisce, e li manda su ciò che segue, cioè il file filetuttizero.

Andate adesso a prendervi un bel caffè mentre filetuttizero incamererà sempre più caratteri zero fino a saturare tutto lo spazio libero sul guest. Quando questo è avvenuto, nel terminale comparirà un messaggio del tipo di fig. 8:

cat: errore di scrittura: Niente spazio sul device.

Fig. 8 - Compattazione disco virtuale - errore spazio terminato
fig. 8


Controllate lo spazio libero del vostro guest nel file manager (fig. 9), è effettivamente terminato (0 byte di spazio libero).

Fig. 9 - Compattazione disco virtuale - spazio guest terminato
fig. 9


Idem se verificate le dimensioni del file vdi sull'host (fig. 10).

Fig. 10 - Compattazione disco virtuale - file VDI dimensione massima
fig. 10


Fase 2-3: riempiamo filetuttizero con dei valori zero (in questo momento contiene caratteri zero) ed infine lo cancelliamo (vi spiego tra poco perché).

Per farlo useremo un altro comando Linux: shred. Il suo compito è di sovrascrivere un file con una serie di caratteri casuali per il numero di volte che vogliamo. Quando ha finito l'ultima passata, possiamo aggiungere un'ulteriore passata di valori zero (proprio quello che ci serve) e infine cancellare il file.

Dalla finestra di terminale date il comando:

shred -f -n0 -z -v -u /home/occhipervinca/Desktop/filetuttizero

f = force, forza i permessi sui file affinché possiate comunque eseguire sempre il comando;
n = 0, non ci interessa riempire
filetuttizero di caratteri casuali, perciò gli indichiamo di fare zero passate di scrittura di caratteri casuali, cioè nessuna;
z = riempie di valori zero il file dopo l'ultima passata, non vi sono passate precedenti (n = 0), perciò lo fa subito;
v = verbose, modalità chiacchierona del comando, vi aggiorna man mano su quello che sta facendo, giusto per capire a che punto siamo;
u = il file alla fine di tutti i passaggi viene cancellato.

In fig. 11 il comando ha iniziato il suo lavoro, approfittatene per un altro caffè! ;-)

Fig. 11 - Compattazione disco virtuale - comando shred
fig. 11


Quando ha terminato, a terminale comparirà il messaggio di fig. 12 o uno analogo: il file è stato rimosso.

Fig. 12 - Compattazione disco virtuale - comando shred filetuttizero rimosso
fig. 12
Sappiamo già che il file non viene realmente cancellato ma solo dichiarato libero lo spazio che occupava, spazio che è colmo di valori zero perché questo era il suo contenuto immediatamente prima di essere cancellato: proprio quello che serve al comando di compattazione modifyvdi per funzionare.
Fase 4: è arrivato finalmente il momento di compattare il file vdi sull'host: ora è possibile, la precondizione che lo spazio libero sul disco rigido virtuale fosse marcata a zero è soddisfatta. Aprite una finestra DOS (pulsante start --> Esegui --> scrivete cmd e date invio). Al suo interno date questo comando, doppi apici compresi anche su nomefile se questo contiene spazi vuoti:

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

Nel caso della nostra macchina virtuale di esempio diventa:

"C:\Programmi\innotek VirtualBox\VBoxManage" modifyvdi Ubuntu7_04.vdi compact

Mentre il comando fa il suo lavoro, vi spiego la sintassi per chi non la ricorda o non ha seguito la 2a parte del post:

- 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, i doppi apici sono obbligatori 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, in fig. 13 il risultato: come potete vedere, il file vdi è tornato all'incirca alle sue dimensioni iniziali.

Fig. 13 - Compattazione disco virtuale - file VDI compattato
fig. 13


Wooww... post lunghissimo, frutto della decisione di rendere indipendenti fra loro i post dedicati ai guest Linux da quelli dedicati ai guest Windows. Per far questo ho duplicato in parte i contenuti, così da
non costringervi a salti dall'uno all'altro post e favorire la comprensibilità dell'argomento; spero di esserci riuscito. :-)

Ok, è tutto, non mi resta che augurarvi, una serena compattazione!

@:\>

____________________________________________________________________
Aggiornamento del 25/10/2007:

come ha evidenziato nei commenti Michele Benvegnù, questa soluzione che è
semplice e immediata da realizzare su tutte le distribuzioni Linux, è ampiamente inefficiente nell'uso dello spazio disco e del tempo di elaborazione. Così, quello che doveva essere un post unico, si è in realtà trasformato nel primo dedicato all'argomento. Ed ora, il link alla 2a parte.

@:\>

sabato 13 ottobre 2007

VirtualBox: cartelle condivise in guest Linux (3a parte)

Chiudevo la 2a parte di questo post dicendo che VirtualBox non può scavalcare il funzionamento interno di Linux. Il risultato è che lo spegnimento, od anche il semplice riavvio della macchina virtuale, vanifica tutto il lavoro fatto per rendere visibile la cartella condivisa nel guest. Bene, vorrà dire che andremo a fare noi a manella il lavoro che, spero già dalla prossima versione, VirtualBox potrebbe fare da se: la modifica dei file di configurazione di Linux per fare l'auto-mount della cartella condivisa. Avviate la vostra macchina virtuale, si parte!

Mentre la macchina virtuale parte, vi spiego un attimo il lato tecnico del problema; se invece non siete curiosi di sapere perché Linux ad ogni spegnimento o anche semplice riavvio si perde la cartella condivisa, allora saltate direttamente al paragrafo sopra fig. 21.

Linux all'avvio esegue tutta una serie di operazioni, compresa quella di mount. Tramite questa rende disponibili nel filesystem tutti i dispositivi che trova elencati nel file /etc/fstab, ad esempio il disco rigido oppure il lettore CD/DVD-ROM. Ed ecco il motivo per cui al riavvio si perde la cartella condivisa: essa semplicemente non viene montata perché non è indicata fra i dispositivi da montare nel file fstab; VirtualBox non effettua questa modifica, ed in realtà non servirebbe comunque.

Chi infatti rende disponibile sotto forma di dispositivo da montare la nostra cartella condivisa, è un driver delle VirtualBox Guest Additions (ecco perché vanno installate prima di fare questi giochetti con le cartelle condivise). Questo driver viene caricato molto dopo che Linux ha già fatto il mount dei dispositivi indicati in fstab, pertanto anche trovandovi l'indicazione di montare la cartella condivisa, in quel momento non è ancora disponibile e non verrebbe caricata.

Occorre dare il comando di mount da qualche altra parte, in un punto in cui il driver delle Guest Additions è già stato caricato e la cartella condivisa resa disponibile come dispositivo da montare. Un file letto da Linux sempre all'avvio ma dopo il driver delle Guest Additions è /etc/init.d/rc.local. Vediamo come modificarlo aggiungendovi il nostro sospirato comando di mount.

Aprite il vostro terminale e date il comando sudo gedit che vi permetterà di lanciare gedit, l'editor di gnome, con permessi di amministratore. In alternativa, sul vostro sistema date sudo nome_vostro_editor (fig. 21). Date la password e poi un invio per proseguire.

Fig. 21 - Automount cartelle condivise guest Linux - avvio gedit
fig. 21


Si aprirà gedit con i permessi da amministratore, potrete pertanto modificare qualunque cosa sul vostro sistema, fate la massima attenzione a modificare esattamente come indicato se non volete trovarvi con un Linux in panne. Cliccate sul pulsante apri e navigate le cartelle fino a /etc/init.d/, lì aprite il file rc.local (fig. 22). In fondo a quello che è uno script, aggiungete la riga:

mount -t vboxsf 'Cartella condivisa host' /mnt/'Cartella condivisa host'

Uscite salvando le modifiche.

Fig. 22 - Automount cartelle condivise guest Linux - modifica rc.local
fig. 22


Riavviate la macchina virtuale e date un'occhiata nella cartella condivisa! ;-D
Se sul vostro sistema non dovesse essere presente questo file, potete fare le stesse modifiche nel file/etc/rc.d/rc.local, non le ho provate ma dovrebbero funzionare bene.

E se invece non volessimo fare l'auto-mount della cartella condivisa ma montarla al volo di volta in volta senza stare a ricordarsi tutto il comando per intero? Qualcuno ha detto script?!? Avete detto bene, ma tutto questo, nella 4a parte del post.

@:\>