Opzioni per la Macchina Virtuale

Avviare ed installare sidux in una macchina virtuale KVM

KVM è la soluzione per la virtualizzazione completa per Linux su hardware x86 che comprenda le estensioni per la virtualizzazione (Intel VT o AMD-V).

Prerequisiti

Per accertarsi se l'hardware supporta KVM, assicurarsi che KVM sia abilitato nel BIOS (in alcuni casi su di un sistema Intel VT o AMD-V potrebbe non essere evidente dove è l'interruttore, perciò si assume che sia alla voce stato KVM). Per controllare in una console eseguire:

cat /proc/cpuinfo | egrep --color=always 'vmx|smx'

Se si vede smx o vmx alla voce cpu flag, il sistema supporta KVM. (Altrimenti tornare indietro al BIOS se si crede che sia supportato e controllare di nuovo, oppure cercare su internet dove abilitare KVM nei menù del BIOS).

Se il BIOS non supporta KVM fare riferimento a Virtualbox o QEMU

Per installare ed avviare KVM per prima cosa assicurarsi che i moduli di Virtualbox non sono caricati, (la migliore opzione è utilizzare --purge), quindi a seconda del chipset:

Per vmx:

apt-get install qemu-kvm
modprobe kvm_intel

Per smx:

apt-get install qemu-kvm
modprobe kvm_amd

Un'altra opzione è riavviare così che gli script di init di qemu-kvm si prenderanno cura di caricare i moduli.

Se si utilizza KVM per avviare una sidux-*.iso

Come utente:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -cdrom <sidux.iso>
Installare una sidux-*.iso in una immagine KVM

Per prima cosa creare una immagine hard disk, (questa immagine sarà minima ed aumenterà solo se richiesto con rapporto di compressione qcow2):

$ qemu-img create -f qcow2 sidux-2010-*-.img 12G

Avviare sidux-*.iso con i seguenti parametri per abilitare KVM a riconoscere la presenza di una immagine hard disk QEMU disponibile:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -cdrom </path/to/sidux.iso> -boot d </path/to/sidux-20xx-*-.img>

Dopo che si è avviato il cdrom cliccare l'icona del sidux installer per fare avviare il programma di installazione, (oppure utilizzare il menu), cliccare sulla scheda Partizionamento e si dovrebbe vedere sulla sinistra un rettangolo con un disco pronto per il partizionamento e la formattazione, molto probabilmente chiamato /dev/sda. Al di sotto di questo ci sono le opzioni per il partizionamento, scegliere gparted.

gparted kvm hard disk naming

Nel menu di Gparted si può avere conferma che Gparted vede l'immagine con View>Device Information che dovrebbe mostrare come ATA QEMU Harddisk e molto probabilmente si chiama /dev/sda, (in questo esempio), dal momento che questa informazione sarà cruciale quando si torna al programma di installazione e si sceglie dove mettere Grub, dato che esso va in /dev/sda.

Quindi, nel menu Partizionamento scegliere Device>Create Partiton Table e creare la tabella delle partizioni.

A seguire formattare la tabella delle partizioni con ext4 e includere anche una partizione di swap di 2 Gb. La formattazione richiede un po' di tempo quindi si deve essere pazienti.

Al termine della formattazione cliccare OK per tornare al programma di installazione e procedere come se si stesse facendo una installazione standard, (di nuovo, portare pazienza). Nota: installare Grub in /dev/sda.

Adesso si ha una sidux-*-VM pronta per l'uso:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -drive if=virtio,boot=on,file=<absolute/path/to/sidux-20xx-*.img>

Se il guest non ha il supporto per virtio, oppure se non si specifica un percorso assoluto, usare:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -hda </path/to/sidux-20xx-*.img>

Vedere anche:

$ man kvm
Gestire le installazioni della macchina virtuale KVM
apt-get install aqemu

Quando si utilizza AQEMU assicurarsi di aver scelto la modalità KVM dal menu a tendina di "Emulator Type" nella scheda "General". (Documentazione per AQEMU praticamente non esiste perciò alcuni "tentativi ed errori" sono necessari per scoprire come utilizzare la GUI, tuttavia un buon inizio è quello di utilizzare il menu "VM" seguito dalla scheda "General".

Avviare ed installare sidux in una macchina virtuale VirtualBox

Passi da fare:

Esigenze

RAM raccomandata: 1 giga : Idealmente 512 MB per il guest e 512 MB per l'host. (può essere avviato o no, ma non ci si deve aspettare grandi prestazioni).

Spazio sul disco fisso: mentre VirtualBox in sé è piuttosto "magro" (una tipica installazione necessiterà soltanto di ~30 MB), le macchine virtuali richiedono invece dei file grandi sul disco per emulare i propri dischi emulati. Così per installare MS Windows XP (TM), ad esempio, servirà un file che può crescere facilmente fino a parecchi GB. Per sidux sarà necessario allocare in VirtualBox una immagine di 5 giga oltre ad una partizione di swap.

Installazione:

apt-get update
apt-get install virtualbox-ose-qt virtualbox-ose-source dmakms module-assistant

Quindi preparare il modulo:

m-a prepare
m-a a-i virtualbox-ose-source

Poi attivare il Dynamic Module-Assistant Kernel Module Support per virtualbox, così la prossima volta che il kernel Linux viene aggiornato verrà preparato anche un modulo virtualbox per esso, senza intervento manuale. Per fare ciò, aggiungere virtualbox-ose-source al file di configurazione /etc/default/dmakms.

mcedit /etc/default/dmakms
virtualbox-ose-source

Infine riavviare il computer.

Questa è una lettura essenziale sul funzionamento di dmakms

Installare sidux nella macchina virtuale

Usare il wizard di virtualbox per creare una nuova macchina virtuale per sidux. Poi seguire le istruzioni per una normale installazione di sidux.

VirtualBox ha un aiuto esaustivo in formato PDF che si può scaricare dal loro sito: www.virtualbox.com

Booting and installing sidux to a QEMU Virtual Machine

È disponibile uno strumento con interfaccia grafica QT come aiuto per configurare QEMU:

apt-get install qtemu

Creare l'immagine del disco fisso

Per avviare qemu probabilmente servirà una immagine di disco fisso. Questo è un file che immagazzina il contenuto del disco fisso emulato.

Usare il comando seguente per creare il file immagine denominato "sidux.qcow":

qemu-img create -f qcow sidux.qcow 3G

Il parametro "3G" specifica la dimensione del disco; in questo caso appunto 3 GB. Si può usare il suffisso M per megabyte (per esempio "256M"). Non ci si deve preoccupare troppo riguardo alla dimensione del disco - il formato qcow comprime l'immagine cosicché lo spazio vuoto non si aggiunge alla dimensione di questo file.

Installare il sistema operativo

Questa è la prima volta che serve l'avvio dell'emulatore. Tenere presente che quando si clicca dentro la finestra di qemu, il puntatore del mouse viene catturato. Per rilasciarlo premere:

Ctrl+Alt

Se serve un floppy avviabile, avviare Qemu con:

qemu -floppy sidux.iso -net nic -net user -m 512 -boot d sidux.qcow

Se il CD-ROM è avviabile, avviare Qemu con:

qemu -cdrom sidux.iso -net nic -net user -m 512 -boot d sidux.qcow

Ora si può installare sidux come su un disco fisso reale.

Avviare il sistema

Per avviare il sistema, digitare:

qemu [hd_image]

Una buona idea è utilizzare immagini overlay. In questo modo si possono creare le immagini del disco fisso una volta e poi dire a Qemu di salvare i cambiamenti in un file esterno. Ci si può sbarazzare del tutto dell'instabilità dato che è facile ritornare ad uno stato precedente del sistema.

Per creare una immagine overlay, digitare:

qemu-img create -b [[base''image]] -f qcow [[overlay''image]]

Sostituire l'immagine del disco fisso a base_image (nel nostro caso sidux.qcow), dopodiché si può avviare qemu con:

qemu [overlay_image]

L'immagine originale non verrà toccata. NOTARE: l'immagine di base non può essere rinominata o spostata in quanto l'overlay si ricorda il percorso completo dell'immagine di base.

Usare qualsiasi partizione reale come partizione primaria singola di una immagine del disco

Talvolta si potrebbe voler usare una delle partizioni del sistema dall'interno di qemu (per esempio se si vuole avviare sia la macchina reale che qemu usando una certa partizione come root). È possibile farlo usando il software RAID in modalità lineare (serve il driver del kernel "linear.ko") e un dispositivo loopback: il trucco è mettere dinamicamente un master boot record (MBR) all'inizio della partizione reale che si vuole inglobare in una immagine del disco grezza di qemu.

Supponiamo di avere una partizione pulita e non montata /dev/sdaN con qualche filesystem su di essa che si vuole sia parte di una immagine disco di qemu. Prima salvare in un piccolo file l'MBR:

dd if=/dev/zero of=/percorso/verso/mbr count=32

Verrà creato un file di 16 KB (32 * 512 byte). È importante non crearlo troppo piccolo (anche se a MBR serve solo un singolo blocco di 512 byte), poiché più piccolo sarà e più piccola dovrà essere la parte più grossa del dispositivo del software RAID, e ciò potrebbe influire sulle prestazioni. Poi impostare un dispositivo di loopback al file MBR:

losetup -f /percorso/verso/mbr

Supponiamo che il dispositivo risultante sia /dev/loop0, in quanto potremmo non avere ancora usato altri loopback. Il prossimo passo sarà quello di creare il "combinato" MBR e /dev/sdaN (immagine disco che usa il software RAID):

 modprobe linear
 mdadm --build --verbose /dev/md0 --chunk=16 --level=linear --raid-devices=2 /dev/loop0 /dev/sdaN

Il risultante /dev/md0 sarà quello che useremo come immagine del disco grezza qemu (non dimenticare di impostare i permessi in modo che l'emulatore vi possa accedere). L'ultimo (e un po' scaltro) passo è impostare la configurazione del disco (geometria del disco e tabella della partizioni) in modo che il punto di inizio della partizione primaria nell'MBR si abbini a quello di /dev/sdaN dentro /dev/md0 (un offset di esattamente 16 * 512 = 16384 byte in questo esempio). Si può fare usando fdisk sulla macchina host, non nell'emulatore: la routine predefinita di rilevamento di dischi grezzi produce un "non kilobyte-roundable offsets" (es. 31.5 KB, come nella sezione precedente) che non può essere gestita dal codice del software RAID. Quindi, dall'host:

 fdisk /dev/md0

Creare una partizione primaria singola corrispondente a /dev/sdaN, e giocare con il comando "s"ector dal menu "x"pert finché il primo cilindro (dove inizia la prima partizione) si abbina con la dimensione dell'MBR. Alla fine scrivere ("w"rite) il risultato nel file. Finito. Ora si ha una partizione che si può montare direttamente dall'host, come se fosse una parte di una immagine disco qemu:

 qemu -hdc /dev/md0 [...]

Si può naturalmente impostare in sicurezza qualsiasi bootloader di questa immagine disco che usa qemu, purché la partizione originale /boot/sdaN contenga gli strumenti necessari.

Usare il modulo acceleratore di QEMU

Gli sviluppatori di qemu hanno creato un modulo opzionale per il kernel per accelerare qemu quasi fino ai livelli di prestazioni native del sistema. Questo dovrebbe essere caricato con l'opzione:

major=0

per automatizzare la creazione del necessario dispositivo /dev/kqemu. Il seguente comando:

echo "options kqemu major=0" >> /etc/modprobe.conf

imposterà modprobe.conf perché l'opzione venga aggiunta ad ogni caricamento del modulo.

qemu [...] -kernel-kqemu

Il comando qui sopra abilita la virtualizzazione completa migliorando notevolmente la velocità.

Per attivare qemu:

qemu -cdrom /tmp/pkg/sidux-debug.iso -net nic -net user -m 512

Qui si trova la documentazione ufficiale del progetto QEMU.

Alcuni contenuti riguardo a QEMU sono stati tratti dal wiki di arklinux sotto la Licenza 1.2 della documentazione libera GNU e modificati per il manuale sidux.

Page last revised 13/04/2010 1450 UTC