jump to navigation

Qemu 0.9.0 + Kqemu 1.3.0 su Debian Sid (o Ubuntu) 28 Maggio 2007

Posted by Darkarix in Debian, Emulatori.
trackback

Provare qualche nuova distro senza toccare hard disk e partizioni? Far girare OS proprietari in contemporanea al pinguino? Si può!, con Qemu (e con tante altre cose)!! :D

Knoppix.png
Knoppix in Qemu sulla mia Debian Sid

 

Tra i tanti ho scelto Qemu perché è molto leggero e perché totalmente Open Source. Devo dire che anche VirtualBox promette bene ed io lo considero il degno avversario di Qemu, ma è un progetto ancora giovane e ha ancora tempo per maturare. Purtroppo VirtualBox non supporta ancora la compressione e la criptazione dei settori del file immagine. Bochs è schifosamente, infinitamente lento. VMware non l’ho mai provato.

Questa non vuole essere una vera e propria guida (se ne trovano a milioni) ma soltanto il resoconto di una piccola esperienza personale. Installerò tutto compilando quindi ci vorrà un po’ di pazienza. Il procedimento è stato provato su Debian Sid, ma dovrebbe funzionare anche sulle distro derivate di Debian (si, compresa Ubuntu). Ho “tratto ispirazione” dalla guida di Debianizzati ;) ).

Come ho già detto Qemu è un emulatore, cioè emula un Sistema Operativo completo. Può emulare quasi tutti gli OS, tra cui le varie versioni di Windows, *BSD, Mac OS X, Hurd, Minix, FreeDOS etc. Sono supportate le più comuni architetture: x86, PowerPC, MIPS, SPARC e parzialmente x64.

Tra i difetti bisogna dire che se il sistema host (dove Qemu è installato) risponde molto velocemente, il sistema guest (quello emulato) è abbastanza lento, nonostante Kqemu e accorgimenti vari. Un altro svantaggio rispetto ai software di virtualizzazione concorrenti è la mancanza di un’interfaccia grafica, problema comunque (ma è un problema?) risolvibilissimo. In più è difficile la cooperazione fra i due sistemi, sia per quanto riguarda il networking che lo scambio di dati.

Insomma, tutto questo per dire che Qemu non è probabilmente il miglior sistema di virtualizzazione in circolazione (probabilmente VirtualBox o VMware lo batterebbero su diversi punti) ma è il sistema ideale per chi ha poca ram e processore da vendere. In più ha un sistema occupazione dell’immagine che fa guadagnare moltissimo spazio su disco.

Kqemu è un modulo del kernel che accelera la virtualizzazione. È stato da poco rilasciato sotto GPL e vi consiglio caldamente di installarlo.

Allora, la prima cosa da fare è procurarsi qualche pacchetto importante, per chi non li avesse già:

# apt-get update && apt-get install gcc libsdl1.2-dev zlib1g-dev make linux-headers$(uname -r) build-essential kernel-package
Poi scaricate i sorgenti di QEMU e KQEMU e scompattateli come user in /home/user in modo che Kqemu si trovi all’interno della cartella di Qemu ed entrate nella directoy:

$ tar xvzf qemu-0.9.0.tar.gz
$ tar xvzf kqemu-1.3.0pre11.tar.gz -C qemu-0.9.0
$ cd qemu-0.9.0

Adesso dovete compilare. Io ho effettuato la compilazione forzando lo script configure a usare gcc3.4 perché ho letto in varie guide che Qemu non supporta gcc4. Non so se con questa nuova versione questo bug sia stato risolto, ma per sicurezza compilatelo con il 3.4. Bisogna dare i seguenti comandi:

$ . /configure --cc=gcc3.4
$ make

diventate root e installate:

$ su
Password:
# make install

A questo punto ridiventate user (con exit) e fate le stesse cose anche per Kqemu (naturalmente sostituite ad USER il nome del nostro utente):

cd /home/USER/qemu-0.9.0/kqemu-1.3.0pre11
./configure --cc=gcc3.4
make

e installate come root:

$ su
Password:
# make install

A questo punto Qemu è installato in /usr/local/bin/qemu e Kqemu in /lib/modules/versione_del_kernel/misc/kqemu.ko Adesso dovete dire al sistema di caricare ad ogni avvio il modulo Kqemu e gli vanno dati i permessi:

  • diventate root (su -)
  • modificate il file /etc/modules aggiungendo la riga kqemu, in modo che il modulo venga automaticamente caricato al boot.
  • create il file /etc/modprobe.d/kqemu contenente le seguenti righe
    • per chi non ha installato il pacchetto udev:

install kqemu /sbin/modprobe --ignore-install kqemu && (test -c /dev/kqemu || mknod /dev/keqmu c 250 0) && chmod 666 /dev/kqemu

  • per chi ha installato il pacchetto udev:

options kqemu major=0 install kqemu /sbin/modprobe --ignore-install kqemu && chmod 666 /dev/kqemu

Una volta caricato il modulo e dati i permessi di lettura a /dev/kqemu siete pronti per eseguire il nuovo Qemu. Accertatevi che il Qemu che andrete ad eseguire sia quello compilato in /usr/local/bin/qemu: potete farlo eseguendo type qemu. Se fin qui avete fatto tutto il più è fatto, adesso potete iniziare a provare le distro o a installare OS. Magari riavviate il pc per far partire Kqemu. Ricordo che Qemu non ha interfaccia grafica e tutti i comandi da ora in poi vanno dati come user. Per passare dall’OS guest a quello host si usa Ctrl+Alt. Ricordo inoltre che per chiudere Qemu bisogna spegnere l’OS emulato come un qualsiasi computer e che non bisogna chiudere la console dalla quale si è eseguito Qemu, altrimenti si chiude.

L’hardware del sistema emulato che ci mette a disposizione Qemu è il seguente:

  • i440FX host PCI bridge and PIIX3 PCI to ISA bridge
  • Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes).
  • PS/2 mouse and keyboard
  • 2 PCI IDE interfaces with hard disk and CD-ROM support
  • Floppy disk
  • NE2000 PCI network adapters
  • Serial ports
  • Creative SoundBlaster 16 sound card
  • ENSONIQ AudioPCI ES1370 sound card
  • Adlib(OPL2) – Yamaha YM3812 compatible chip
  • PCI UHCI USB controller and a virtual USB hub.

Allora, se volete far partire un immagine iso non masterizzata di un LiveCD si deve scrivere questo:

$ qemu -cdrom /percorso/alla/immagine/Knoppix.iso -boot d -localtime -k it -m 512
È inutile dire che dovete sostituire a /percorso/alla/immagine/Knoppix.iso il percorso della vostra immagine.
Analizziamo i parametri:

  • -m megabyte –> quantità di RAM in Mb per il sistema emulato. Se non specificato verranno usati 128Mb
  • -k it –> specifica la lingua della tastiera
  • -localtime –>usa l’ora locale (default UTC)
  • -boot d –> fa il boot dal cdrom

Se invece avete la live già masterizzata non c’è problema, Qemu la avvia lo stesso direttamente dal vostro lettore scriviamo questo comando:

$ qemu -cdrom /dev/cdrom -boot d -localtime -k it -m 512
Questo ripeto è inutile farlo con distro non live, perché al momento dell’installazione non troverà nessun supporto dove installare l’OS.

Infatti l’OS va installato su di un’immagine compressa che può essere di vario formato e che verrà vista da Qemu come un vero e proprio hard disk.

I formati di immagini supportati da Qemu sono molteplici, ma i principali sono 5 o 6: raw, qcow, qcow2, cow, vmdk e bochs

Il formato raw è quello di default ed è molto portabile. Esso però non è compresso e avrà le dimensioni effettive di quelle scelte. Cow è il vecchio formato di Qemu. Qcow è stato il migliore formato fino a questa versione ed è stato tenuto solo per garantire la compatibilità delle immagini con versioni di Qemu minori della 0.9.0. Supporta la compressione e la cifratura. Vmdk è il formato usato da VMware. Bochs è il formato usato da Bochs. Qcow2 è il formato introdotto dalla 0.9.0 e garantisce un alto livello di compressione. Usando questo formato si potranno creare dei file immagini di grandi dimensioni virtuali ma che poi occupano solo le dimensioni effettive. Vediamo come fare prendendo come esempio l’OS nemico:

Windows.png
WindowsXP in Qemu sulla mia Debian Sid

 

$ qemu-img create -f qcow2 /home/USER/Windows.qcow2 5G
Con questo comando create un file immagine di formato qcow2 (il parametro -f serve a specificare il formato) e lo posizionate nella nostra /home/USER di dimensioni virtuali (cioè massime) di 5Gb. Se andate a vedere quanto spazio prende questo file scoprirete che occupa solo 32Kb! Infatti la dimensione del file si ingrandirà solo quando andremo ad installare il nostro OS.

 

Quindi inserite il cd/dvd dell’OS da installare e date il seguente comando:

$ qemu -hda /home/USER/Windows.qcow2 -m 512 -cdrom /dev/cdrom -boot d -localtime -k it
Completata l’installazione potete anche controllare le dimensioni del file immagine con questo comando:

$ qemu-img info -f qcow2 /home/USER/Windows.qcow2
Per avviare il file immagine installato si deve usare questo comando:

$ qemu /home/USER/Windows.qcow2 -m 512
Se volete usare più ram di 512Mb bisogna digitare da root questi….comandi:

$ su
Password:
# umount /dev/shm
# mount -t tmpfs -o size=1040m none /dev/shm

Dove per size si intendono i Mb scelti per la RAM. Purtroppo io appena do questo comando mi si disconnette la wlan0 e non posso più andare su internet, quindi ne faccio volentieri a meno.

Se volete imparare come fare sesso con il pc date il seguente comando:

$ man sex
:D

Commenti»

1. Serendippo - 2 Giugno 2007

interessante… finora non sono riuscito a installare nessun sistema virtuale, causa mie incapacità tecniche, ma poiché ho accumulato un po’ di informazioni a riguardo, volevo segnalarti un precisazione: e cioè che VMware esiste in 3 versioni, PLAYER, SERVER e WORKSTATION.
Le prime due dovrebbero essere gratuite (la versione Server relativamente da poco tempo), a differenza della terza che è adatta a un impiego aziendale, come dice il nome stesso del resto.
Uso il condizionale semplicemente perché riporto quello che trovo su altri siti, non ho sperimentato di persona. Oltretutto devo cambiare PC e quello che comprerò sarà tarato soprattutto per fare questo tipo di cose (p.es. con 2 GB di Ram).
CIAO

2. Darkarix - 2 Giugno 2007

@ Serendippo
Intanto grazie del commento, sei il primo! :-/
Hai ragione. Le versioni sono anche più di tre, tra le quali alcune sono free.
Se ti può interessare ho installato da poco VirtualBox e va che è una meraviglia. Farò una guida a breve.

Ciao, Dark

3. serendippo - 3 Giugno 2007

sì, anche secondo quanto ho letto io VirtualBox dovrebbe essere leggermente + semplice da montare.
Non l’ho ancora fatto perché ho deciso di cambiare macchina (la mia ha ormai > 4 anni) e passare a un Amd athlon 64 X2, con cui queste cosette dovrebbero riuscire meglio, ovviamente ;-)
Se riuscirai a postare la guida, magari ci schiaffo tra i commenti gli altri link che x adesso tengo gelosamente nei Preferiti, così magari anche i niubbi possono avvantaggiarsi e riuscirci!
CIAO

4. VirtualBox vs. Qemu+Kqemu « Linux - 7 Giugno 2007

[...] Ho deciso di installare VirtualBox per fare un confronto con le prestazioni di Qemu, da me trattato già in un’altra guida, per vedere chi riuscirà a [...]