Ext4

Aus wiki.archlinux.de

Das Dateisystem ext4 Ist der Nachfolger des von 2001 - 2009 in den meisten Distributionen standartmäßig verwendeten Dateisystems ext3.

Ext4 ist ein Journaling-Dateisystem[1], welches für den Linux-Kernel[2] entwickelt wurde. Es wurde am 10. Oktober 2006 von Andrew Morton[3] vorgestellt. Seit der Kernel Version 2.6.19 war eine Test-Version offizieller Bestandteil des Kernels. Mit dem Erscheinen des Linux-Kernels 2.6.28 verließ ext4 das Hauptentwicklungsstadium.

Achtung: Dieser Artikel ist noch nicht fertig. Insbesondere der abschnitt Möglichkeit 2 bedarf noch einer überarbeitung


Technische Eigenschaften

In ext4 sind viele Verbesserungen gegenüber ext3 getroffen worden. So unterstützt ext4 beispielsweise bis zu einem Exibite (= 10^18 Byte)an Daten.

Seit der Veröffentlichung im Kernel 2.6.19 sind schon folgende Verbesserungen vorgenommen worden:

  • Kernel 2.6.23: mehr als 32.768 Unterverzeichnisse
  • Kernel 2.6.25: Maximale Dateigröße so groß wie das gesamte Dateisystem
  • Kernel 2.6.28: ext4 gilt nun als Stabil


Bestehende ext3 Partitionen können ohne Verlust der Daten problemlos in ext4 Partitionen umgewandelt werden. Ebenfalls können ext2und ext3 Partitionen in der fstab als ext4 eingehängt werden. Das bringt aufgrund der Optimierung des ext4 Treibers ohne jegliches umwandeln der Partition einen Performancegewinn.

Ext3 zu Ext4 konvertieren

Es gibt zwei Möglichkeiten um eine ext3 Partition unter Arch als ext4 zu integrieren;

  • 1. Die ext3 Partition als Ext4 mounten (Ohne sie zu konvertieren)
  • 2. Die ext3 Partiiton in ext4 konvertieren (Empfohlen)


Mögklichkeit 1

Dazu müssen in der Datei /etc/fstab lediglich folgende änderungen vorgenommen werden;

Beispiel einer /etc/fstab'

  #<Filesystem> <Mountpunkt>        <Type>    <Option>                       <dump>  <pass>
  proc           /proc               proc      defaults                       0       0
  none           /dev/pts            devpts    defaults                       0       0
  none           /dev/shm            tmpfs     defaults                       0       0
  /dev/hdd8      /                   ext3      defaults,errors=remount-ro     0       1
  /dev/hdg1      /home               ext3      defaults                       0       2
  /dev/hdd7      none                swap      sw                             0       0
  /dev/hdb       /mnt/dvd-rom        iso9660   ro,user,noauto                 0       0


Um nun eine ext3 Partition ohne sie zu konvertieren als ext4 einzubinden, muss lediglich aus ext3 ein ext4 gemacht werden. Das sieht dann so aus;

  #<Filesystem> <Mountpunkt>        <Type>    <Option>                       <dump>  <pass>
  proc           /proc               proc      defaults                       0       0
  none           /dev/pts            devpts    defaults                       0       0
  none           /dev/shm            tmpfs     defaults                       0       0
  /dev/hdd8      /                   ext4      defaults,errors=remount-ro     0       1
  /dev/hdg1      /home               ext4      defaults                       0       2
  /dev/hdd7      none                swap      sw                             0       0
  /dev/hdb       /mnt/dvd-rom        iso9660   ro,user,noauto                 0       0


Diese Möglichkeit bietet jedoch aufgrund dessen, dass die Partition immernoch als ext3 eingehängt wird, jedoch der neue, verbesserte ext4 Treiber verwendet wird, nur einen geringen Performance gewinn.


Näheres hierzu in der fstab


Möglichkeit 2 (Empfohlen)

Um ein bestehendes ext3- in ein ext4-Dateisystem umzuwandeln, müssen die entsprechenden Dateisystemeigenschaften hinzugefügt werden. Nach dem Ändern der Optionen muss ein Dateisystemcheck durchgeführt werden.

Hinzufügen der Optionen mittels tune2fs:

> tune2fs -O extents,uninit_bg,dir_index /dev/<Gerät>

Das Filesystem kann jetzt erst einmal nicht angemeldet werden und muss mit fsck repariert werden. Dies ist ganz normal.

fsck -fCVD /dev/<Gerät>

Danach kann das Dateisystem ganz normal als ext4 eingehängt werden.

SSD Trim Support

Achtung: Stelle vorher fest ob du einen Kernel und SSD firmware hast die neu genug ist und von der sicher ist das sie TRIM unterstützt ! Sonst könnte es zu Datenverlust führen, also immer vorher Backups erstellen!!

In der neusten Version unterstützt jetzt auch der Kernel ( >2.6.33) und ext4 live SSD TRIM. Um dies zu nutzen muss man nur eine mount Option zu seiner fstab hinzufügen:

discrad

Beispiel:

/dev/sda1 / ext4 defaults,noatime,discard 0 1

Quellen

  • Wikipedia [4]
  • Heise-Online [5]