Allgemein
Knowledge Base
- Neue Struktur (In Arbeit)
- Computertechnisches
Community
Privat
Für QEMU existiert ein Konverter, mit dem man prima die Formate hin und her konvertieren kann.
qemu-img convert -O vmdk -o subformat=twoGbMaxExtentFlat source.vmdk destination.vmdk
Konvertiert ein vorhandenes (source) vmdk Image zu einem (destination) Flat Image, mit 2gb großen Dateien. Vorher waren es 2gb große sparse Images, jetzt ist das sparse entfernt.
Meine vmware Images sind bis jetzt immer 2GB groß gewesen, egal wie groß die HD wirklich ist. vmware bietet die Möglichkeit beliebig viele solcher Dateien zu einer großen zusammenzufügen, das ist für den Benutzer transparent. Qemu kann leider nur mit dem ersten Image was anfangen, was dann natürlich unvollständig wäre. Also macht man mit den vmware-tools aus multi file images ein monolith image.
vmware-vdiskmanager -r DISKIMAGE -t 0 NEW_SINGLE_DISKIMAGE
Dann kann mit
qemu-img convert NEW_SINGLE_DISKIMAGE -O qcow QEMU_DISKIMAGE
ein qemu Disk image erstellt werden.
Das kann mit
qemu -hda QEMU_DISKIMAGE -snapshot
gestartet werden und was soll ich sagen, es läuft, fast ohne Änderungen.
Ein qemu image wird mit der Zeit immer größer, wenn man, was man auch sollte es im qcow Format anlegt. Dabei werden anfangs die leeren Sektoren einfach noch nicht geschrieben sondern nur als leer vermerkt. Hat man jetzt aber ein großes Image und löscht darin viele Dateien wieder, wird das Image leider nicht kleiner, da bis jetzt kein OS Dateien wirklich löscht, sondern nur in dessen Directory-Struktur vermerkt, das die Datei nicht mehr da ist. Da gibt es die wildesten Hilfmittel um solche Dateien doch richtig zu löschen, unter Windows wird empfohlen die Datei mehrfach zu überschreiben Hüstel. Naja, jedenfalls gibt es einen einfachen Weg, um das Image wirklich zu löschen. Ist das Guestsystem
dd
eine riesige leere Datei anlegen.dd if=/dev/zero of=/tmp/empty.bin bs=16384 count=65536
dd
unter Windows gibt.
Dabei werden nur die leeren Sektoren im Filesystem überschrieben. Dann sollte das Guestsystem beendet werden und auf dem Hostsystem einfach folgendes gestartet werden:qemu-img convert currentimage -O qcow newimage
Jetzt wird das currentimage nach newimage kopiert, dabei werden alle leeren Sektoren ausgelassen, sodas am Ende das newimage meist kleiner als das currentimage ist. Sonst ist alles gleich.
Ein ISO Image einer Disk z.B. Win98 legt man mit cdrdao an.
cdrdao read-cd image.toc
Ich schreibe das hier auf, weil es für die PSOne anders geht.
qemu -cdrom win98.iso ...
Quelle: aus einer Nachricht der Mailingliste:
mount -t ext3 /opt/qemu/tempImage /mnt/tempImage -o loop,offset=sector_size*partition_start
sector_size ist meistens 512 und parition_start 63. Man kann fdisk -lu /opt/qemu/tempImage
benutzen, um die Werte zu überprüfen.
Sound einschalten mit -enable-audio. In Windows 98 (Gast) ist es dann eine Creative Soundblaster 16 (darauf achten, es ist kein PnP)
Diskussion:
Elsni fragt:
Lars: