Images im Host-System einbinden
Auf Image-Dateien, die von einem Gast-System verwendet werden, darf das Host-System nicht schreiben (Datenverlust). Unter Unix/Linux können Images, die nur ein Dateisystem enthalten, über das Loopback-Device direkt eingebunden werden. Die virtuelle Festplatte muss dazu im raw-Format vorliegen, partitioniert und mit einem dem mount-Befehl bekannten Dateisystem formatiert sein. Zuerst wird das Image-Format ermittelt.
Host ~$ qemu-img info Platte.img
file format: qcow2
In diesem Beispiel liegt das Image im Format qcow2 vor. Es muss konvertiert werden.
Host ~$ qemu-img convert Platte.img -O raw Platte-raw.img
Anschließend testet man mit fdisk die Partitionen der neuen Image-Datei. Die Option -l zeigt die Partitionstabelle an. Die Option -u bewirkt, dass als Einheit Sektoren verwendet werden.
Host ~$ sudo fdisk -lu Platte-raw.img
Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System
Platte-raw.img1 * 63 409247 204592+ 6 FAT16
Diese Image enthält nur eine Partition. Für den Mount-Vorgang muss der Offset berechnet werden. Er ergibt sich aus dem Startsektor, hier 63, multipliziert mit der Sektorgröße, hier 512 Byte. Der Offset ist also 32256. Als Typ ist hier vfat anzugeben.
Host ~# mount Platte-raw.img /mnt -o loop,offset=32256 -t vfat
Das Aushängen geschieht wie üblich mit umount.
Host ~# umount /mnt
In diesem Beispiel hat das Image mehrere Partitionen.
Host ~# fdisk -lu Platte-raw.img
Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System Platte-raw.img1 * 63 32129 16033+ 83 Linux Platte-raw.img2 32130 305234 136552+ 82 Linux swap Platte-raw.img3 305235 10474379 5084572+ 83 Linux
Um die dritte Partition zu mounten, ist ein Offset von 512 * 305235 notwendig.
Host ~# mount Platte-raw.img /mnt -o loop,offset=$1)
Für das Einbinden und Manipulieren von virtuellen Speichermedien wird die Bibliothek libguestfs entwickelt (siehe http://qemu-buch.de/d/Managementtools/_libguestfs).
