Terminal KVM

wall < "Ganz kurz: KVM & Images"

Broadcast message from spillerm@unixe.de (pts/1) (Sa Apr 10 12:41:41 2010):
4
Diesen Beitrag schrieb ich vor 9 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

Und noch ein Notiz-Schnipsel aus der Sammlung — vielleicht könnt auch ihr etwas damit anfangen, ich bin oftmals sehr glücklich über Notizen dieser Art ;-)

Problemstellung

Die VM basiert auf einem qcow-File — diese lassen sich jedoch nicht ins Filesystem mounten.

$ file myfile.qcow 
myfile.qcow: Qemu Image, Format: Qcow , Version: 2

Eine mögliche Lösung

Man kann die Umwandlung von qcow ins RAW-Format anstossen:

$ qemu-img convert myfile.qcow -O raw myfile.raw

Zur Sicherheit vergewissern: ja, das resultierende File ist nun RAW:

$ file myfile.raw
myfile.raw: x86 boot sector; partition 1: ID=0x83, starthead 1, startsector 32, 7998048 sectors; partition 2: ID=0x82, starthead 3, startsector 7998080, 2000000 sectors

Um das File mounten zu können, benötigen wir dessen Offset:

$ parted myfile.raw unit B print
Model:  (file)
Disk /path/to/myfile.raw: 5368709120B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
 
Number  Start        End          Size         Type     File system  Flags
 1      16384B       4095016959B  4095000576B  primary  ext3              
 2      4095016960B  5119016959B  1024000000B  primary  linux-swap

Und mit dieser Angabe — im Beispiel ist es 16384B — kann das Image nun erfolgreich gemountet werden:

$ mount myfile.raw /mnt -o loop,offset=16384B -t ext3

Nachdem die gewünschten Änderungen vorgenommen wurden das umount nicht vergessen!

$ umount /mnt

Image vergössern

In dem Zuge kann das Image auch vergrössert werden. Beispiel: Image um 4GB vergrössern, dazu erstmal »genulltes« 4GB-RAW-File anlegen:

$ dd if=/dev/zero of=zeros.raw bs=1024k count=4096

Dann diese 4GB an das eigentliche Image ankleben:

$ cat zero.raw >> myfile.raw

Wenn erforderlich, kann das Image nun wieder nach qcow zurückgewandelt werden:

$ qemu-img convert myfile.raw -O qcow myfile-growed.qcow

Und fertig — genial, oder?

4