qcow2 Images unter Linux mounten

Wir haben viel mit virtuellen Maschinen zu arbeiten. Dabei kommt es schon vor, das wir die Maschinen im Host-System mounten müssen um beispielsweise die Netzwerkkonfiguration anzupassen, so dass wir den ersehnten Zugriff auf die VM mit SSH herstellen können.

Im Grunde genommen geht das ganz einfach mit qemu-nbd:

  1. Kernel-Modul laden
modprobe nbd max_part=8 
  1. Image mounten
qemu-nbd --connect=/dev/nbd0 [qcowimage].cow2 
  1. Nun stehen die Partitionen als /dev/nbd0pX (X steht für die Partition) zur Verfügung und können wie gewöhnt als Blockdevice gemounted werden, hier z.B. die erste:
mount /dev/nbd0p1 /mnt/ 

Das “unmounten” besteht hier aus zwei Schritten: erstmal die Partition aushängen, dann das Image beim qemu-nbd “abmelden”:

umount /mnt/
qemu-nbd --disconnect /dev/nbd0