KVM RAW Image erweitern
Ich musste heute ein KVM RAW Image vergrößern und das kann man wie folgt machen:
1. qemu-img resize
Man kann das qemu eigene Tool qemu-img benutzen um ein Image zu resizen:
qemu-img resize image.img +50G
In meinem Fall lief die virtuelle Maschine noch auf Lucid, wo es die Option resize in qemu-img noch nicht gibt. Also kam das nicht in Frage für mich.
2. Zusätzliches leeres Image erzeugen und dieses dann mit dem bestehenden zusammenführen
Dazu legt man mit dem Tool qemu-img ein neues Image an
qemu-img create -f raw additionalspace.img 50G
Nun führt man die beiden Files zusammen
cat image.img additionalspace.img > image_new.img
Auch dies war in meinem Fall nicht möglich, da die Maschine zu wenig Speicherplatz dafür hatte.
3. Das Image mit dd vergrößern
dd if=/dev/zero of=image.img bs=1G count=50 oflag=append conv=notrunc
Diese Option fand bei mir Anwendung und hat wunderbar funktioniert.
4. Das Image mittels cat vergrößern
Dies ist im Grund genau die Version wie vorher, nur ein paar Schritte mehr
dd if=/dev/zero of=additionalspace.img bs=1G count=50G
cat additionalspace.img >> image.img
Statt dd kann man hier natürlich auch qemu-img create nutzen um ein leeres Imagefile zu erstellen.
Bevor man dies tut sollte man natürlich vorher ein Backup des Images anlegen und anschließend ist es nötig natürlich noch das Filesystem zu vergrößern.
Meinen Dank gebührt meinem Kollegen Dennis, da ich heute Abend irgendwie zu fertig war um auf die letzten beiden Optionen zu kommen. Stattdessen fing ich an, das, in meinem Fall nicht kleine Image, auf ein System mit aktuellerer qemu Version zu kopieren um es da mit Variante 1 zu vergrößern und es anschließend wieder zurück zu kopieren. Das hätte (und hat bereits) Stunden in Anspruch genommen… Ich kannte auch die oflag Option von dd noch gar nicht.