• Virtualizzare con qemu

    by  • agosto 17, 2007 • Altro informatica, GNU/Linux, Smanettamenti, Software, Virtualizzazione • 1 Comment • 5.233 visite

    Qemu è un software open source utile a virtualizzare sistemi operativi all’interno di un sistema base. Quindi dalla propria linux box (ma esiste anche una versione per windows) puoi far girare una macchina virtuale con altri sistemi operativi.

    Qemu purtroppo sembra non apprezzare le partizioni di windows xp, almeno a me non funziona e pare che non sia l’unico; però ci sono altre possibilità come installare windows in un file immagine.

    PCLinuxOS1 da Ubuntu by qemu

    Oltre a far partire altre partizioni con altri SO (per sapere quali la cosa migliore è provare non c’è una lista ufficiale), è possibile fare il boot di una semplice iso, oppure molto interessante è possibile usare dei file immagine come se fossero delle vere e proprie partizioni.

    Kqemu è un modulo del kernel che permette a qemu di aumentare sensibilmente le prestazioni della macchina virtuale, è stato recentemente rilasciato sotto GPL.

    KVM ha la stessa funzione di kqemu ma consente di sfruttare le caratteristiche degli ultimi processori che integrano le caratteristiche Intel VT e AMD-V.

    INSTALLIAMO QEMU E KQEMU

    Dopo questa pappardella passiamo all’azione:

    sudo apt-get install qemu module-assistant

    In questo modo installeremo qemu e con module-assistant ci prepariamo a compilare il modulo kqemu

    sudo m-a prepare
    sudo m-a install kqemu

    Se tutto va bene il modulo sarà stato compilato, ora lo carichiamo:

    sudo modprobe kqemu

    Ora guardiamo se è stato creato /dev/kqemu, se non esiste lo creiamo noi, poi in ogni caso gli diamo i permessi giusti:

    sudo mknod /dev/kqemu c 250 0
    sudo chmod 666 /dev/kqemu

    KVM

    Oltre a installare qemu e module-assitant dovermo installare kvm:

    sudo apt-get install qemu module-assistant kvm

    La procedura per compilare il modulo è identica a quella di kqemu con ovviamente kvm al posto di kqemu in tutti i passaggi. In più cambia il nome del modulo da caricare con modprobe che dipende dal processore (kvm-intel per i processori intel e kvm-amd per quelli amd).

    IMPORTANTE: Da ora in avanti utilizzerò il comando qemu, ma se usate kvm al posto di qemu scrivete kvm, la sintassi per il resto è la stessa.

    INIZIAMO A VIRTUALIZZARE ;)

    Kqemu dovrebbe essere a posto, ora analizziamo la sintassi di qemu, per esempio:

    qemu -boot a -hda immagine.img -fda grub-0.97-i386-pc.ext2fs -cdrom /dev/cdrom

    • -boot indica il device con il quale eseguire il boot: a –> floppy, c –> hard disk, d –> cdrom
    • -hda indica quale file o device deve essere usato come hard disk nel sistema virtualizzato
    • -fda indica quale file o device deve essere usato come floppy nel sistema virtualizzato
    • -cdrom indica quale file o device deve essere usato come cdrom nel sistema virtualizzato

    In questo caso quindi abbiamo una macchina virtuale che fa il boot dal floppy (grub-0.97-i386-pc.ext2fs che è un’immagine di un vero floppy bootable di grub) che ha un hard disk in /dev/hda (immagine.img) e un cdrom (che in questo caso è il vero cdrom del nostro computer).

    Un altro esempio per iniziare a capire può essere un semplice boot di una live:

    qemu -boot d -cdrom immagineiso.iso

    Avviamo una macchina facendo il boot dal cdrom (-boot d) e come cdrom mettiamo l’immagine iso(-cdrom immagineiso.iso), poi naturalmente se abbiamo bisogno dell’hard disk per passarci dei file siamo liberi di usare un vero device o un immagine come hard disk nel sistema virutalizzato (-hda ecc…).

    LE IMMAGINI

    Il tool qemu-img ci permette di creare comprimere e convertire dei file immagine utili alla virtualizzazione, esempio:

    qemu-img create -f [formato] immagine.img 2G

    Così creiamo un immagine del formato che decidiamo noi grande 2gb; i formati disponibili sono:

    • raw: è il parametro di default, ovvero se non viene specificato -f al momento della creazione il file assumerà il formato raw. Ha il pregio della portabilità , può essere adoperato con più programmi di virtualizzazione.
    • qcow: vecchio formato usato da QEMU per mantenere la compatibilità con versioni precedenti alla 0.9.0, supporta la compressione e la cifratura.
    • qcow2: miglior formato fra quelli in uso soprattutto se l’immagine creata servirà solo per QEMU (versione >= 0.9.0), lo spazio occupato sul disco rigido del sistema operativo ospitante avrà le dimensioni usate realmente dalla virtual machine. Supporta la compressione e la cifratura.
    • cow: vecchio formato usato da QEMU che tra l’altro non funziona su Windows.
    • cloop: è comodo per creare immagini di cd rom avviabili come knoppix o live disto.
    • vmdk: è il formato usato da Vmware 3 e 4.

    (descrizione immagini da valent-blog.eu)

    Facciamo un esempio pratico, voglio provare l’ultima beta di Ubuntu (Gutsy Gibbon) ma non ho voglia di partizionare l’hard disk e non mi basta la live.

    qemu-img create gutsy.img 4G
    qemu -boot d -hda gutsy.img -cdrom Gutsy.iso

    Partizioniamo e installiamo come se fosse tutto normale, poi dal primo avvio diamo un semplice:

    qemu gutsy.img

    È possibile poi comprimere un immagine, normalmente l’immagine occupa tutto lo spazio che la macchina virtuale ha disponibile, quindi se abbiamo creato un immagine di 4gb l’immagine occuperà realmente 4gb sul nostro hard disk anche se all’interno c’è spazio vuoto. Per comprimere questo spazio diamo

    qemu-img create -c gutsy.img

    Nella prossima puntata virtualizziamo GNU/Hurd

    Buona virtualizzazione

    [1]Si la volevo provare…seconda su distrowatch…

    One Response to Virtualizzare con qemu

    1. Pingback: Get out of the box » Proviamo Gnu/Hurd su qemu

    Lascia un Commento

    L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *