Das Dateisystem gibt vor, wie das Betriebssystem Dateien auf der Festplatte speichert. Dummerweise gibt es gleich einen ganze Reihe von Ansätzen zum Speichern der Daten. Unter Linux erfreut sich derzeit Ext4 großer Popularität, als Nachfolger steht Btrfs in den Startlöchern. Windows dagegen verwendet NTFS, dessen Urahn FAT32 vor allem noch auf vielen USB-Sticks zum Einsatz kommt.

Welches Dateisystem Sie unter Linux einsetzen, bestimmen Sie bei der Installation des Systems, falls Ihnen die Distribution diese Wahl nicht schon abnimmt. Liegt das System erst einmal auf der Platte, fällt ein Wechsel schwer: Wer auf Nummer sicher gehen will, kopiert die Dateien erst auf einen anderen Datenträger, formatiert dann die Festplatte neu und spielt schließlich alle Dateien wieder zurück. Mit etwas Glück bleiben deren Attribute dabei erhalten.

Eine alternative zu diesem aufwendigen Verfahren verspricht Massimiliano Ghilardi mit seinem Programm Fstransform: Die Software für die Kommandozeile wandelt ein Dateisystem in ein anderes um, ein Zwischenspeicher ist dabei nicht mehr nötig. Hinter Fstransform verbirgt sich übrigens nur ein Wrapper-Skript: Das eigentliche Konvertieren erledigen im Hintergrund die beiden Programme fsmove und fsremap. Der Kasten "Installation" erläutert, wie Sie die Software auf dem gewünschten System aufsetzen.

Installation

Als Neuling hat Fstransform noch nicht den Weg in alle Distributionen gefunden. Canonical nimmt es beispielsweise erst mit Ubuntu 12.10 in seine Repositories auf. Im Moment gilt es Fstransform daher selbst zu übersetzen. Das erledigen Sie jedoch rasch: Zunächst installieren Sie über den Paketmanager den C++-Compiler und make. Unter Ubuntu liegen die beiden in den Paketen g++ und make.

Anschließend laden Sie die aktuelle Fstransform-Version von der Homepage [1], entpacken das Archiv auf der Festplatte und rufen dann im neu entstandenen Verzeichnis nacheinander die drei Befehle ./configure, make und – als rootmake install auf.

Nur mit Backup

Wie üblich gibt es aber ein paar Haken: So kann Fstransform nur mit den unter Linux gebräuchlichen Dateisystemen Ext2, Ext3, Ext4, ReiserFS, JFS und XFS umgehen, nicht aber mit den Windows-Dateisystemen NTFS, MS-DOS und FAT32. Der häufige Wunsch, eine alte Windows-Partition in eine mit Ext4-Dateisystem zu verwandeln, bleibt somit vorerst unerfüllt.

Darüber hinaus besteht bei Fstransform prinzipbedingt die Gefahr, dass beim Umwandeln Daten im Nirwana landen. Der Entwickler übernimmt für Verluste ausdrücklich keine Haftung und weist in der Dokumentation deutlich auf die Gefahren hin. Möchten Sie das Tool einsetzen, legen Sie als Erstes eine Sicherheitskopie an, am besten in Form eines Images. Dieses spielen Sie im Falle eines Falles bei Bedarf schnell wieder ein. Für das Spiegeln bietet sich zum Beispiel das Live-System Clonezilla [2] an (siehe Kasten "LinuxUser Rescue CD").

LinuxUser Rescue CD

Eine Partition mit allen darauf liegenden Daten kopieren Sie im Handumdrehen mit der LU Rescue CD 08.12 aus der letzten Ausgabe. Das Komplettsystem eignet sich nicht nur zum Kopieren von Partitionen, sondern auch zur Pflege von Systemen und zur Analyse und zum Retten von Daten nach einem Crash. Es enthält neben System Rescue CD 2.8.0 und Parted Magic 2012_05_30 zusätzlich das im Beitrag erwähnte Clonezilla in der aktuellen Version 1.2.12-67. Haben Sie das Heft nicht vorliegen, bestellen Sie die Ausgabe komfortabel über das Internet [5].

Um mit Fstransform ein Dateisystem umzuwandeln, benötigen Sie auf der entsprechenden Partition mindestens fünf Prozent freien Speicherplatz. Je mehr allerdings bereit steht, desto reibungsloser klappt das Konvertieren. Der Autor des Programms rät, vor dem Umwandeln einer Partition nach XFS mindestens zehn Prozent freien Plattenplatz zu reservieren.

Außerdem setzt die Software das Vorliegen der jeweiligen System-Tools für das vorhandene und das neue Dateisystem voraus. Möchten Sie unter Ubuntu eine Partition mit dem XFS-Dateisystem ausstatten, rüsten Sie die XFS-Tools über das Paket xfsprogs nach.

Das neu einzurichtende Dateisystem muss zusätzlich sogenannte Sparse-Dateien [3] unterstützen. Außerdem setzt Fstransform die Systemaufrufe ioctl(FS_IOC_FIEMAP) beziehungsweise ioctl(FIBMAP) voraus. Selbstverständlich benötigt die Software einen Kernel mit entsprechendem Support für Ausgangs- und Zieldateisystem.

Sowohl für das aktuell verwendete wie für das gewünschte Dateisystem benötigen Sie auf dem betreffenden Rechner die Programme mkfs und fsck. Darüber hinaus verwendet Fstransform die Kommandozeilen-Tools aus der Tabelle "Kleine Helfer".

Kleine Helfer

which Pfad zum Kommando ausgeben
expr Ausdrücke evaluieren
id Ausgabe der realen und effektiven User-ID
blockdev Systemfunktionen für Blockgeräte direkt aufrufen
losetup Loop-Devices aufsetzen und verwalten
mount Geräte einhängen
umount Geräte aushängen
mkdir Verzeichnisse erstellen
rmdir Verzeichnisse löschen
rm Dateien und Verzeichnisse löschen
mkfifo FIFO erstellen
dd Datei konvertieren oder kopieren
sync Zwischenspeicher wegschreiben
fsck Dateisystem überprüfen
mkfs Dateisystem erstellen

Haben Sie die zu konvertierende Partition gerade in einem Verzeichnis eingehängt, benötigt das Skript auf jeden Fall Schreib- und Leserechte. Außerdem dürfen während des Umwandelns keine Prozesse auf die Partition zugreifen, da Fstransform die Partition aushängt. Das bedeutet, dass ein Umwandeln der Root-Partition im laufenden Betrieb nicht funktioniert.

Erfüllt das System alle Voraussetzungen, rufen Sie Fstransform mit den Rechten des Superusers auf. Es verlangt als Parameter die Gerätedatei mit der umzuwandelnden Partition sowie das Zieldateisystem. Der Befehl

# fstransform /dev/sdb1 xfs

konvertiert die erste Partition der zweiten Festplatte in das XFS-Dateisystem.

Umzug

Im ersten Schritt prüft die Software, ob sie alle Hilfsprogramme findet. Tritt hier ein Fehler auf (Abbildung 1), sollten Sie über [Eingabe] den Vorgang abbrechen und die fehlenden Programme nachinstallieren. Sofern die zu konvertierende Partition noch nicht eingehängt ist, mountet Fstransform sie in einem Verzeichnis unter /tmp.

Abbildung 1: Fstransform findet die Werkzeuge für das XFS-Dateisystem nicht und bricht daher den Vorgang ab.

Einige Distributionen, wie etwa Ubuntu, öffnen dabei automatisch den Dateimanager (Abbildung 2). Dessen Fenster sollten Sie umgehend wieder schließen, andernfalls kommt es zu einem weiteren Fehler.

Abbildung 2: Hat das Skript die zu konvertierende Partition einhängt, öffnet Ubuntu in der Regel automatisch den Dateimanager. Diesen schließen Sie sofort wieder.

Das Skript pausiert anschließend noch einmal und bietet Ihnen die Möglichkeit, den gesamten Vorgang mit [Strg]+[C] abzubrechen. Möchten Sie das Umwandeln fortsetzen, drücken Sie [Eingabe]. Nachdem Fstransform den ersten Teil des Konvertierens hinter sich gebracht hat, hängt es die zu konvertierende Partition wieder aus.

Falls das nicht klappt, hält das Skript mit einer Fehlermeldung an (Abbildung 3). Das ist aber kein Grund zur Panik: Sie öffnen kurzerhand ein zweites Terminal und hängen die Partition per Hand aus, etwa mittels:

$ sudo umount /dev/sdb1
Abbildung 3: Fstransform schafft es nicht, die zu konvertierende Partition /dev/sdb1 selbst wieder auszuhängen.

Jetzt tippen Sie im Fenster mit Fstransform continue ein und drücken [Eingabe]. In jedem Fall sollte in dieser Phase eine Meldung wie in Abbildung 4 erscheinen. Hier drücken Sie wieder [Eingabe] und haben anschließend – zumindest beim Umwandeln größerer Partitionen – die Gelegenheit, gleich mehrere Liter eines Heißgetränks der Wahl zu sich zu nehmen.

Abbildung 4: Der erste Teil der Konvertierens ist an dieser Stelle abgeschlossen.

Das Umwandeln dauert etwa eine Minute pro Gigabyte. Das ergibt bei einer Partition mit 250 GByte Daten also eine Dauer von bis zu vier Stunden. Während dieser Zeit dürfen Sie die Arbeit unter keinen Umständen unterbrechen. Es empfiehlt sich, das System nicht zu nutzen, bis eine Meldung ähnlich der aus Abbildung 5 erscheint.

Abbildung 5: Eine schlichte Nachricht kündet vom erfolgreichen Konvertieren.

Läuft etwas schief, finden Sie unter /var/tmp/fstransform mehrere Log-Dateien mit den Namen fstransform.log.Nummer und fsremap.job.Nummer/fsremap.log. Sollte fsremap seine Arbeit abbrechen, lohnt es sich, es über

# fsremap --resume-job=Nummer /dev/sdc1

dazu zu bewegen, die unterbrochene Arbeit noch einmal aufzunehmen.

Fazit

Der Einsatz von Fstransform lohnt sich vor allem dann, wenn Sie Dateisysteme umwandeln möchten, die sich technisch (deutlich) unterscheiden – wie etwa ReiserFS und Ext4. Da das Tool dafür aber recht große Geschütze auffährt, lohnt es sich, die Warnhinweise ernst zu nehmen und die Daten vorher zu sichern.

Einige Dateisysteme bringen übrigens eigene Programme zum Konvertieren mit, die teilweise schneller und sicherer arbeiten als Fstransform (siehe Kasten "Ext-Dateisysteme"). Weitere Informationen über Dateisysteme und deren Werkzeuge finden Sie unter [4]

Ext-Dateisysteme

Um ältere Ext-Dateisysteme in neuere Versionen umzuwandeln, brauchen Sie nicht gleich zu Fstransform greifen: Für diese Fälle bieten die Entwickler ein Werkzeug namens Tune2fs an. Es wandelt beispielsweise ein Ext3-Dateisystem in ein Ext4-Dateisystem um – und zwar schonender, schneller und sicherer als Fstransform.

Glossar

Systemaufrufe

Erlauben es Anwendungen, auf die Funktionen des Betriebssystems zuzugreifen, meist mittels einer Bibliothek. So erhält die Applikation zum Beispiel einen definierten Zugriff auf die Hardware.

Infos

[1] Fstransform: http://sourceforge.net/projects/fstransform/

[2] Clonezilla-Workshop: Tim Schürmann, "Jurassic Park", LU 08/2009, S. 48, http://www.linux-community.de/18988

[3] Sparse-Datei: http://de.wikipedia.org/wiki/Sparse-Datei

[4] Dateisysteme pflegen: Nathan Willis, "Festes Fundament", LU 10/2011, S. 42, http://www.linux-community.de/24394

[5] LU Rescue CD 08.12 (Shop): http://tinyurl.com/lu0812-resc-cd

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare