Testare la configurazione di avvio presente su hard disk con qemu senza riavviare

L’emulatore QEMU consente di testare agevolmente le ISO delle distribuzioni linux e anche una chiavetta usb avviabile.

L’emulatore  Qemu  – KVM consente anche di testare la configurazione di boot degli hard disk presenti nel sistema senza la necessita di procedere al riavvio.

per testare il disco sda  digitare ad esempio

kvm -hda /dev/sda

o

qemu-system-x86_64 -hda /dev/sda


qemu può essere installato con:

sudo apt-get install qemu

oppure

sudo apt-get install qemu-kvm

Testare una chiavetta usb di avvio

Nella stessa modalità può essere per testata una chiavetta usb di avvio.

kvm -hda /dev/sdc

oppure

qemu-system-x86_64 -hda /dev/sdc


Volendo è possibile specificare più parametri in fase di avvio

kvm  -rtc base=localtime -m 2G -vga std -drive file=/dev/sdc,cache=none,format=raw,if=virtio

oppure

qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 2G -vga std -drive file=/dev/sde,readonly,cache=none,format=raw,if=virtio

Provare una distro live con qemu

L’emulatore Qemu – kvm consente anche di provare distro linux direttamente dal file .iso.

Ad esempio una live antiX su potrà essere eseguita  con  :

kvm -cdrom antiX-16.2_x64-base.iso -m 512

Con -m viene specificata la RAM da dedicare.

Se il PC presenta qualche GB di RAM ( ad esempio 4GB)  L’avvio di ISO con qemu risultarà senz’altro efficace.

Volendo è possibile anche indicare il disco immagine  IDE hard disk 0.
Per creare il disco immagine

qemu-img create  qemu_hda.img 2G

Quindi il comando per lanciare la ISO diventa

kvm  -cdrom antiX-16.2_x64-base.iso  -hda qemu_hda.img   -m 512

oppure

kvm  -cdromantiX-16.2_x64-base.iso  -hda qemu_hda.img   -m 512 -boot d

Nota: Il formato di default per il disco immagine è raw volendo si può precisare anche il formato vmdk di vmware :    qemu-img create  -f vmdk qemu_hda.vmdk 2G

Risorse:

MultiBoot USB avviare ISO da pendrive USB

MultiBoot USB ( mbusb ) è un progetto mantenuto da Agus Lopez con una collezione di oltre un centinaio di GRUB files e script che permettono di creare una chiavetta USB capace di avviare molte distribuzioni Linux a partire dai rispettivi ISO files. Questi file ISO e Utilities Kernel consentono utilizzo di LiveCD ed eventualmente anche l’installazione del sistema operativo.

Una modalità interessante di utilizzo consiste nell’aggiunta di MultiBoot USB a una pendrive con già installato GRUB2.

Per attivare la modalità in una pendrive con installato GRUB2 si deve copiare la directory mbusb.d contenente tutti i files di configurazione GRUB2 nella directory <grub> di boot della pendrive, in genere in /boot/grub/  e quindi modificare il file di configurazione grub.cfg

Se la chiavetta si trova in /dev/sdc montare la chiavetta con

su

mkdir /media/sdc1 

mount -t auto /dev/sdc1 /media/sdc1

copiare i files GRUB di configurazione con

cp -rf mbusb.d  /media/sdc1/boot/grub/

copiare il file mbusb.cfg da utilizzare per l’inserimento del menu <Multiboot > per l’avvio delle ISO nel menu di  GRUB 2.0

cp mbusb.cfg   /media/sdc1/boot/grub

Modificare manualmente il file di configurazione grub.cfg per consentire l’utilizzo del file mbusb.cfg per la generazione del menu con le ISO avviabili

# add  mbusb configuration 
source /boot/grub/mbusb.cfg

A questo punto non resta che copiare le ISO desiderate nella chiavetta. Come si legge nel file mbusb.cfg  il path  atteso  per le iso è /boot/isos

...
# Custom variables
set isopath="/boot/isos"
export isopath
...

creare la directory isos

mkdir /media/sdc1/boot/isos

quindi copiare le ISO

 

La lista dei files ISO supportati è disponibile nella pagina:  https://mbusb.aguslr.com/isos.html

La pendrive può essere testata con kvm-qemu con un comando tipo

kvm -hda /dev/sdc

 

per installare qemu kvm

sudo apt-get install qemu-kvm

Comando più articolato per il test della pendrive USB con vari parametri

kvm -rtc base=localtime -m 2G -vga std -drive file=/dev/sdc,readonly,cache=none,format=raw,if=virtio
o
qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 2G -vga std -drive file=<USB device>,readonly,cache=none,format=raw,if=virtio

Per una descrizione completa delle modalità di installazione fare riferimenro alla pagina:  https://mbusb.aguslr.com/install.html

 

Oltre a ISO Linux, Unix, Android risultano supportate anche le seguenti  utilities

AVG Rescue CD
Avira Rescue System
Boot-Repair-Disk
boot.rackspace.com
Clonezilla Live
DBAN
FalconFour’s UBCD
FreeDOS
Hiren’s BootCD
KolibriOS
Memtest86+
MemTest86
MenuetOS
netboot.xyz
Plop Boot Manager
Redox
Seagate SeaTools
SpinRite
Super Grub2 Disk
Ultimate Boot CD

 

Risorse:

 

 

Preparare manualmente una chiavetta usb di installazione per debian – qualsiasi versione

Aggiornamento maggio 2018

Di seguito la procedura per preparare manualmente una chiavetta usb per installare una qualsiasi versione di debian  ubuntu per la quale sia disponibile un’immagine iso.

La procedura descritta utilizza la modalità hd-media che consente di avviare una distribuzione debian/ubuntu utilizzando i file dell’installatore e un file .iso. Questa modalità è stata pensata per avviare l’installar direttamente da harddisk.
Perchè funzioni, come anticipato, è necessaria la presenta a livello root di:

  • installer files
    • hd-media/vmlinuz
    • hd-media/initrd.gz
  • un file immagine .iso di debian/ubuntu.

La caratteristica del kernel  e dell’immagine del ramdisk iniziale di tipo hd_media è di  riuscire ad utilizzare l’immagine .iso per la gestione dell’installazione del sistema operativo.

Come prerequisito  installare i pacchetti per il boot dalla chiavetta usb. In questo caso il bootlader utilizzato è il comodo syslinux. Per collocare syslinux installare anche il pacchetto mtools. Per interventire sul master boot sector si installa anche il pacchetto mbr.  L’utilizzo di questi pacchetti necessità di grande attenzione. Devono infatti essere applicati al dispositivo corretto se applicati all’hard disk principale possono determinare l’impossibilità di riavviare il computer principale.

sudo apt install syslinux mtools mbr

Partizionare la penna usb con parted o fdisk. Attenzione quando si utilizzano i comandi per partizionare i dischi. I comandi vanno applicati al disco corretto.

Controllare i dispositivi presenti con parted -l

# parted -l 

...
Model: JetFlash Transcend 8GB (scsi)
Disk /dev/sdb: 7902MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
...                                                              

Avviare parted e creare una partizione primaria fat16 ( dimensione massima 4GB )

# parted /dev/sdb
...
(parted) mkpart
Partition type?  primary/extended? primary                                
File system type?  [ext2]? fat16                                          
Start? 1M                                                               
End? 4GB                                                                 

Formattare la partizione fat16 creata nello stick usb con mkfs

sudo mkfs -t vfat /dev/sdx1

Installare syslinux per consentire l’avvio della chiavetta usb

sudo syslinux -s /dev/sdx1

Per poter copiare i file nella chiavetta usb è necessario effettuare il mount della stessa.

Creare una directory temporanea in /tmp ed effettuare il mount

sudo mkdir -p /tmp/usbpen
sudo mount -t vfat /dev/sdx1 /mnt/usbpen

Scaricare i file di avvio hd-media per sistemi a 64 con

wget http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/hd-media/vmlinuz

wget http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/hd-media/initrd.gz

Scaricare la .iso xfce corrente con

wget /http://cdimage.debian.org/cdimage/release/current-live/amd64/iso-hybrid/debian-live-9.4.0-amd64-xfce.iso

Copiare nella penna usb  i file dell’installatore e il file .iso debian:

  • vmlinuz ( kernel )
  • initrd.gz ( immagine del ramdisk iniziale )
sudo cp vmlinuz /tmp/usbpen
sudo cp initrd.gz /tmp/usbpen

sudo cp debian-live-9.4.0-amd64-xfce.iso /tmp/usbpen

Installare l’MBR ( Mast Boot Record)

Se la chiavetta non si avvia  installare l’MBR.
Due possibilità utilizzare l’mbr da 440 bs presente in:

/usr/lib/syslinux/mbr.bin 
o
/usr/lib/SYSLINUX/mbr.bin

( attenzione al dispositivo,sbx, da selezionare)

sudo dd if=/usr/lib/SYSLINUX/mbr.bin of=/dev/sbx bs=440 count=1

o

syslinux -maf /dev/sdc1

o

sudo dd if=/usr/lib/SYSLINUX/mbr.bin of=/dev/sbx

oppure  con

install-mbr ( attenzione al dispositivo,sbx, da selezionare)

sudo install-mbr /dev/sdx

Testare la chiavetta di usb di boot com QEMU

Per provare la chiavetta USB si può far ricorso a QEMU.

Il comando da utilizzare  è :

qemu-system-x86_64 -hda /dev/sdb

oppure

kvm -hda /dev/sdx

QEMU può essere installato con

sudo apt-get install qemu-kvm

oppure 

sudo apt-get install qemu

 

Se l’MBR è stato installato con lìopzione install-mbr all’avvio potrebbe essere necessario premere il sequenza prima il tasto a e poi 1.

Il login potrebbe avere la seguente, un po’ criptica,  sequenza :

MBR FA:

premere il tasto a

Quindi appare la scritta

MBR 1234F:

Premere 

Dopo di che si avvia la l’installazione

 

Considerato che la chiavetta utilizzata è una 8GB è possibile creare un’ulteriore partizione con parted

 
(parted) mkpart
Partition type?  primary/extended? primary                                
File system type?  [ext2]? fat16                                          
Start? 4294                                                               
End? 7902                                                                 
Warning: You requested a partition from 4294MB to 7902MB (sectors 8386718..15433593).
The closest location we can manage is 4295MB to 7902MB (sectors 8388608..15433727).
Is this still acceptable to you?
Yes/No? Yes   

 

 

A questo punto è possibile smontare la chiavetta usb

sudo umount /mnt/usbpen

 

Risorse:

 

Testare una chiavetta usb di boot o una ISO con qemu

L’emulatore QEMU consente di testare agevolmente le ISO delle distribuzioni linux e anche una chiavetta usb avviabile.

Installare qemu con:

sudo apt-get install qemu

oppure

sudo apt-get install qemu-kvm

per testare una chiavetta usb di avvio digitare

kvm -hda /dev/sdb

oppure

qemu-system-x86_64 -hda /dev/sdb

Una ISO live potrà essere eseguita  con  :

kvm -cdrom slax-6.1.2.iso -m 512

Con -m viene specificata la RAM da dedicare.

Sel il PC presenta qualche GB di RAM ( ad esempio 4GB)  L’avvio di ISO con qemu risultarà senz’altro efficace.

Volendo è possibile anche indicare il disco immagine  IDE hard disk 0.
Per creare il disco immagine

qemu-img create  qemu_hda.img 2G

Quindi il comando per lanciare la ISO diventa

kvm  -cdrom slax-6.1.2.iso  -hda qemu_hda.img   -m 512

oppure

kvm  -cdrom slax-6.1.2.iso  -hda qemu_hda.img   -m 512 -boot d

 

Nota: Il formato di default per il disco immagine è raw volendo si può precisare anche il formato vmdk di vmware :    qemu-img create  -f vmdk qemu_hda.vmdk 2G

Risorse:

 

 

KVM: installare Debian 7.4 VM Wheezy via virt-manager

Obiettivo: Installare una macchina virtuale Debian 7.4 Wheezy su server Ubuntu con KVM utilizzando virt-manager 0.9.3. Lanciare Virtual Machine Manager da menu o da terminale con

virt-manager

Creare il disco virtuale per la VM

Per creare il disco virtuale che ospiterà la Virtual Machine  KVM-QEMU possiamo agire in  più modi possiamo usare l’interfaccia grafica oppure il terminale. Optiamo per l’interfaccia grafica. Due  sono le possibilità creare il disco durante la creare della VM oppure separatamente. Scegliamo la seconda. Quindi Selezionare EDIT > Connection Details  se si sono più storage scegliere quello da utilizzare. Lo storage di base è denominato default.  Creare il nuovo discopremendo il pulsante <New Volume> in basso  al centro.

Il formato qcow2 è quello più efficente ed è tipico di kvm-qemu. Mentre il formato raw è da preferire in caso di conversioni della VM. Se non si hanno problemi di spazio disco e si usa il formato raw è preferibile alloccare tutto lo spazio disco.

creare New image disk for VM
creare New image disk for VM

Per installare Debian Wheezy 7.4  64 bit usiamo la modalità online usando la iso netinstall, debian-7.4.0-amd64-netinst.iso. La iso può essere scaricata da http://www.debian.org/CD/netinst/

wget http://cdimage.debian.org/debian-cd/7.4.0/amd64/iso-cd/debian-7.4.0-amd64-netinst.iso

Create una nuova macchina Virtuale

Premere il pulsante New

Create New VM using virt-manager
Create New VM using virt-manager

Creazione nuova Virtual Machine Debian 7.4 Wheezy – Step 2/5 Selezionare la iso netinstall Debian 7.4 Wheezy e precisare Sistema Operativo e Versione

virt-manager Create New VM  2/5
virt-manager Create New VM 2/5

Step 3/5  –  Nuova Virtual Machine Debian 7.4 Wheezy Indicare la quantità di memoria e il numero di CPU

Step 3/5 Virt-manager new VM
Step 3/5 Virt-manager new VM

Step 4/5  –  Nuova Virtual Machine Debian 7.4 Wheezy Selezionare il disco immagine creato in precedenza e destinato ad accogliere la Virtual Machine

Step 4/5 Virt-manager select disk image
Step 4/5 Virt-manager select disk image

La macchina virtuale è stata creata. E’ possibile visualizzare le opzioni avanzate e customizzare  l’installazione prima di iniziare.

5/5 Creazione standard della VM ultimata
5/5 Creazione standard della VM ultimata

Ultimata la creazione standard della VM, se è stata attivata l’opzione customize, è possibile aggiungere altro hardware con <Add Hardware>. Aggiungiamo ad esempio una seconda NIC conviente usare il device model virtio

Virt-Manager Create VM add NIC
Virt-Manager Create VM add NIC
virt-manager VM check configuration
virt-manager VM check configuration

Prima iniziare l’installazione e possibile rivedere i vari settaggi ed eventualmente modificarli. Quindi avviare l’installazione con <Begin Installation>.

Installazione di Debian 7.4 Wheezy con Virt Manager

Una volta premuto begin installation apparira la schermata di avvio installazione di Debian 7.4.

L’installazione procederà in modo tradizionale con selezione/impostazione/installazione di:

  • linguaggio, tastiera,
  • schede di rete,
  • partizionamento
  • pacchetti software  …
  • Boot loader
Start Centos-5 installation
Start Debian 7.4 Wheezy installation

Verrà richiesto di selezionare il linguaggio e la tastiera optare per [C – No localization] in modo da scegliere manualmente la combinazione ottimale:  linguaggio, tastiera, country, fuso orario …

Debian 7.4 Wheezy- Choose Language
Debian 7.4 Wheezy – Choose Language
Debian 7.4 Wheezy - Choose Keyboard type
Debian 7.4 Wheezy – Choose Keyboard type

Se ci sono più schede di rete attivate, per l’installazione, è necessario selezionare la scheda di rete di default. Ne abbiamo 2 optiamo per la la eth0.  Quindi è necessario configurare il TCP/IP optiamo le impostazioni di default ().

Indicare ora l’archivio Debian mirror. Viene proposto ftp.it.debian.org optiamo invece per

  •  mi.mirror.garr.it
Debian 7.4 Wheezy - Choose Installation type
Debian 7.4 Wheezy – Choose Installation type

Per il tipo di partizionamento optiamo per l’automatico così da impegnerà tutto lo spazio immagine a disposizione. Due le partizione create per un totale di 12 GB.
Quindi si dovranno  selezionare anche i pacchetti software da installare sceglio tra i set proposti

Debian 7.4 Wheezy partitioning warning
Debian 7.4 Wheezy selezionare il software

Completata l’installatione si deve effettuare il reboot.

Debian 7.4 Wheezy installation complete
Debian 7.4 Wheezy installation complete

 

Altre risorse

Virsh tools per gestire le macchine virtuali in KVM

Virsh è un tool da linea di comando che consente di gestire le macchine virtuali nell’ambiente di emulazione kvm.

virsh sarà disponibile una volta installato

apt install libvirt-client
o
apt-get install libvirt-bin

Molti i comandi che virsh mette a disposizione

# virsh list

Il comando fornisce l’elenco delle virtual machine in esecuzione o in pausa:

E’ possibile anche accedere al terminale virsh in questo caso il comando precedente verrà eseguito semplicemente digitando list. Per accedere al terminale si digita virsh 

virsh
Welcome to virsh, the virtualization interactive terminal.

Type: 'help' for help with commands
 'quit' to quit

Ecco la listade delle virtual machine in esecuzione o in pausa:

virsh # list
 Id Name State
----------------------------------------------------VMlist
 2 centos59_165 running
 5 Debian_74_wheezy running
 6 Lub1404 running
 8 Ubuntu12041S-2 running
 9 Windows7 running
12 u1404-test paused

Possiamo  visualizzare i pools a disposizione con

:virsh pool-list
Name State Autostart 
-------------------------------------------
 default active yes 
 VM-libvirt active yes

Per visualizzare tutte le vm  usare

virsh list --all

per installare virsh

sudo apt-get install libvirt-bin

Per connettersi ad un ipervisore remoto

virsh -c qemu+ssh://maurizio@192.168.1.140/system

Ridimensionare una macchina virtuale con virsh

Ad esempio per ridimesionare il disco di una VM windows 7 visualizzare dapprima le informazioni del disco da ridimensionare con virsh vol-info

# virsh vol-info /media/VM/libvirt/images/W7-64b-ETH.img
 Name: W7-64b-ETH.img
 Type: file
 Capacity: 24.00 GiB
 Allocation: 24.00 GiB

Quindi ridimensioniamo con

# virsh vol-resize /media/VM/libvirt/images/W7-64b-ETH.img 30G --allocate
 Size of volume 'W7-64b-ETH.img' successfully changed to 30G

se siamo dentro virsh possiamo controllare le nuove dimensioni con  vol-info:

virsh # vol-info /media/VM/libvirt/images/W7-64b-ETH.img
 Name: W7-64b-ETH.img
 Type: file
 Capacity: 30.00 GiB
 Allocation: 30.00 GiB

Avviamo la macchina virtuale W7-64b-ETH.img con  virsh start

: virsh start W7
 Domain W7 started

Gestire una machina virtuale

Per fermare una macchina Virtuale si può utilizzare un comando del tipo

virsh --connect qemu:///system shutdown NomeVirtualMachine

Modificare il file di configurazione .xml di una macchina virtuale

La configurazione della macchine virtuali è conservata in file .xml in

/etc/libvirt/qemu

la struttura del file è del tipo :

<domain type='kvm'>
       <name>debian_DMZ</name>
       <uuid>b9f962c3-4031-4d31-b41d-b3aed75e693a</uuid>
       <memory unit='KiB'>1048576</memory>
       <currentMemory unit='KiB'>1048576</currentMemory>
       <vcpu placement='static'>1</vcpu>
       <os>
             <type arch='x86_64' machine='pc-i440fx-2.1'>hvm</type>
             <boot dev='hd'/>
       </os>
       <features>
             ...

Le modifiche possono essere apportate utilizzando il comando

virsh edit [Virtual-machine]

per l’esempio soprariportato virsh edit debian_DMZ

Il file .xml non può essere digitato direttamente perchè autogenerato.

Se si tenta la digitazione  diretta con comando del tipo nano debian_DMZ si ottiene il warning che segue.

WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
       virsh edit debian_DMZ
or other application using the libvirt API.

<domain type='kvm'>
       <name>debian_DMZ</name>
       <uuid>b9f962c3-4031-4d31-b41d-b3aed75e693a</uuid>
       ...

 

Macchine Ubuntu/Debian Installare acpid

Perchè l’arresto avvenga correttamente è necessario che sia installato acpid. Diversamente l’arresto sarà brutale come quando si toglie l’alimentazione con conseguenze che possono portare alla perdita di dati.

Una volta arrestata la VM può essere clonata ad esempio con

virt-clone --connect=qemu:///system -o CurrentVM -n NewVM -f /percorso_VMs/NewVM.gcow2

Se si clona una VM per evitare problemi è necessario procedere anche alla rinomina  del host modificando i files hosts e hostaname

sudo vim /etc/hosts
sudo vim /etc/hostname

 

 

Altri comandi

 virsh start  NomeVirtualMachine
 virsh reboot NomeVM
 virsh shutdown  NomeVM
 virsh suspend NomeVM
 virsh resume  NomeVM

 per visualizzare i dettagli di una VM  
 virsh dumpxml NomeVM   

 per reimportare i dati di una VM 
 virsh define  Nome VM 

 cancellare una macchina virtuale
 virsh destroy Nome VM 
 virsh undefine NomeVM

 

Risorse:

KVM: installare Windows Server 2008 64 bit VM

Obiettivo: Installare una macchina virtuale Window Server 2008 su server Ubuntu con KVM utilizzando virt-manager 0.9.3. Lanciare Virtual Machine Manager da menu o da terminale con

virt-manager

Creare il disco virtuale per la VM

Per creare il disco virtuale che ospiterà la Virtual Machine  KVM-QEMU possiamo agire in  più modi possiamo usare l’interfaccia grafica oppure il terminale.

Il formato qcow2 è quello più efficente ed è tipico di kvm-qemu. Mentre il formato raw è da preferire in caso di conversioni della VM. Se non si hanno problemi di spazio disco e si usa il formato raw è preferibile alloccare tutto lo spazio disco.

Creare un disco da 40G in formato raw per Windows 2008 utilizzano il terminale e qemu-img

qemu-img create -f raw WS2008_E.img 40G

Create una nuova macchina Virtuale

Per installare Windows 2008 utilizziamo la ISO specifica in questo caso a 64 bit.

Premere il pulsante New

Creare Windows 2008 VM usando virt-manager

Creazione nuova Virtual Machine Windows Server 2008 – Step 2/5 Selezionare la iso W 2008 e precisare Sistema Operativo e Versione

virt-manager Create New VM 2/5

Step 3/5  –  Nuova Virtual Machine W 2008 indicare la quantità di memoria e il numero di CPU

Step 3/5 Virt-manager new VM

Step 4/5  –  Nuova Virtual Windows Server 2008  Selezionare il disco immagine creato in precedenza e destinato ad accogliere la Virtual Machine

Step 4/5 Virt-manager select disk image

La macchina virtuale è stata creata. E’ possibile visualizzare le opzioni avanzate e customizzare  l’installazione prima di iniziare.

5/5 Creazione standard della VM ultimata

Ultimata la creazione standard della VM, se è stata attivata l’opzione customize, è possibile aggiungere altro hardware con <Add Hardware>. Aggiungiamo ad esempio una seconda NIC conviente usare il device model virtio

Virt-Manager Create VM add NIC
Virt-Manager Create VM add NIC
virt-manager VM check configuration
virt-manager VM check configuration

Prima iniziare l’installazione e possibile rivedere i vari settaggi ed eventualmente modificarli. Quindi avviare l’installazione con <Begin Installation>.

KVM: Installazione di Windows 2008 Server Virt Manager

L’installazione di Windows Server 2008 procederà in modo tradizionale con le varie fasi di selezione/impostazione/installazione: linguaggio, tastiera, partizionamento, …

Start Windows Server 2008 

Completata l’installatione si deve effettuare update

Indicazioni per la configurazione di base  di Windows Server 2008  nel post Windows Server 2008 configuration

Risorse:

Convertire .xva Xenserver Virtual Machine in una VM xen .img e avviare in KVM

kvmObiettivo. Convertire macchine  virtuali Windows XP e Windows 7 formato proprietario .xva,  Xenserver Citrix, in Virtual Machine xen .img ( plain xen ) e avviare la VM in KVM oppure in QEMU.  La conversione del formato .xva  in .img sarà realizzata in modo manuale è si basa su uno script di Carsten in Convert Citrix XenServer images to plain Xen – Tutorials / Howtos – Sysconfig’s Wiki. La procedura è stata usata su .xva generate da xenserver 5.6 e 6.0 con .xva anche da 120 GB e con 5 dischi.

Il formato .xva usato da XenServer è un po’ particolare per non dire stravagante. Per ottenere il formato nativo di xen è necessario decomprimere con tar i files .xva che sono archivi compressi.  La decompressione genera una directory Ref:x che conterrà blocchi da 1 MB.  I blocchi dovranno essere concatenati e gli spazi riempiti.

Decomprimere la VM .xva

Nella fase di decompressione verrà creata un dir del tipo Ref:x

tar xf VM-nome.xva   ## es. tar xf WindowsXP.xva 
...
tar: Ref:18/00008193: implausibly old time stamp 1970-01-01 01:00:00
tar: Ref:18/00008193.checksum: implausibly old time stamp 1970-01-01 01:00:00
... 

Prima di entrare nel directory generata e unire i blocchi. Creare lo script VMConvert.sh utilizzando il codice
di seguito

script VMConvert.sh

#!/bin/bash

dd if=/dev/zero of=blank bs=1024 count=1k
test -f $1.img && rm -f $1.img
touch $1.img

max=`ls ???????? | sort | tail -n1`

for i in `seq 0 $max`; do
        fn=`printf "%08d" $i`
        echo -n "$fn of $max"
        if [ -f "$fn" ]; then
                echo " - appending chunk"
                cat $fn >> $1.img
        else
                echo " - filling blank"
                cat blank >> $1.img
        fi
done

rm -f blank

echo "Done."

Rendiamo eseguibile lo script e passiamo nella dir Ref:x

chmod a+x VMConvert.sh 
cd Ref:x             ## es. cd Ref:18

Creare la VM xen standard

avviare l’operazione di concatenazione che genererà il file .img e la VM xen plain

sudo /percorso/VMconvert.sh  WindowsXP

L’operazione richiederà del tempo alla fine avremo l’immagine WindowsXP.img

Controllo dell’immagine xen .img

Il file .img potrà essere controllato effettuando il mount dell’immagine stessa. Per effettuare il mount è necessario determinare prima l’offset utilizzando  fdisk o parted. Con fdisk

/media/VM/QEMU/libvirt/images$ fdisk -l WindowsXP.img 

Disk WindowsXP.img: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc4a4c4a4

        Device Boot      Start         End      Blocks   Id  System
WindowsXP.img1   *          63    50315579    25157758+   7  HPFS/NTFS/exFAT

Start a 63 -> Sector size 512 -> offset= 63*512=32256

Determinato l’offset (32256) possiamo montare l’immagine con:

sudo mkdir /mnt/source
mount -o loop,offset=32256 WindowsXP.img /mnt/source

Avviare la VM Windows in KVM

Per avviare la VM WindowsXp che abbiamo convertito da .xva a .img  nell’infrastruttura di virtualizzazione, propria del kernel Linux, KVM spostiamo l’immagine nella dir con le nostre macchine virtuali per kvm.
Quindi Aprire virt-manager e utilizzare l’opzione import existing disk image.

virt -manager KVM import disk

virt -manager KVM import disk

Quindi [Forward]. Selezionare le desiderate e opportune opzioni e in poco tempo avremo la macchina Virutal Running anche in KVM.

virt-manager-WindowXP

Per un rapido test la macchina virtuale poteva essere avviata anche con

kvm -m 1024 -boot d WindowsXP.img

Risorse:

Provare le immagini ISO live in Ubuntu 12.10 – remastersys – qemu

Grazie all’ emulatore QEMU risulta agevole, in ubuntu 12.10 testare  una distribuzione live per la quale sia diponibile una ISO. Ovviamente la modalità si presta anche per provare le proprie ISO create ad esempio con remastersys

Installare qemu con:

sudo apt-get install qemu-kvm

Se si è generata una custom-backup.iso con remastersys può essere avviata ed utilizzata con

kvm -cdrom custom-backup.iso -m 1024 -vga std

Con l’opzione  -m 1024  si intervenie sulla  la RAM da dedicare alla macchina virtuale,  con  -vga std  sulla risoluzione

Per utilizzare anche l’audio utilizzare l’opzione -soundhw ad esempio:

kvm -cdrom custom-backup.iso -m 1024 -vga std -soundhw all

Di seguito alcune schermate di una macchina virtuale Lubuntu 12.10  ottenuta con remastersys opzione backup file custom-backup.iso:
1) avvio

ubuntu 12.10 qemu-remastersys avvio ubuntu 12.10 qemu-remastersys start

 

2) desktop e windows manager a disposizione

ubuntu 12.10 qemu-remastersys

3) environment awesome si nota pcmanfm con protocollo sftp su macchina remota della rete locale la risoluzione video è 1920×1080.

Comunque con qemu possiamo avviare qualsiasi iso live ad esempio se si dispone della iso slax: slax-6.1.2.iso
La live potrà essere eseguita  con :

kvm -cdrom slax-6.1.2.iso -m 512

Sel il PC presenta qualche GB di RAM ( ad esempio 4GB)  L’avvio di ISO con qemu risultarà senz’altro efficace.

Volendo è possibile anche indicare il disco immagine  IDE hard disk 0.
Per creare il disco immagine

qemu-img create  qemu_hda.img 2G

Quindi il comando per lanciare la ISO diventa

kvm  -cdrom slax-6.1.2.iso  -hda qemu_hda.img   -m 512

oppure

kvm  -cdrom slax-6.1.2.iso  -hda qemu_hda.img   -m 512 -boot d

Nota: Il formato di default per il disco immagine è raw volendo si può precisare anche il formato vmdk di vmware :    qemu-img create  -f vmdk qemu_hda.vmdk 2G

E possibile anche utilizzare interfaccie grafiche per l’avvio di qemu ad esempio qemu-launcher che si installa con:.

sudo apt-get install qemu-launcher

qemu-laucher

Testare una ISO in Ubuntu 12.04 con qemu

Grazie all’ emulatore QEMU risulta agevole, in ubuntu 12.04, testare  una distribuzione live per la quale sia diponibile una ISO.

Installare qemu con:

sudo apt-get install qemu

Qualora di disponga ad esempio della iso slax: slax-6.1.2.iso

La live potrà essere eseguita  con  :

kvm -cdrom slax-6.1.2.iso -m 512

Con -m viene specificata la RAM da dedicare.

Sel il PC presenta qualche GB di RAM ( ad esempio 4GB)  L’avvio di ISO con qemu risultarà senz’altro efficace.

Volendo è possibile anche indicare il disco immagine  IDE hard disk 0.
Per creare il disco immagine

qemu-img create  qemu_hda.img 2G

Quindi il comando per lanciare la ISO diventa

kvm  -cdrom slax-6.1.2.iso  -hda qemu_hda.img   -m 512

oppure

kvm  -cdrom slax-6.1.2.iso  -hda qemu_hda.img   -m 512 -boot d

Nota: Il formato di default per il disco immagine è raw volendo si può precisare anche il formato vmdk di vmware :    qemu-img create  -f vmdk qemu_hda.vmdk 2G