Oggi ti parlo di un sistema di virtualizzazione alternativo a VirtualBox, che funziona a riga di comando. I più esperti avranno già riconosciuto la descrizione: parlo di QEMU.
Da dove viene
QEMU nasce come un progetto piccolo e leggero, con lo scopo di emulare il microprocessore x86 su Linux, per far girare Wine anche su architetture diverse da x86, per esempio su Macintosh. La prima versione ebbe un discreto successo, e il suo autore, Fabrice Bellard, decise di svilupparlo ulteriormente aggiungendo architetture. È diventato così un vero sistema di virtualizzazione, oggi in grado di emulare x86, AMD64, PowerPC, MIPS e ARM.
La cosa interessante di QEMU è la velocità, l’architettura interna estremamente efficiente e il fatto che si pilota a riga di comando. Per questo si presta a finire in script, schedulazioni e in tutte le tecniche di amministrazione di sistema che noi sistemisti amiamo. Con QEMU, a differenza di VirtualBox, puoi schedulare la creazione o la distruzione di macchine virtuali in un momento preciso, oppure scrivere script che le creano. Il comando ha un sacco di opzioni: qui vediamo le principali, quelle che servono per mettersi in pista.
Installazione
Su Debian e derivate:
sudo apt-get install qemu-system-x86
Creare il disco virtuale
Come in VirtualBox, il disco virtuale è un file che fa le veci del disco fisso per la macchina virtuale. Si crea con qemu-img: il comando create, il formato del disco con -f (qcow2), il nome del file e la dimensione, qui 10 GB:
qemu-img create -f qcow2 test.qcow2 10G
Con un ls controlli che il file esista:
ls *.qcow2
Lanciare la macchina
Cominciamo emulando una macchina x86 a 64 bit, facendo finta di avere nel CD-ROM virtuale un’immagine ISO. Io ho scaricato la ISO della Debian Net Install, molto leggera, adatta all’esperimento. Il comando è qemu-system-x86_64:
qemu-system-x86_64 -m 1024 \
-drive file=test.qcow2,format=qcow2 \
-cdrom debian-netinst.iso
Le opzioni, una per una:
- -m 1024: la RAM in megabyte; 1 GB è più che sufficiente;
- -drive file=test.qcow2,format=qcow2: il disco virtuale appena creato, e il suo formato;
- -cdrom: l’immagine da usare come CD-ROM virtuale, qui la ISO della Debian Net Install (il nome del tuo file sarà diverso).
Premendo invio parte la macchina virtuale. Se il mouse resta intrappolato nella finestra, per liberarlo premi Ctrl, Alt e G. Da qui puoi fare una normale installazione di Debian: non la ripeto, ne abbiamo già parlato nell’articolo su VirtualBox. Qui mi interessava mostrarti come si lancia un’immagine di installazione. Chiudi la finestra della macchina virtuale.
La rete
Come visto con VirtualBox, il networking è una parte essenziale della virtualizzazione e ci sono diverse opzioni. La più semplice è condividere la connessione a internet della macchina ospitante con la macchina ospitata, senza creare bridge o altri tipi di rete virtuale (se vuoi approfondiamo in un articolo a parte). Rilanciamo il comando aggiungendo due opzioni:
qemu-system-x86_64 -m 1024 \
-drive file=test.qcow2,format=qcow2 \
-cdrom debian-netinst.iso \
-netdev user,id=eth0 \
-device virtio-net,netdev=eth0
- -netdev user,id=eth0: la rete in modalità utente, quella che condivide la connessione dell’host, con l’identificativo eth0;
- -device virtio-net,netdev=eth0: la scheda di rete virtuale collegata a quella rete.
Il resto rimane uguale: la macchina riparte, stavolta con l’accesso alla rete.
A cosa serve
È un ottimo sistema per provare delle distribuzioni senza sbaraccare il computer, e per avere macchine virtuali leggere, potenti e flessibili per esperimenti di sicurezza, di sviluppo o di test cross piattaforma. Si trovano anche dischi già pronti, in formato qcow2 o in altri formati che QEMU sa usare.
Conclusione
Ci sono infinite altre opzioni da esaminare, e se vuoi che approfondiamo fammelo sapere. Intanto apri la tua Linux box, installa qemu-system-x86 ed esercitati. Prova anche a inserirlo in script o automazioni di sistema, per usarlo in modo parametrico.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- Documentazione di QEMU — la documentazione ufficiale
- Emulazione di sistema QEMU — il manuale del sistema
- qemu-img — creare e gestire i dischi virtuali
- QEMU sulla wiki di Arch — in inglese
- QEMU su Wikipedia — in italiano
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
ma se vuoi offrirmi un caffè, mi aiuterà a rimanere sveglio mentre registro i video 😁☕
clicca qui per scoprire come https://buymeacoffee.com/thelinuxnerd
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
