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 |
Hoi!
Kann man nicht sogar die jeweils kleineren ext-Versionen einfach als höhere Version mounten und die Anpasungen (Journal, Neue Features) werden dann einfach automatisch hunzugefügt?
Also einfach das ext2 mit
mount -t ext4 /dev/loop0 /mnt
mounten und es müsste schon funktionieren!
Gruß
Moritz
Hallo Moritz,
das kann sein, aber bei 70TB Daten will ich es lieber nicht drauf ankommen lassen. Ich habe es nicht probiert und es kann gut sein, dass auch das Mounten so direkt funktioniert, aber bei den Datenmengen geh ich lieber den langsamen Weg ;-)
LG Jan