VirtualBox Tutorial


Introduzione alla virtualizzazione con VirtualBox

di Giovanni Santostefano


Introduzione

La virtualizzazione è la tecnologia che permette di creare un layer di astrazione tra l’hardware e il software per quanto riguarda un sistema informatico. Stando a tale premessa è ben noto che diverse tecniche di virtualizzazione sono utilizzate da qualsiasi sistema informatico moderno. Basti pensare che ogni processo avviato nel nostro sistema operativo è abilitato ad usare una porzione di memoria arbitraria talvolta addirittura superiore alla memoria fisica del nostro hardware, appoggiandosi alle memorie di massa o che ogni processo caricato nel sistema, virtualmente, utilizza tutta la potenza di calcolo quando, invece, tale potenza di calcolo è ripartita tra tutti i processi secondo gli algoritmi di scheduling del sistema operativo in uso.

Questi sono semplici esempi per far comprendere come in generale diverse tecnologie di virtualizzazione siano già abbondantemente usate nella quotidianità di ogni utente di personal computer, sistemi enterprise e la maggior parte dei sistemi elettronici complessi.

La virtualizzazione che andremo a trattare in questo articolo è invece una tecnologia impiegata ancora maggiormente nei sistemi server ma che si sta rivelando una “manna dal cielo” anche per gli utenti di personal computer che fronteggiano per necessità o per diletto

Scarica l'ebook

Scarica l’ebook

la necessità di operare su diverse istanze del sistema operativo o addirittura diversi sistemi operativi senza essere costretti a riavviare la macchine per eseguire l’uno o l’altro. Questo tipo di virtualizzazione si occupa, infatti, di simulare una completa macchina hardware consentendo di creare un ambiente di esecuzione software completo per eseguire un intero sistema operativo. In parole povere potete eseguire una istanza di un sistema operativo GNU/Linux, Windows ed Haiku come se fossero tre applicazioni qualsiasi.

Ovviamente tale tipo di virtualizzazione comporta un ingente impiego di risorse da parte del sistema operativo host su cui risiede la macchina virtuale e la simulazione di un pc completo rallenta di molto l’esecuzione del sistema virtualizzato. Per ovviare a questo problema sono in sviluppo diverse tecnologie di condivisione ed accesso alle risorse hardware in maniera quanto più diretta possibile. Talvolta alcuni sistemi di “paravirtualizzazione” come XEN consentono accesso diretto all’hardware da parte dei sistemi guest (virtualizzati) e questo aumenta notevolmente le prestazioni anche se introduce altri problemi. La configurazione di un sistema avanzato di paravirtualizzazione è comunque una pratica complessa, adatta per lo più ad ambienti enterprise.

Per un’utilità desktop ci soffermeremo sul sistema VirtualBox (  http://www.virtualbox.org )

Scarica ebook

Scarica ebook

prodotto da Sun Microsystems, ora assorbita dal colosso Oracle, che unisce l’estrema semplicità di configurazione alle prestazioni tutto sommato buone. Verrà pertanto analizzato l’intero processo di configurazione di una virtual machine per far girare una istanza del sistema operativo GNU/Linux Ubuntu sul sistema host Microsoft Windows 7.

VirtualBox è scaricabile gratuitamente dal sito di Oracle per i sistemi Windows, GNU/Linux, MacOS X e Solaris. I sistemi certificati per essere virtualizzati sono invece listati al seguente indirizzo: http://www.virtualbox.org/wiki/Guest_OSes

Virtualizzazione in ambito Desktop

La pratica della virtualizzazione che richiama così fortemente l’ambiente aziendale e la server farm non è così estranea come si pensi alle necessità di un computer desktop.

Ponete il caso di avere una vecchia periferica (magari uno scanner di qualche anno fa) e di non riuscire ad inserire i driver nei nuovi sistemi Windows. Potrete semplicemente creare una macchina virtuale per caricare una istanza di Windows XP o 9x e usare lo scanner sul sistema virtualizzato.

Un altro caso che si può prendere in esempio è quello di dover usare un’applicazione disponibile solo su GNU/Linux e di non voler installare un sistema dedicato o semplicemente di non voler riavviare il pc per caricare il sistema Linux. Basta installare una macchina virtuale GNU/Linux come faremo a breve e la lanceremo ogni qual volta sarà necessaria.

Altri casi possono essere la necessità di creare un sistema per operazioni rischiose tali da non poter rischiare di compromettere il nostro sistema reale. La macchina virtuale e, soprattutto, l’hard disk virtuale sono memorizzati in un file all’interno del nostro hard disk. Una volta compromesso  il sistema virtualizzato possiamo cancellare il file come fosse una fotografia uscita male e ricominciare daccapo. Si può anche creare una macchina virtuale con un sistema BSD dove girerà un server web o altri servizi e, accettandone le perdite di prestazioni, in caso di attacco potremo garantire quasi totalmente che il pirata non tocchi il nostro sistema operativo host essendo confinato nella macchina virtuale.

I casi di possibile utilità di una virtual machine sono talvolta limitati solo alla fantasia oltre che alla necessità quindi vediamo come introdurci all’utilizzo di uno dei tanti sistemi disponibili gratuitamente o a pagamento.

Creazione della macchina virtuale

Prima di creare la macchina virtuale per installare il sistema operativo di cui abbiamo bisogno dobbiamo prima di tutto scaricare il software VirtualBox (http://www.virtualbox.org) ed una copia del sistema operativo. Dato che installeremo GNU/Linux Ubuntu 10.04 scaricheremo l’immagine ISO del cdrom (http://www.ubuntu-it.org).

Installiamo VirtualBox secondo le procedure standard per il nostro OS e confermiamo l’installazione di tutti i device USB e di rete (Windows lo richiede).

Completata la procedura di installazione potremo lanciare la VirtualBox e cliccare su “Nuova” per caricare il Wizard che ci guiderà alla creazione di una macchina virtuale.

Seguiamo i primi passaggi descrittivi e, nel form opportuno, inseriamo il nome della virtual machine e la tipologia del sistema operativo. Nel nostro caso denomineremo la macchina “Ubuntu” e selezioneremo come sistema operativo “Linux” e come versione “Ubuntu”.

Noterete la possibilità di scegliere tra diversi sistemi operativi e tra diverse versioni sia standard che a 64bit. Qualora si vuole testare un OS sperimentale o non particolarmente diffuso come il nuovissimo e promettente Haiku (clone del BeOs), selezionerete come sistema operativo “Other” e come versione “Other/Unknow”.

Il form successivo ci dà possibilità di controllo sulla memoria (RAM) da riservare alla VM. Il confine in rosso non andrebbe oltrepassato per consentire al sistema host di lavorare correttamente. Per una installazione Linux media occorrono al minimo 64MB di RAM ma sono effettivamente pochi per caricare l’interfaccia grafica complessa di Ubuntu e pertanto la portiamo a 512MB.

Andando avanti accediamo al pannello per la creazione/selezione di un hard disk virtuale. Come specificato sopra, l’hardware del sistema guest non è nient’altro che una virtualizzazione di un hardware generico interfacciato al sistema operativo host. Vale la stessa cosa anche per l’hard disk del nuovo sistema virtualizzato che diventa nulla più di un file in una directory (cartella) di Windows. Se il sistema virtuale viene infettato da malware o un errore critico porta alla totale corruzione dei dati o si vuole eliminare velocemente la VM basta cancellare il file che abbiamo definito come hard disk e i file che contengono le impostazioni della macchina virtuale.

Dal pannello che abbiamo di fronte assicuriamoci che sia abilitato “Disco fisso di avvio (Master Primario)” ad indicare che stiamo creando il disco principale per il sistema e selezioniamo “Crea un nuovo disco fisso”. Qualora abbiamo già creato un disco fisso che adesso non ci serve più possiamo utilizzare eventualmente quello e saltare la procedura di creazione.

Proseguendo con l’installazione ci viene mostrata la configurazione di un’altra caratteristica molto interessante: la possibilità di creare hard disk con allocazione dinamica. Questo significa che possiamo creare un file disco da 20GB che vengono allocati man mano che lo spazio viene occupato dal sistema virtualizzato. Tale caratteristica ci permette, quindi, di non dover cedere 20GB di spazio sin dal momento della creazione e magari tenerlo inutilizzato. Di contro, qualora finiremo lo spazio sull’hard disk del sistema host il file disco del sistema guest non potrà più crescere e ci potrebbero essere problemi sull’os virtualizzato. L’altra opzione è naturalmente quella di scegliere l’allocazione fissa che crea un file grande quanto (o poco più) la dimensione che sceglieremo per il disco virtuale. Non avremo problemi di sorta ma se scegliamo di creare un disco da 40GB, un file della stessa dimensione verrà creato sul nostro disco.

Per comodità selezioneremo “Archiviazione a espansione dinamica” e procederemo alla definizione dello spazio del disco e alla sua collocazione all’interno del file system. Setteremo lo spazio massimo a 8GB che per un sistema GNU/Linux di test è ben più che sufficiente. Poi basta inserire il nome del file dell’hard disk che chiameremo “UbuntuHardDisk”.

Con pochi passi siamo giunti alla creazione di una virtual machine pronta per ospitare il nostro sistema ubuntu. Completiamo il wizard che ci darà il riepilogo delle nostre scelte e la macchina sarà pronta per essere eseguita.

Settaggi di base

La VM appena creata permette di installare e successivamente eseguire il sistema guest. Tuttavia allo stato attuale mancherebbero alcune impostazioni che consentirebbero un utilizzo più “Desktop” dell’OS. Attraverso il pannello di “Impostazioni” potrete abilitare l’interfaccia di rete, l’utilizzo di periferiche USB come le memorie flash e mille altre caratteristiche.

Ignoriamo il pannello “Generale” che si occupa di riepilogare le scelte fatte sino a questo punto e passiamo a “Sistema” che contiene tre tab.

Alla tab scheda madre possiamo apportare modifiche all’ordine di boot delle periferiche ed aumentare e diminuire la RAM assegnata alla VM. Per avere più fluidità di esecuzione la portiamo vicino al Gigabyte.

Passando alla tab “Processore” possiamo decidere quante CPU assegnare all’emulatore. Decidiamo come consigliato di assegnarne una delle due presenti sul sistema utilizzato in questo articolo.

Passando al pannello Schermo, nella tab “Video” abilitiamo l’accelerazione 3D e portiamo a 64MB la memoria video in modo da poter godere, seppur con prestazioni fortemente degradate, delle qualità estetiche delle moderne interfacce grafiche.

Dovendo caricare il sistema operativo sul disco virtuale abbiamo la necessità di montare un dispositivo cdrom/dvd. Nel nostro caso verrà montato come dispositivo cd l’immagine ISO del sistema ubuntu che abbiamo scaricato ad inizio articolo.

Per fare ciò apriamo il pannello “Archiviazione” e notiamo che da qui è possibile variare tutte le impostazioni dei dischi. Possiamo cambiare file di hard disk, montare cdrom ed altro. Per selezionare il drive utilizzato come cdrom clicchiamo sull’icona del disco ottico e notiamo che dal menu a tendina “Dispositivo CD/DVD” possiamo selezionare, a seconda delle necessità una unità fisica, solitamente D:, oppure un file di immagine. Prima di selezionare l’opportuno file di immagine dobbiamo caricarlo nel programma. Per fare ciò clicchiamo sull’icona a forma di cartella a destra del menu a tendina.

Accediamo così al form che permette la gestione dei file associati ai dischi virtuali, siano essi hard disk virtuali o immagini di dischi ottici.

Dal pannello “Immagini CD/DVD” clicchiamo su “Aggiungi” e ricerchiamo nel nostro file system il file d’immagine del supporto di installazione di ubuntu.

Possiamo aggiungere tutte le immagini che ci sono necessarie ma l’importante è selezionare, ora o nel precedente form l’immagine che ci serve per installare il sistema.

Il successivo pannello permette la configurazione delle interfacce di rete. Potete configurare al più quattro interfacce di rete per il vostro sistema guest.

Dato che il nostro interesse principale è verso l’abilitazione del sistema virtualizzato alla connessione Internet, ci basta configurare solo la prima interfaccia di rete.

Abilitiamo la scheda di rete e scegliamo dal menu a tendina “Connessa a:” la connessione con bridge. Tale tipo di connessione permette di creare un bridge di rete tra una interfaccia reale ad una virtuale. Tale scelta ci permette di selezionare l’interfaccia con cui siamo connessi ad internet (nel caso in esempio la scheda wireless) e di collegarla ad una interfaccia virtuale creando un ponte di comunicazione trasparente tra le due interfacce. Il nostro sistema virtuale avrà pertanto un suo indirizzo IP e si potranno interconnettere il guest con l’host anche se l’interfaccia reale incaricata di inviare e ricevere pacchetti dal router (di casa o dell’ISP) sarà sempre e solo quella fisica selezionata come bridge.

Una volta selezionata la scheda dal menu “Nome” passiamo ai controlli avanzati che si occupano di gestire la configurazione dell’interfaccia virtuale. Avremo a disposizione diversi tipi di interfacce che altro non sono che emulatori degli standard di rispettive schede di rete generiche esistenti.

Selezioniamo Intel Pro 1000/MT Desktop che è una delle scelte plausibili per il nostro utilizzo e ci assicuriamo di aver selezionato “Cavo connesso” in modo tale da facilitare il compito di rilevamento e ottenimento di un IP, qualora fosse abilitato il DHCP, del sistema operativo guest.

L’ultimo aspetto da configurare per avere un sistema realistico è quello delle periferiche usb.

Abilitiamo i controller USB 2.0 (massimo standard emulabile) ed inseriamo l’hardware che ci interessa venga riconosciuto. Nel caso in esame è stata inserita una flash memory USB 2.0. Una volta che il sistema host (nel nostro caso Windows 7) abbia riconosciuto la memoria clicchiamo sul primo pulsante a destra del pannelletto “Filtri dispositivi USB”. Ci appariranno tutti i dispositivi collegati alla macchina. Selezioniamo la nostra penna usb e questa verrà aggiunta alla lista e ci da la certezza che verrà riconosciuta dall’os guest (qualora avesse i drive… windows e linux li hanno da un pezzo).

L’avvio

Le configurazioni sono giunte al termine e possiamo avviare dal menu principale la virtual machine appena creata.

Durante l’avvio verrà rilevato il cdrom e partirà il boot dell’installazione del sistema, altrimenti è possibile in fase di avvio premere F12 per ottenere un menu da cui selezionare il drive di boot.

L’installazione non dovrebbe dare problemi, essendo l’hardware virtuale estremamente standard e di conseguenza i driver sono solitamente implementati nella maggior parte dei sistemi moderni.

Terminato il processo di installazione la macchina virtuale verrà riavviata e si selezionerà il boot da “Primary Disk”: il nostro hard disk virtuale.

Ecco a voi il sistema virtuale ubuntu

La memoria usb è stata riconosciuta ed il collegamento ad internet stabilito e funzionante. Con estrema fluidità si possono aprire e gestire contemporaneamente diversi programmi ed il tutto in una finestra del nostro sistema operativo host.

Cliccando all’interno della finestra il nostro puntatore del mouse verrà letteralmente catturato dal sistema virtuale e per ridare il controllo a Windows (o altri che siano gli host) bisogna, di default, premere il tasto CTRL destro. La tastiera viene invece catturata ogni qual volta la finestra del sistema virtualizzato è in primo piano.

Dai pulsanti in basso, sulla barra di stato è possibile intervenire sulle periferiche virtuali in qualsiasi momento (con grado di libertà minore perché la macchina è correntemente in esecuzione).

Dai menu in alto si possono inviare comandi di spegnimento e di impostazione riguardo le modalità di visualizzazione (finestra/schermo intero).

Punto fondamentale sono le snapshot di esecuzione. Creando una snapshot del sistema si ottiene una reale fotografia dell’esecuzione della macchina virtuale in un dato istante. Posso riprendere tale esecuzione in qualsiasi momento come se si ottenessero punti di ripristino del sistema caricabili allo stesso modo in cui si carica un os dopo la sospensione su disco.

Conclusioni

Siamo giunti infine alla conclusione di questo articolo introduttivo che vi ha fornito un approccio, seppur basilare, alle mille caratteristiche di un sistema di virtualizzazione come VirtualBox.

Ora sarete perfettamente in grado di testare anche sistemi sperimentali senza modificare il vostro hard disk o mettere a repentaglio i dati presenti in esso. Eseguire operazioni rischiose senza che un Blue Screen o un kernel panic compromettano il lavoro che state svolgendo sul sistema stabile o eseguire diverse tecnologie non portabili senza dover riavviare il sistema ogni qual volta sia necessario un cambio di software.

Il mondo della virtualizzazione è questo e molto altro e dalle grandi aziede sino al singolo utente può offrire mille vantaggi.

Licenza d’uso

Il presente documento può essere redistribuito liberamente secondo i limiti della licenza di cui trovate il link quì sotto. Per utilizzi commerciali o al di fuori della licenza Creative Commons che ho selezionato potete contattarmi al seguente indirizzo (rimuovete i [rimuovimi]):   idm[rimuovimi]giovanni[at]libero.i[rimuovimi]t

Creative Commons License
Introduzione alla virtualizzazione con VirtualBox by Giovanni Santostefano is licensed under a Creative Commons Attribuzione-Non commerciale-Non opere derivate 2.5 Italia License.
Based on a work at bitnwoods.wordpress.com.

2 risposte a VirtualBox Tutorial

  1. Pingback: Introduzione alla virtualizzazione con VirtualBox « Bit 'n Woods Weblog

  2. Pingback: Accedere in sicurezza a link sospetti | Bit 'n Woods Weblog

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.