Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.
Anmerkung: Ausgehend von der Fortschreibung der btrfs-tools auf Version 2.x rc sind einige, weitergehende Befehle noch nicht enthalten.
Ubuntu 16.04 Xenial Xerus
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.
Die nachfolgende Beschreibung basiert auf den btrfs-tools der Version 0.19 von 2010. Um den aktuellen Befehlsumfang zu btrfs
zu erhalten (Optionen, Ergänzungen), sollte man den jeweiligen Befehl im Terminal[1] ohne Option (entspricht der Option --help
) abfragen - die Manpages sind teilweise fehlerhaft bzw. Hinweise fehlen ganz! Eine aktuelle Version der btrfs-tools für Precise Pangolin steht unter den Links bereit.
In diesem Artikel zum Btrfs-Dateisystem ist eine Übersicht der Befehle mit Kurzbeschreibungen aufgeführt. Manche Befehle sind mit anderer Syntax mehrfach vorhanden - welche man endgültig anwenden kann, wird die Entwicklung der Btrfs-Tools in Zukunft zeigen.
btrfs-tools
mit apturl
Paketliste zum Kopieren:
sudo apt-get install btrfs-tools
sudo aptitude install btrfs-tools
vorbehalten. Dieses Paket ist in der Regel schon nach der Installation vorhanden.
Der Aufbau der Syntax unterscheidet sich zur Zeit in
Der nachfolgende Aufbau der Beschreibung wurde danach gegliedert - über das Inhaltsverzeichnis kann man sich vorab informieren und die jeweilige Beschreibung dieser Befehle auch direkt aufrufen.
Diese Teilbeschreibung behandelt die Befehle für das normale Arbeiten mit dem Btrfs-Dateisystem.
Für folgende Teilaspekte wurden, um die Übersicht zu behalten, separate Beschreibungen erstellt. Die Btrfs-Befehle enthalten dann nachfolgend nur eine kurze Beschreibung der Syntax und einen Link in das relevante WIKI.
Installieren auf Btrfs-Dateisystem
Installation auf Btrfs-Dateisystem
Formatierung mit mkfs.btrfs
Normales System
Btrfs-RAID-Verbund
Formatierung überprüfen mit btrfs filesystem show
Zusatzmaßnahmen
Probleme und Abhilfe
Umwandlung von ext3 / ext4 auf ein Btrfs-Dateisystem mit btrfs-convert
Die in den nachfolgenden Beispielen angeführten Laufwerke, Geräte bzw. Bezeichnungen sind dem jeweils eigenen System anzupassen.
Die Eingabe in das Terminal[1] von:
btrfs
ohne weitere Ergänzung ergibt eine Liste der Befehle mit den Optionen und Ergänzungen. Diese werden hier nachfolgend alphabetisch sortiert beschrieben.
Alle Befehle, bis auf das einleitende btrfs
, können abgekürzt werden, soweit das zu einer eindeutigen Zuordnung führt. Solange man sich nicht sicher ist, sollte man die nachfolgend beschriebenen Langformen der Befehle verwenden! Zum Beispiel bewirken:
sudo btrfs filesystem balance
sudo btrfs fi ba
das Gleiche.
Mit der Zeit sind bei einem Btrfs-RAID-Verbund, nach dem Hinzufügen bzw. Entfernen von externen Speicherplatz, die Metadaten und Filedaten nicht mehr gleichmäßig auf den Laufwerken bzw. dem Laufwerk verteilt. Um diese wieder ins Lot zu bringen, sollte man die Verteilung neu anordnen lassen. Dazu gibt man folgendes im laufenden System oder nach dem Einhängen eines externen Laufwerkes (siehe Fallbeispiele) in ein Terminal[1] ein:
für das Wurzelverzeichnis:
sudo btrfs balance start /
für ein selektives Verzeichnis:
sudo btrfs balance start /var/cache
Nachdem man diesen Befehl gestartet hat, kann man die folgenden Optionen anwenden:
sudo btrfs balance pause <Pfad> - Hält die Reorganisation an.
sudo btrfs balance cancel <Pfad> - Bricht die Reorganisation ab.
sudo btrfs balance resume <Pfad> - Nimmt eine angehaltene Reorganisation wieder auf.
sudo btrfs balance status <Pfad> - Zeigt den aktuellen Stand der Reorganisation an.
Die obige Eingabe von sudo btrfs balance start /
sperrt das Terminal bis der Vorgang abgeschlossen ist. Will man einen der obigen Folgebefehle anwenden, muss man eine weitere Instanz vom Terminal öffnen und dort dann z.B. sudo btrfs balance status /
eingeben.
Je nach Datenmenge und Zustand des Btrfs-Dateisystemes kann diese Maßnahme eine längere Zeit in Anspruch nehmen. Man kann aber während des Abgleiches eingeschränkt weiter arbeiten, ohne das es dabei zu Konflikten (mit den Daten) kommt.
Auch ist es durch diesen Befehl möglich, das Dateisystem in eine andere Form zu konvertieren (Zum Beispiel von Raid1 zu Raid0) Dazu gibt man in ein Terminal folgendes ein:
sudo btrfs balance start -dconvert=raid0 -mconvert=raid0 /
Bei "-mconvert=raid0" wird die Sicherheit der Metadaten reduziert! Deshalb muss bei dieser Aktion die Option "-f" hinzugefügt werden.
Falls es zu Speicherplatzproblemen kommt und mit dem Befehl btrfs filesystem resize
keine Abhilfe mehr möglich ist, so kann man einem laufenden System weiteren Speicherplatz hinzufügen. Dies funktioniert sowohl pauschal, indem man das Wurzelverzeichnis erweitert bzw. selektiv, indem man einen beliebigen Ast (Pfad) in der Verzeichnisstruktur ausbaut.
Das Laufwerk, das hinzugefügt werden soll, darf nicht schon an anderer Stelle eingebunden sein und sollte mit dem Btrfs-Dateisystem formatiert sein. Siehe auch folgende Fallbeispiele:
Dem Wurzelverzeichnis einen Speicherbereich hinzufügen:
Dazu gibt man im Terminal[1] ein:
sudo btrfs device add /dev/sda6 /
Der gesamte Wurzelbereich wird hierdurch um den Speicherplatz von /dev/sda6 vergrößert.
Einem Bereich einen Speicherbereich hinzufügen:
Dazu gibt man im Terminal[1] ein:
sudo btrfs device add /dev/loop0 /var/cache
Das Verzeichnis /var/cache wird um den Speicherplatz von /dev/loop0 erweitert.
Das bestehende Dateisystem passt den Speicherplatz auf dem hinzugefügten Laufwerk automatisch an. Es muss kein zusätzlicher Eintrag in der /etc/fstab vorgenommen werden. Beim nächsten Booten, wird dieses Laufwerk automatisch mit dem Basislaufwerk richtig eingebunden. Damit der Speicherplatz auch optimal und richtig benutzt werden kann, sollte man im Anschluss den Befehl btrfs device scan
ausführen, damit das Dateisystem alle Komponenten korrekt zuordnet.
Danach sollte noch btrfs balance
ausgeführt werden, damit die Daten wieder gleichmäßig verteilt sind.
Der Inhalt des zusätzlichen Laufwerkes wird beim Hinzufügen gelöscht bzw. überschrieben. Das zusätzliche Laufwerk muss, solange es nicht mit dem Befehl btrfs device delete
entfernt wurde, schon beim Booten vom System erreichbar sein. Das gilt insbesondere bei externen Laufwerken!
Wenn das btrfs-System mal nicht funktionieren sollte, oder balance nicht seinen Dienst verrichtet, hilft der Befehl "btrfs device check". Dafür darf das Volumen aber nicht eingehängt sein!
btrfs device check --repair /dev/sdX
Dieser Befehl wird zur Zeit nicht (richtig) ausgeführt. Ein korrektes Aushängen ist nicht in allen Fällen möglich!
Hat man seinen Speicherplatz aus einzelnen Laufwerken zusammengestellt - siehe btrfs device add, so kann man diesen Speicherplatz bedarfsweise wieder freigeben und ggf. an anderer Stelle verwenden. Dazu gibt man in ein Terminal[1] ein:
sudo btrfs device delete /dev/sda6 /
Damit wird der Speicherplatz an dieser Stelle um die Größe des genannten Laufwerkes verkleinert.
Damit der Speicherplatz wieder optimal benutzt werden kann, sollte man im Anschluss den Befehl btrfs filesystem balance
ausführen.
Nachdem man in ein Terminal[1]
sudo btrfs device scan
eingibt. Ergibt dieser Befehl nur die Ausgabe von:
failed to read /dev/sdh failed to read /dev/sdg failed to read /dev/sdf failed to read /dev/sde failed to read /dev/sdd failed to read /dev/sr0
und damit nur Laufwerke, welche kein Btrfs-Dateisystem besitzen (Negativliste).
Mit der Ergänzung eines Laufwerkpfades
sudo btrfs device scan /dev/sdXY
erhält man bei
einem Btrfs-Dateisystem
Scanning for Btrfs filesystems in '/dev/sdb1'
Ohne ein Btrfs-Dateisystem
Scanning for Btrfs filesystems in '/dev/sda1' ERROR: unable to scan the device '/dev/sda1'
Um weitergehende Informationen zu erhalten, sollte man den Befehl btrfs filesystem show
anwenden.
Copy On Write Dateisysteme (COW) haben viele Vorteile, aber auch Nachteile - z.B. Defragmentierung. Btrfs legt die Daten beim ersten Schreiben einer Datei sequentiell ab, aber COW erfordert, das geänderte Daten nicht einfach überschrieben werden, sondern in freie Speicherbereiche abgelegt werden. Damit sind dann die Dateien nicht mehr zusammenhängend - also fragmentiert. Das hat dann ggf. auch noch Einfluss auf das Speichern anderer Dateien. Weitere Informationen siehe unter den Mountoptionen.
Es wird empfohlen bei normalen Festplatten - nicht jedoch bei SSD-Laufwerken - die Struktur und die der Metadaten in einem Btrfs-Dateisystem ab und an zu reorganisieren. Dies ist jedoch nicht zwingend erforderlich.
Das wird unter dem Btrfs-Dateisystem als Defragmentierung bezeichnet und kann in einem laufenden System durchgeführt werden bzw. wenn ein Laufwerk oder Unterlaufwerk (Subvolume) dazu eingebunden wurde.
Diese Defragmentierung ist vergleichbar mit der vom Windows-Betriebssystem - es wird eine Reorganisation der eigentlichen Daten durchgeführt! Je nach Datenmenge und Zustand des Btrfs-Dateisystemes kann diese Maßnahme eine längere Zeit in Anspruch nehmen. Man kann aber während einer Defragmentierung eingeschränkt weiter arbeiten, ohne dass es dabei zu Konflikten (mit den Daten) kommt.
Um den Zeitaufwand zu reduzieren, sollte man Schnappschüsse, die man nicht mehr benötigt, entfernen bzw. diese extern auslagern. Siehe auch die Hinweise bei den Befehlen btrfs subvolume snapshot
bzw. btrfs-image
.
Eine Defragmentierung erreicht man durch die (hier beispielhafte) Eingabe im Terminal[1] von:
sudo btrfs filesystem defragment /home
Dabei muss der angegebene Pfad, hier im Beispiel /home, nicht mit den Unterlaufwerken (Subvolumes) korrespondieren!
Mit dem Befehl:
sudo btrfs filesystem df PFAD
erhält man eine grobe Aussage zur Belegung des abgefragten Speichermedium. Mit der Option PFAD
wird der Bereich festgelegt. Die beispielhafte Ausgabe für ein Btrfs-RAID-Verbund ist:
Data, RAID0: total=4.00GB, used=2.37GB System, RAID1: total=8.00MB, used=4.00KB System: total=4.00MB, used=0.00 Metadata, RAID1: total=768.00MB, used=181.83MB
bzw. für ein einzelnes Laufwerk / Partition z.B.:
Data: total=3.01GB, used=1.68GB System, DUP: total=8.00MB, used=4.00KB System: total=4.00MB, used=0.00 Metadata, DUP: total=1.50GB, used=212.58MB Metadata: total=8.00MB, used=0.00
oder auch für ein bestimmtes Verzeichnis z.B. bei:
sudo btrfs filesystem df /boot
Data: total=212.69MB, used=56.21MB System, DUP: total=8.00MB, used=4.00KB System: total=4.00MB, used=0.00 Metadata, DUP: total=102.31MB, used=448.00KB Metadata: total=8.00MB, used=0.00
Um die Größe eines Speicherbereiches festzulegen bzw. zu verändern, kann man im Terminal[1]
sudo btrfs filesystem resize [Option] /PFAD
eingeben. Die Optionen sind wie folgt zu setzen (Fallbeispiele), /mnt: ist der Pfad eines eingehängtes Laufwerk oder Unterlaufwerk (Subvolume):
Laufwerk vergrößern:
mit Vorzeichen: + = vergrößern um
Wert = 4
Faktor: g = GB, m = MB, k = KB
sudo btrfs filesystem resize +4g /mnt
Laufwerk verkleinern:
mit Vorzeichen: - = verkleinern um
Wert = 4
Faktor: g = GB, m = MB, k = KB
sudo btrfs filesystem resize -4g /mnt
Laufwerk eine definierte Größe zuweisen:
Wert = 4
Faktor: g = GB, m = MB, k = KB
sudo btrfs filesystem resize 16g /mnt
einem Laufwerk bzw. Unterlaufwerk (Subvolume) den gesamten noch zur Verfügung stehenden Speicherplatz zuweisen
sudo btrfs filesystem resize max /mnt
In allen Fällen wird bei erfolgreicher Veränderung eine Anzeige ausgegeben, die beispielhaft so aussieht:
resize '/mnt' of '+4g'
Will man eine Übersicht zu vorhandenen Btrfs-Dateisystemen erhalten, kann man im Terminal[1]
sudo btrfs filesystem show
eingeben. Dann werden entsprechende Informationen zu allen Laufwerken angezeigt, unabhängig vom Mount-Status, ob ein Btrfs-Dateisystem vorhanden ist oder auch nicht.
Weitere Informationen dazu findet man im separaten WIKI unter Formatierung überprüfen.
Dieser Befehl ist nur wirksam, wenn beim Formatieren eines Btrfs_RAID-Verbundes die Optionen
-d
= Datenprofil mit raid0 bis raid10
-m
= Metadatenprofil mit raid0 bis raid10
eingesetzt wurden. Die Eingabe erfolgt in ein Terminal[1] mit:
sudo btrfs filesystem sync PFAD
Die Angabe PFAD
kann dabei ein beliebiger Pfad im laufendem System sein.
Will man eigene Unterlaufwerke (Subvolumes) anlegen, so kann man dies auf einer mit Btrfs formatierten Partition erreichen, indem man diese Partition, sofern erforderlich,
in das laufende System einbindet
alternativ zum Einbindepunkt wechselt.
Dazu gibt man in ein Terminal[1] nacheinander
sudo mount /dev/sda1 /media
sudo btrfs subvolume create /media/BEZEICHNUNG
sudo umount /dev/sda1
ein. Als BEZEICHNUNG
kann man eine beliebige Information wählen, z.B.: daten
- also auch eine Bezeichnung ohne das führende @
.
Um ein bestehendes Unter-Laufwerk (Subvolume) wieder zu löschen, kann man dieses (ggf. nach dem Einbinden in das eigene System) mit der Eingabe in ein Terminal[1] von:
sudo btrfs subvolume delete /media/BEZEICHNUNG
Die normale Bash-Routine/Befehlsequenz
sudo rm -rf /mnt/BEZEICHNUNG
ist für ein Subvolume unwirksam. Es wird dabei nur der Inhalt des Unterlaufwerkes (Subvolume) gelöscht und das kann zu unkontrolliertem Verhalten bzw. auch Datenverlust führen. Man sollte daher vorab mit dem Befehl btrfs subvolume list
den Status eines Verzeichnisses überprüfen!
Will man Informationen über den Zustand einzelner Dateien angezeigt bekommen, so kann man diese im Terminal[1] abfragen mit:
sudo btrfs subvolume find-new /home 20725 > liste.txt
Dabei bedeuten
/home
ein gültiges Unterlaufwerk (Subvolume) und
20725
die laufende Nummer der Metadaten-Information, ab der ein Suchvorgang erfolgen soll (jünger als Parameter). Man sollte erst einmal mit einer zu hohen Zahl (z.B. 1 000 000) anfangen, dann erhält man als Ausgabe die letzte lfd. Zählnummer - z.B.:
transid marker was 20741
mit der man dann (<=) eine erneute Suche einleiten kann und erhält u.a.:
inode 9690 file offset 0 len 20 disk start 0 offset 0 gen 20728 flags INLINE ~/.local/share/zeitgeist/bb.fts.index/postlist.baseB
> liste.txt
Damit wird die Ausgabe in eine Datei umgeleitet. Dieses ist immer vorzuziehen - ein Abbrechen der Ausgabe ist jederzeit möglich mit Strg + C .
Um die Unter-Laufwerke (Subvolumes) ID in einem aktiven System abzufragen, gibt man in ein Terminal[1] ein:
btrfs subvolume list /
und erhält (die beispielhafte) Ausgabe für das aktuelle Wurzelverzeichnis:
ID 260 top level 5 path @ ID 258 top level 5 path @home ID 261 top level 5 path @data
Diese Daten sind für das Einbinden von Partitionen mit Subvolumes von Interesse, sowohl für das aktuelle einmalige Einbinden als auch für die /etc/fstab. Unterlaufwerke (Subvolumes), welche nicht zum Wurzelverzeichnis gehören, kann man dann anstelle mit … -o subvol=@data …
z.B. sicherer einbinden mit:
sudo mount -o subvolid=261 /dev/sda3 /media/daten
bzw. in der /etc/fstab:
UUID=2f613613-85b4-46cf-bbbe-90a1748f7753 /media/daten btrfs defaults,subvolid=261 0 0
Die Benutzung dieses Befehls wird die Struktur des Ubuntu-Systems zerstören, weil unter Ubuntu nur das Wurzelverzeichnis das oberste Verzeichnis in der Struktur sein darf!
Um die Ebene eines Unterlaufwerkes (Subvolumes) innerhalb der Btrfs-Struktur zu verändern, gibt man in einem Terminal[1]
sudo btrfs subvolume set-default SUB_ID /SUBVOLUME
ein. Wobei die SUB_ID
im Prinzip eine beliebige Integerzahl sein darf, die noch nicht durch bereits vorhandene IDs belegt ist (siehe auch btrfs subvolume list
). Das Unterlaufwerk (Subvolume) muss ein gültiges Verzeichnis sein.
Um einen falschen Eintrag zu löschen, muss man über eine Live-CD das fragliche System (hier im Beispiel /dev/sda1) einbinden und die Struktur wieder herstellen. Dazu öffnet man im Live-System ein Terminal[1] und gibt dort nacheinander
sudo mount /dev/sda1 /mnt
sudo btrfs subvolume set-default 5 /mnt
sudo umount /dev/sda1
ein. Die 5
steht als festes Alias für ein Wurzelverzeichnis innerhalb eines Btrfs-Dateisystemes (siehe auch btrfs subvolume list)! Dieses muss man ggf. auch für die anderen Unterlaufwerke (Subvolumes) vorsorglich machen. Nach einem Neustart sollte das (Ubuntu)-System wieder normal starten.
Um einen aktuellen Zustand des Dateisystemes bzw. Teilen davon zu erhalten (Snapshot), kann man über ein Terminal[1] diesen erstellen lassen (quasi Backup). Dieses kann in einem laufenden System oder auch aus einem Live-System erfolgen. Als Quelle wird von einer Partition mit Subvolumes ausgegangen. Als Beispiel wird hier vom Laufwerk /dev/sda1 mit dem Unterlaufwerk (Subvolume) @home ausgegangen. Man gibt dann nacheinander in ein Terminal[1] ein:
sudo mount /dev/sda1 /mnt
cd /mnt
Der Schnappschuss wird erstellt mit:
sudo btrfs subvolume snapshot @home home-2012-04-28
Als Ziel muss ein Verzeichnis auf dem gleichen Laufwerk gewählt werden, als Bezeichnung sollte eine mit aussagefähigem Text (z.B.: home-datum
) genommen werden. Es wird dabei nur geringfügig mehr Speicherplatz in Anspruch genommen, da der Snapshot nur ein zusätzliches Unterlaufwerk (Subvolume) darstellt, intern werden die Verzeichnisse und Dateien nur mit den Metadaten verlinkt. Einen älteren Schnappschuss sollte man mit dem Befehl btrfs subvolume delete
löschen. Danach kann/sollte man den Einhängepunkt wieder lösen mit:
cd ..
sudo umount /dev/sda1
Nach dem Löschen eines Schnappschusses werden in dem automatisch startenden Hintergrundprozess (btrfs-cleaner
) alle überflüssigen Dateien und Metadaten überprüft und gelöscht. Dass kann je nach Datenmenge und Zugriffszeit auf die Festplatte(n) erhebliche Zeit in Anspruch nehmen. Ein Weiterarbeiten ist dabei grundsätzlich möglich.
Nach einem Schnappschuss bleiben die realen Dateien auf der Festplatte solange erhalten, bis dieser Schnappschuss wieder gelöscht wird. Deshalb sollte man vor dem Anlegen eines Schnappschusses alle überflüssigen Daten / Dateien löschen.
Beispiel 1
Vorhanden seien Kernel A und Kernel B, als man den Schnappschuss angelegt hat. Nach einiger Zeit wird der Kernel C hinzugefügt und der Kernel A gelöscht. Dann bleiben trotzdem alle Daten für Kernel A auf der Festplatte bestehen, denn diese werden (bis zum Löschen) vom Schnappschuss gehalten.
Beispiel 2
Im Verzeichnis /var/cache/apt/archives werden die Pakete für die Installation, das Update bzw. ein Upgrade solange aufbewahrt, bis diese gelöscht werden (was nicht immer automatisch erfolgt). So sammeln sich so ggf. größere Datenmengen an!
Die Konvertierung von ext2 - ext4 nach Btrfs erfolgt bei einer Eingabe in das Terminal[1] von:
btrfs-convert [-d] [-i] [-n] [-r] GERÄT
Die zugehörigen Optionen und Parameter sind:
-d
= deaktiviere Prüfsummen der Daten
-i
= ignoriere xattrs and ACLs
-n
= verzichte auf Verdichtung kleiner Files (< Seitegröße)
-r
= mit der Sicherungsdatei zurück konvertieren
GERÄT
= relevantes Laufwerk / Partition
Eine detailierte Erläuterung erfolgt im separaten WIKI → Konvertierung nach Btrfs
Der Befehl
sudo btrfs-debug-tree
darf nicht auf einem eingehängten (mounted) Dateisystem angewendet werden!
Um den gesamten Metadatenbaum (BTree) eines Laufwerkes mit den einzelnen Einträgen (Äste und Blätter) zu überprüfen, gibt man für ein nicht eingebundenes Laufwerk im Terminal[1] ein:
sudo btrfs-debug-tree [-e] GERÄT > Ausgabe.txt
Die bedarfsweise Option
-e
beschränkt die Ausgabe auf fehlerhafte Einträge.
Das zu prüfende Laufwerk ist mit /dev/sda1 bzw. der relevanten Laufwerksbezeichnung vorzugeben. Um die Ausgabe in Ruhe auswerten zu könnnen, sollte man die Ausgabe mit > Ausgabe.txt
in eine Datei umleiten.
Mit diesem Befehl wird eine Image-Datei erstellt, die von der angegebenen Quelle ein Image unter dem angebenen Ziel erstellt.
Das Ergebnis ist nicht vergleichbar mit dem, was mit dem Befehl btrfs subvolume snapshot
erreicht wird. Hier werden nur die Metadaten des Btrfs-Dateisystemes in eine Datei kopiert - die eigentlichen Daten werden jeweils als Null-Datei übernommen!
Dazu gibt man in das Terminal[1] ein:
btrfs-image [Option(en)] QUELLE ZIEL
Die Optionen haben folgende Bedeutung:
-r
= Schreibe ein älteres Image zurück
QUELLE
ist das Image, ZIEL
das Laufwerk
-c WERT
= Komprimierung, Wert von 0 = keine, 1 = niedrigste zlib
, 9 = höchste zlib
-t WERT
= Anzahl der parallelen Prozesse, Wert von 1 bis 32, Default = Anzahl CPUs
QUELLE
= ein gültiges Btrfs-Laufwerk - /dev/sdXY
ZIEL
= eine aussagefähige Bezeichnung (inkl. Pfadangabe)
Dieses Image belegt zusätzlichen Speicherplatz und sollte nach dem Fertigstellen auf ein anderes oder externes Laufwerk gesichert werden.
Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.
Um eine manuelle Prüfung am Dateisystem für ein nicht eingebundenes Laufwerk auszuführen, gibt man in das Terminal[1] ein:
btrfsck /dev/sda1
und erhält bei einem fehlerfreien Durchlauf (beispielhaft):
found 2662187008 bytes used err is 0 total csum bytes: 2410436 total tree bytes: 192860160 total fs tree bytes: 179916800 btree space waste bytes: 46454099 file data blocks allocated: 13467791360 referenced 2771017728 Btrfs Btrfs v0.19
Da diese Dateiprüfung zur Zeit mit dem Standardtool keine Korrekturen ausführt, kann man sich selbst helfen, indem man eine solche Prüfung manuell ausführt. Dazu legt man sich das folgende Skript z.B. als dateick-btrfs ausführbar ab nach:
/usr/local/sbin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/bash E_BADARGS=65 function FEHLERSUCHE { find $1 -mount -type f -exec cat '{}' > /dev/null \; } if [ $# -ne 1 ] then echo "Bitte geben Sie den Pfad zu"; echo "dem eingehängten Laufwerk an"; exit $E_BADARGS fi echo "Skript \"dateick-btrfs\" wurde gestartet."; echo "Überprüfe $1, das wird eine Weile dauern!"; FEHLERSUCHE "$1" echo "Fehlersuche beendet! Bitte prüfen Sie 'dmesg' auf mögliche Fehler"; exit 0 |
Das Skript wird im Terminal z.B. mit:
sudo dateick-btrfs /etc
gestartet und überprüft den angegebenen Pfad rekursiv dahingehend, ob die Prüfsummen der Dateien mit den redundanten Prüfsummen übereinstimmen. Wenn eine falsche Prüfsumme gefunden wird, sendet die Kernelroutine einen entsprechenden Hinweis, der im Terminal mit
dmesg
ausgelesen werden kann.
Das Skript arbeitet nicht auf einem mit single
formatierten Btrfs-Dateisystem, siehe auch den Expertenhinweis beim Befehl mkfs.btrfs
.
Will man ein reales Backup von einer Partition insgesamt oder einem Unterlaufwerk (Subvolume) extern anlegen, so muss diese Option vorab gesetzt (enabled) werden. Alternativ kann man die Partition auch mit der Option ro
einbinden!
Will man mit einem Dateisystem (experimentell) arbeiten, so empfiehlt es sich, auch hierbei dieses auf den Status
nur lesbar (readonly)
einzustellen.
Dazu gibt man in ein Terminal[1] ein:
sudo btrfstune 0 /dev/sda1
Die Optionen sind
0
= normale Einstellung, les- und beschreibbar (disabled)
1
= Seeding-Flag setzen, nur lesbar (enabled)
Bei erfolgreicher Umstellung wird beim Setzen des Seeding-Flags keine Rück-/Fehlermeldung ausgegeben - hingegen erfolgt im Fehlerfall bzw. beim Entfernen des Seeding-Flags folgende Ausgabe:
seeding flag is not set on /dev/sda1
Dieser alternative Befehl sollte nicht mehr verwendet werden (unsichere Befehlsausführung, wird nicht mehr gepflegt).
Der btrfsctl
-Befehl stellt eine Zusammenfassung der einzelnen btrfs
-Befehle dar. Die Eingabe in das Terminal [1] erfolgt mit:
sudo btrfsctl [Option(en)]
Dieses ist ein alternativer Befehl zu btrfs filesystem show
und sollte nicht mehr verwendet werden (unsichere Befehlsausführung, wird nicht mehr gepflegt).
Dieses ist ein alternativer Befehl, je nach Option -a
= btrfs device add
, -b
= btrfs filesystem balance
sowie -r
= btrfs device delete
und sollte nicht mehr verwendet werden (unsichere Befehlsausführung, wird nicht mehr gepflegt).
Dieses ist ein alternativer Befehl zu btrfs balance
und sollte nicht mehr verwendet werden (unsichere Befehlsausführung, wird nicht mehr gepflegt).
Diese Revision wurde am 16. März 2017 22:48 von rsguhr erstellt.