Home / LinuxUser / 2012 / 09 / Dateisysteme on-the-fly umwandeln mit Fstransform

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian leicht gemacht
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

AA_ground_4seasons_sxc_1390168.jpg

© 4seasons, sxc.hu

Neuer Untergrund

Dateisysteme on-the-fly umwandeln mit Fstransform

14.08.2012 Mit Fstransform wandeln Sie Dateisysteme um, ohne den Datenträger zu formatieren oder die Daten darauf zu löschen.

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

b00-lu-rescue-cd.png

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

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

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

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

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

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.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

2766 Hits
Wertung: 158 Punkte (11 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...