Fedora Core

ext3 -> ext4

In aktuellen Versionen bietet Fedora auch ext4 als Dateisystem an und ab FEDORA 12 ist es durch die Verwendung von "dracut" auch relativ problemlos möglich das /-FS zu konvertieren soferne /boot als eiegen ext2/ext3-Partition eingerichtet ist.

Wichtige Hinweise

Im Normalfall sollte das betreffende FS ausgehängt und danach eine Dateisystem-Check ohne weitere Parameter durchgeführt werden. Bei der System-Partition ist das so nicht möglich womit man beim nächsten Boot in einer Repair-Shell startet und von dort aus nach Eingabe des Root-Passworts "fsck /dev/sdx" eingibt und hierbei standardmässig auftretende Fehler mit "j" bestätigt.

Vorsicht

Es kann zwar nicht allgemein empfohlen werden das System-Laufwerk so zu konvertieren, aber auf weit mehr als 10 virtuellen Maschinen ist da bei mir bis jetzt absolut problemlos durchgelaufen. Mit Fedora 11 war das generell noch nicht möglich weil in Bereichen der initrd nach wie vor auf "ext3" verwiesen wurde womit das System nicht mehr startet.

Konvertierung

  • WICHTIG: Im Vorfeld in der /etc/fstab die betreffenden Dateisysteme von ext3 auf ext4 umstellen wobei dies auch ohne der eigentlichen Konvertierung problemlos gemacht werden kann da die ext4-Treiber ext3 verarbeiten können, umgekehrt sieht das anders aus!
  • umount /dev/sdx
  • tune2fs -O extents,uninit_bg,dir_index,flex_bg,sparse_super,dir_nlink /dev/sdx
  • fsck -f /dev/sdx
  • mount /dev/sdx
  • Bei der System-Partition wie gesagt nur den tunefs-Call mit nachfolgendem Reboot / Repair

Hintergrundinformationen

Bereits bestehende Dateien profitieren zu Beginn nicht davon weil diese die neuen Dateisystem-Features nicht benutzen und wir somit ein Hybrid-FS haben. Im Laufe der Zeit erlidgt sich das aber vor allem bei der System-Partition durch laufende Updates von selbst.

Bestehende Dateien "umstellen"

Das Ganze lässt sich allerdings beschleunigen in dem man das folgende Skript irgendwo in den PATH kopiert und mit chmod 755 ausführbar macht, auf einer root-Shell in einen Ordner wechselt und das Skript von dort startet.

Letztlich werden alle Dateien des Ordners mit "cat" in ein Temp-File geschrieben, die Attribute dabei übernommen und nachdem das Temp-File vollständig ist dieses auf den alten Namen umbenannt womit die Datei praktisch neu erstellt wird.

Auf keinen Fall sollte man das direkt unter / aufrufen da es hier jede Menge Sonderdateien gibt und der Vorgang ewig dauert (/usr/bin, /usr/lib, /usr/lib64, /usr/share, /bin, /sbin, /usr/sbin und diverse Datenordern wurden so auf mehreren Systemen erfolgreich behandelt):

DEFRAG-SKRIPT