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
Ubuntu 12.10 „Quantal Quetzal“
Ubuntu 12.04 „Precise Pangolin“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
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.
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 ü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.
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, löscht man einfach die Datei /mnt/ext2_saved/image.
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