ubuntuusers.de

Konvertierung nach Btrfs

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

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:

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 ext2/3/4-Dateisystem ohne eine Neuformatierung in ein Btrfs-Dateisystem umwandelt.

Vorbereitung

Man braucht das Paket

  • btrfs-progs

Befehl zum Installieren der Pakete:

sudo apt-get install btrfs-progs 

Oder mit apturl installieren, Link: apt://btrfs-progs

Es enthält Programme zum Arbeiten mit btrfs und zur Konvertierung von ext2/3/4 zu einem Btrfs-Dateisystem.

Die folgende Anleitung beschreibt das Vorgehen für das ext4-Dateisystem. Sie funktioniert genauso für ext2 und ext3, indem man an den entsprechenden Stellen ext4 durch ext2 bzw. ext3 ersetzt.

Umwandeln in Btrfs

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 ext2/3/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ückgängig 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, 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 

Informationen

Diese Revision wurde am 19. Dezember 2021 17:47 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Btrfs, Dateisystem