A volte è comodo poter accedere alle immagini in formato raw create per immagazzinare i file e il filesystem di una macchina virtuale. Dunque c’è un modo per montare il file del disco virtuale sul filesystem dell’host. La prima cosa da fare è ovviamente spegnere la virtual machine. Nelle vecchie versioni di Xen era disponibile un tool lomount che permetteva di montare le partizioni contenute in un file raw, ma ora è stato tolto, perciò bisogna fare in un altro modo.
Mediante l’uso dei questa sequenza di comandi è possibile innestare una partizione del disco virtuale nella directory /mnt:
lenny.img è il file immagine in formato raw che contiene i dati della macchina virtuale (sia Xen o QEMU (eventualmente KVM).
# losetup /dev/loop0 lenny.img
Il comando non fa altro che creare un dispositivo loop, qui si è scelto il numero 0 ma se dovesse essere già occupato (usato da qualche altro programma) è possibile sostituire loop0 con loop1, loop2… (avendo cura di ricordare il cambiamento e riportarlo in tutti i passaggi della procedura).
# kpartx -av /dev/loop0
Lo strumento kpartx non fa altro che leggere la tabella delle partizioni del device specificato e crea un device map per ogni segmento di partizione riconosciuto. Con l’opzione v, viene visualizzato il seguente output che indica quali partizioni sono presenti nell’immagine. [ad#midarticlequadr]
add map loop0p1 (253:0): 0 6731172 linear /dev/loop0 63
add map loop0p2 (253:1): 0 433755 linear /dev/loop0 6731235
add map loop0p5 : 0 433692 linear 253:1 63
Sono state riconosciute 3 partizioni, la prima contiene il filesystem radice / mentre l’altra è una partizione estesa ce serve per memorizzare la swap. Perciò è la prima che interessa: loop0p1.
Ora col comando mount si deve innestare il device map della prima partizione su una directory del host. In questo caso è stato scelto /mnt
# mount /dev/mapper/loop0p1 /mnt/
Ora in /mnt si trovano tutti i dati della macchina virtuale, per cui è possibile inserire file o prelevarli comodamente.
xen-dom0:/# cd /mnt/
xen-dom0:/mnt # ls
bin dev initrd.img media proc selinux tmp vmlinuz
boot etc lib mnt root srv usr
cdrom home lost+found opt sbin sys var
Per smontare il tutto e ripoter adoperare l’immagine è necessario uscire dalla cartella in cui è stato montata la partizione:
xen-dom0:/mnt/boot # cd
xen-dom0:/root #
Ora smontare la partizione dal device map:
# umount /dev/mapper/loop0p1
Dissociare le partizioni dal device map:
# kpartx -vd /dev/loop0
Verrà mostrato un output simile:
del devmap : loop0p5
del devmap : loop0p2
del devmap : loop0p1
L’ultimo passo è liberare la periferica di loop:
# losetup -d /dev/loop0
Spero che questo how to sia stato utile.
Lascia un commento