Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Um den aktuellen Befehlsumfang zu btrfs
zu erhalten (Optionen, Ergänzungen), sollte man den jeweiligen Befehl im Terminal [1] ohne Option (entspricht dem --help
-Befehl) abfragen - die "man-pages" sind teilweise fehlerhaft bzw. fehlen ganz!
Das Btrfs-Dateisystem hat sehr wenig Metadaten, die an festgelegten Orten liegen. Es ist deshalb relativ einfach, für andere Dateisysteme ein Konvertierungsprogramm zu schreiben, das die Daten nicht verschieben muss. Durch die Copy-On-Write-Algorithmen ist es außerdem möglich eine unveränderte Kopie des ursprünglichen Dateisystems zu behalten und so die Konvertierung zu einem späteren Zeitpunkt rückgängig zu machen.
Dieser Artikel beschreibt, wie man ein bestehendes ext3/4-Dateisystem ohne eine Neuformatierung in ein Btrfs-Dateisystem umwandelt.
Bei einem Kernel Version 4.0 oder höher wird von einer Konvertierung abgeraten. Wird eine Konvertierung dennoch vorgenommen ist mit Datenverlust zu rechnen!
Man braucht das Paket
btrfs-tools
mit apturl
Paketliste zum Kopieren:
sudo apt-get install btrfs-tools
sudo aptitude install btrfs-tools
Es enthält Programme zum Arbeiten mit btrfs
und zur Konvertierung von ext3/4 zu einem Btrfs-Dateisystem.
Die folgende Anleitung beschreibt das Vorgehen für das ext4-Dateisystem. Sie funktioniert genauso für ext3, indem man an den entsprechenden Stellen ext4 durch ext3 ersetzt.
Zuerst sollte immer das Dateisystem ausgehängt und überprüft werden:
sudo umount /dev/sdXY sudo fsck.ext4 -f /dev/sdXY
Die eigentliche Konvertierung wird mit folgendem Befehl durchgeführt:
sudo btrfs-convert /dev/sdXY
Anschließend kann das erzeugte Btrfs-Dateisystem eingehängt werden:
sudo mkdir /mnt/btrfs sudo mount -t btrfs /dev/sdXY /mnt/btrfs
Den ext3/4 Snapshot zum Zeitpunkt der Konvertierung kann man einhängen mit:
sudo mkdir /mnt/ext2_saved sudo mount -t btrfs -o subvol=ext2_saved /dev/sdXY /mnt/ext2_saved
Die Image-Datei hängt man per Loopback ein mit:
sudo mkdir /mnt/ext4 sudo mount -t ext4 -o loop,ro /mnt/ext2_saved/image /mnt/ext4
Die Daten in /mnt/btrfs und /mnt/ext4 sind jetzt identisch. Änderungen, die in /mnt/btrfs gemacht werden, finden sich aber nicht in /mnt/ext4 wieder.
Da die Daten des ursprünglichen Dateisystems in einem Snapshot vorhanden sind, kann die Umwandlung rückgängig gemacht werden. Allerdings gehen die Änderungen, die nach der Konvertierung im Btrfs-Dateisystem gemacht wurden, verloren.
Zuerst muss man das Btrfs-Dateisystem vollständig aushängen:
sudo umount /mnt/ext4 sudo umount /mnt/ext2_saved sudo umount /mnt/btrfs
Jetzt kann man die Konvertierung rückgängig machen
sudo btrfs-convert -r /dev/sdXY
und das originale Dateisystem wieder benutzen:
sudo mount -t ext4 /dev/sdXY /mnt/ext4
Um den Speicherplatz freizugeben, der durch das ext4-Dateisystem belegt wird, muss man lediglich das Subvolume löschen welches bei der Konvertierung automatisch angelegt wurde. Das Subvolume kann man sich im Terminal anzeigen lassen:
sudo btrfs subvolume list /mnt/btrfs
Ein Löschen geschieht mittels:
sudo btrfs subvolume delete /mnt/btrfs/ext2_saved
Abschließend bietet sich noch an: defragmentieren, balancieren sowie aushängen:
sudo btrfs filesystem defragment -rv /mnt/btrfs sudo btrfs balance start -v /mnt/btrfs sudo umount /mnt/btrfs
Diese Revision wurde am 25. April 2016 06:19 von Developer92 erstellt.