In der Vergangenheit musste ich sie zuerst in Rohbilder konvertieren, sie miteinander verketten und dann das resultierende Rohbild in qcow2 konvertieren:
Keine Panik, wenn mehr als nur die letzte Datei kleiner als 2146762752 Byte ist. Einige VMware-Produkte erstellen VMDK-Bereiche mit unterschiedlichen Größen. Die Größe sollte dem 512-fachen der Anzahl der Sektoren entsprechen, die in der Extent-Beschreibung in der vmdk-Hauptdatei aufgeführt sind (lesbar mit einem beliebigen Texteditor oder "cat").
Es kann auch möglich sein, dies alles auf einmal zu tun, aber ich habe dies nicht versucht:
qemu-img convert guest-s001.vmdk guest-s002.vmdk guest-s003.vmdk guest-s004.vmdk guest-s005.vmdk guest.qcow2 Diese Methode ist möglich, schnell und komfortabel !!!! Vielen Dank :)
Liebe es. Erwägen Sie, "IFS = \ n;" zu Ihrer for-Schleife, nur für den Fall, dass die vmdk-Dateien Leerzeichen in den Namen haben. IFS=\n ; for i in *.vmdk; do qemu-img convert -f vmdk $i -O raw $i.raw; done && cat *.raw > tmpImage.raw && qemu-img convert tmpImage.raw finalImage.qcow2 && rm *.raw
Lon Kaut
3
Ich sehe aus wie der Befehl qemu-img jetzt erweitert wurde. Ich habe gerade eine Reihe von mehrteiligen VMware-Images mit dem folgenden Befehl in qcow2 konvertiert:
$ qemu-img convert <base of the image without the S0001,2etc>.vmdk new-image.qcow2
Der lsTeil vor der Pipe druckt alle vdmk, die am Ende einen s0und zwei Platzhalter haben. Der xargsBefehl ermöglicht es ihm %, das Ende des qemu-imgBefehls zweimal als Variable zu ersetzen .
IFS=\n ; for i in *.vmdk; do qemu-img convert -f vmdk $i -O raw $i.raw; done && cat *.raw > tmpImage.raw && qemu-img convert tmpImage.raw finalImage.qcow2 && rm *.raw
Ich sehe aus wie der Befehl qemu-img jetzt erweitert wurde. Ich habe gerade eine Reihe von mehrteiligen VMware-Images mit dem folgenden Befehl in qcow2 konvertiert:
quelle
Ich versuche dies in roh umzuwandeln:
Dann zu verketten:
Dann zu konvertieren:
quelle
Ich hätte das
parallel
tun können, aber hier ist eine, die das Verzeichnis macht:Und dann:
Der
ls
Teil vor der Pipe druckt alle vdmk, die am Ende einens0
und zwei Platzhalter haben. Derxargs
Befehl ermöglicht es ihm%
, das Ende desqemu-img
Befehls zweimal als Variable zu ersetzen .quelle
Hier ist eine einfache Möglichkeit, dies in einer Zeile unter Verwendung von Arrays zu tun :
quelle
Eine Option ist die Verwendung eines Platzhalters im Namen von Bildern:
quelle