ext4 Partition größer als 16TB (32-Bit)
Die Größe der einzelnen Festplattenpartitionen wächst von Tag zu Tag, so auch in meinem heimischen Server. Die 32-Bit Grenze des ext4 Dateisystems ist 16 TByte (232 · 4 KiB). Ohne aktuellster e2fsprogs Version 1.43-WIP ist das Setzen des 64-Bit Flags mit resize2fs ohne Datenverlust nicht möglich.
Ich beschreibe euch hier wie ohne viel Aufwand alle Daten bestehen bleiben.
Punkt 1: Fehlermeldung
Folgender Fehler wird beim Vergrößern einer 16 TByte 32-Bit ext4 Partition ausgegeben.
1 | resize2fs: Size of device /dev/mapper/storage too big to be expressed in 32 bit susing a blocksize of 4096. |
Punkt 2: e2fsprogs 1.43-WIP herunterladen und kompilieren
Bitte beachtet, benötigte Pakete müssen installiert sein.
1 2 3 4 | git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git cd e2fsprogs ./configure make |
Punkt 3: 32-Bit Partition umwandeln
Mit dem folgenden Befehl setzt man das 64-Bit Flag. Dies kann eine Weile dauern, es wird ein CPU Kern zu 100% ausgelastet und hängt von der Taktfrequenz ab.
1 | ./resize/resize2fs -b /dev/mapper/storage |
Punkt 4: 64-Bit Partition vergrößern
Nun können wir die erfolgreich in 64-Bit umgewandelte Partition erweitern.
1 | ./resize/resize2fs /dev/mapper/storage |
Das war es schon. Das Volume kann jetzt bis zu 1 exbibyte (EiB) wachsen.
1
Da dies der einzige deutschsprachige Post zur Thematik ist, würde ich gern ergänzend – Stand Mai 2016 – hinzufügen:
e2fsprogs ist mittlerweile in Version 1.43 offiziell veröffentlich, siehe
https://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/tree/RELEASE-NOTES?h=v1.43
Es ist zu erwarten, dass Debian + Ubuntu zeitnah aktualisierte Versionen über die regulären Kanäle verteilen, bis dahin noch ein Tipp:
Die erste Veröffentlichung von Version 1.43 enthält Testfälle (r_32to64bit usw) mit denen man sich überzeugen kann, dass das so funktioniert – die erscheinen aber fälschlicherweise fehlgeschlagen. Wer Fachkundig ist, kann die Tests nach Korrektur von
https://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/commit/?id=e7d848266a224cc1ed3c74c6746b5c779a5f55ce
angenehm alle automatisch ausführen lassen – es sollte KEIN EINZIGER fehlschlagen, sonst ist etwas grob falsch.
Der Vorgang 64-bit-Erweitern sowie danach das Vergrößern dauerte für ein halbwegs „normalen“ Datenspeicher von 15TB (danach 20TB) Kapazität und 1 Milliarde INodes an einem Desktop-PC jeweils etwa 10 Minuten. In diesem Falle zu gleichen Teilen limitiert durch Lesegeschwindigkeit bzw Rechengeschwindigkeit, bei schwacher CPU oder nicht-zugriffbeschleunigenden RAID-Varianten darf man sich auf entsprechend längere Dauer einstellen.
Vielen Danke, hat funktioniert. Nachdem ich mir mein Raid5 fast mit gparted zerschossen hatte ^^