Tuesday, May 22, 2007

Computer virtuale con QEMU

Utilizzare qemu è molto semplice.. Iniziamo creando un file che useremo come hard disk virtuale (5G = 5 GB di dimensione massima):
# qemu-img create -f qcow windows.img 5G

Creiamo l'immagine iso del cd
di installazione di Windows (sarà più veloce che utilizzare comune lettore cd)
# mkisofs -r -o windows_install.iso /media/cdrom/

Utilizzando l'immagine iso appena creata, eseguiamo:

# qemu -cdrom windows_install.iso -hda windows.img -boot d
Si aprirà una finestra che ci permetterà di completare l'installazione del sistema operativo. Una volta terminato questo processo usciamo e avviamo il nostro computer virtuale abilitando cdrom, usb e audio:
# qemu -hda windows.img -cdrom /dev/cdrom -usb -soundhw sb16

Se desiderassimo avere più RAM di quella offerta per default (128 MB) occorre eseguire queste righe prima di avviare l'emulatore:
# sudo umount /dev/shm
# sudo mount -t tmpfs -o size=1040m none /dev/shm

Nel mio caso ho creato ben due dischi virtuali nei quali ho installato Debian in modalità RAID1 (mirroring). Si procede così:
# qemu-img create -f qcow harddisk1.img 10G
# qemu-img create -f qcow harddisk2.img 10G
# qemu -cdrom debian-40r0-i386-CD-1.iso -hda harddisk1.img -hdb harddisk2.img -boot d
# qemu -hda harddisk1.img -hdb harddisk2.img

QEMU con modulo di accelerazione KQEMU

Il programma di emulazione QEMU è già disponibile nei vari pacchetti deb, rpm, etc.. ma non è possibile utilizzare il modulo per l'accelerazione KQEMU. Per poter usare questa funzione occorre compilare i sorgenti di entrambi i programmi.

Installiamo alcuni file necessari all'installazione
# sudo apt-get install build-essential gcc-3.4 libasound2-dev libsdl1.2-dev zlib1g-dev linux-source

Continuiamo con lo scaricare i pacchetti qemu-0.9.0.tar.gz e kqemu-1.3.0pre11.tar.gz dal sito http://fabrice.bellard.free.fr/qemu/download.html e poi scompattiamo il primo:
# tar zxvf qemu-0.9.0.tar.gz
# cd qemu-0.9.0

Controlliamo che tutto sia in ordine e che non vi siano errori
# ./configure --cc=/usr/bin/gcc-3.4 --enable-system --enable-alsa

Iniziamo la compilazione ed attendiamo pazientemente
# make
# sudo make install

Passiamo ora all'acceleratore KQEMU
# tar zxvf kqemu-1.3.0pre11.tar.gz
# cd kqemu-1.3.0pre11
# ./configure --cc=/usr/bin/gcc-3.4
# make
# sudo make install

Carichiamo il modulo e creiamo un device
# sudo modprobe kqemu major=250
# sudo mknod /dev/kqemu c 250 0
# sudo chmod 666 /dev/kqemu

Se vogliamo che ad ogni riavvio venga caricato in automatico il modulo per l'accelerazione creiamo un file come segue
# sudo nano /etc/init.d/kqemu-enable

Copiamo al suo interno queste que righe e salviamo
#!/bin/bash
modprobe kqemu

Cambiamo i suoi permessi
# sudo chmod 755 /etc/init.d/kqemu-enable

E aggiorniamo rc.d
# sudo update-rc.d kqemu-enable defaults