KVM: convert raw disc images to qcow2

So langsam steht bei meinen Servern auch ein Update von Wheezy auf Jessie an und vorher möchte ich einen Snapshot der Festplatten machen um für einen hoffentlich nicht notwendigen revert gerüstet zu sein. Als ich die Maschinen eingerichtet habe, habe ich als Speicherformat für die images RAW gewählt. Damit sind keine Snapshots möglich. Eine Konvertierung zu qcow2 ist sehr einfach möglich:

qemu-img convert -p -f raw -O qcow2 -o preallocation=metadata disk.img disk.qcow2.img

via

Stichpunkte vom Wochenende

  1. Meine Freundin berichtet mir seit langem von einer stockenden Maus an Ihrem Laptop (Acer Extensa 5635Z). Das Problem trat bei Benutzung des Touchpads genauso wie bei einer externen Maus auf. Die Ursache scheint X zu sein und die Loesung liegt im deaktivieren von DRM_KMS_POLLING im Kernel. Mehr dazu hier.
  2. Mittels imagemagick Bilder in der Mitte teilen und in zwei separaten Bildern abspeichern:
     convert sample.jpg -crop 50x100% +repage small_%d.jpg
  3. Musikdateien von mpc zu mp3 konvertieren:
     for i in *.mpc ; do mpcdec "$i" - | lame -h -b 192 - "${i%mpc}mp3" ; done
  4. Um ansonsten Musik von A nach B zu konvertieren ist soundconverter ganz gut und zum Taggen, Dateien umbenennen etc. hab ich jetzt schlechte Erfahrungen mit tagtool und bessere Erfahrungen mit easytag gemacht.
  5. Das Tool bliss ist hier echt noch einmal einen Eintrag Wert, weil es saucool ist!

 

Howto: Convert Ext2 to Ext3 to Ext4

Wie schoen ist es doch, dass man sein vor 15 Jahren angelegtes Dateisystem relativ einfach aktualisieren kann.
Interessant ist das ganze wenn man an die Grenzen des jeweiligen Dateisystems stoesst, wie z.B. die Dateigroessengrenze von 2Tebibyte bei ext2, oder die bei ext2 und ext3 gleiche Begrenzung von ~32000 Unterordnern pro Verzeichnis.
Die Konvertierung ist hier anhand eines simplen Beispiels einmal durchgespielt. Dafuer legen wir uns eine 50MB grosse Containerdatei an, in der ein Dateisystem erzeugt wird und wir dann die Konvertierung vornehmen.

Als erstes legen wir die Containerdatei an und binden diese unter /dev/loop0 als loop device ein:

$ dd if=/dev/urandom of=testfile bs=1M count=50
$ losetup /dev/loop0 testfile

Nun muss eine Partition in dem Container angelegt werden, z.B. mit fdisk:

$ fdisk /dev/loop0
n p 1 enter w

Danach legen wir ein Ext2 Dateisystem darin an, mounten dieses, erstellen darin eine Datei gucken das wir sie lesen koennen und haengen es wieder aus:

$ mkfs.ext2 /dev/loop0
$ echo foo >> /mnt/bar
$ cat /mnt/bar 
bar
$ mount | grep loop0
/dev/loop0 on /mnt type ext2 (rw)
$ umount /mnt

Jetzt konvertieren wir das Dateisystem zu einem Ext3, haengen es ein, gucken ob wir die Datei noch lesen koennen und haengen es wieder aus:

$ tune2fs -j /dev/loop0
$ mount /dev/loop0 /mnt/
$ cat /mnt/bar
foo
$ mount | grep loop0
/dev/loop0 on /mnt type ext3 (rw)
$ umount /mnt

Hat geklappt! Zuletzt bringen wir das Dateisystem auf Ext4 und probieren das gleiche nochmal wie bei den vorherigen Schritten:

$ tune2fs -O extents,uninit_bg,dir_index /dev/loop0
$ e2fsck -fDC0 /dev/loop0
$ mount /dev/loop0 /mnt
$ cat /mnt/bar
foo
$ mount | grep loop0
/dev/loop0 on /mnt type ext4 (rw)
$ umount /mnt

Und aufraeumarbeiten:

$ losetup -d /dev/loop0
$ rm testfile