ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

Konvertierung nach BtrFS

Achtung!

Das Btrfs-Dateisystem befindet sich noch in der Entwicklungsphase und ist daher nicht für den produktiven Einsatz gedacht. Außerdem können GRUB und GRUB 2 bis Ubuntu 10.10 nicht mit Btrfs umgehen. Deshalb sollten Dateisysteme von / und /boot nicht konvertiert werden. Erst ab Ubuntu 11.10 ist es uneingeschränkt möglich, von einem Btrfs-Dateisystem zu booten, jedoch gibt es immer noch Probleme mit GRUB 2-Funktionen, die ein Schreiben erfordern. Siehe dazu die Hinweise u.a. unter GRUB 2/Skripte

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Hinweis:

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.

Vorbereitung

Man braucht das Paket

  • btrfs-tools

Wiki/Vorlagen/Installbutton/button.png 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.

Umwandeln in Btrfs

Zuerst sollte immer das Dateisystem überprüft werden:

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.

Hinweis:

Wurde eine Partition umgewandelt, auf der sich das integrierte /boot-Verzeichnis befindet bzw. eine separate "Boot-Partition", so muss der GRUB 2-Bootloader neu in den MBR installiert werden - am besten mit der chroot-Methode.

Umwandeln rückgangig machen

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 

Konvertierung endgültig machen

Um den Speicherplatz freizugeben, der durch das ext4-Dateisystem belegt wird, löscht man einfach die Datei /mnt/ext2_saved/image.

Hinweis:

Der Snapshot ext2_saved belegt jetzt zwar keinen Speicherplatz mehr, ist aber immer noch vorhanden. Den Snapshot selbst zu löschen ist unter Lucid nicht möglich.

Ab Maverick kann man den Snapshot mit folgendem Befehl entfernen:

sudo btrfs subvolume delete /mnt/btrfs/ext2_saved 
ubuntuusers.local › WikiKonvertierung nach BtrFS