BTRFS-Root: Kein freier Speicherplatz auf dem Gerät, automatische Neubereitstellung schreibgeschützt; kann nicht ausgleichen, kann kein Gerät hinzufügen

BTRFS-Root: Kein freier Speicherplatz auf dem Gerät, automatische Neubereitstellung schreibgeschützt; kann nicht ausgleichen, kann kein Gerät hinzufügen

Mein BTRFs-Stammverzeichnis war während der Systemaktualisierung voll und wurde automatisch als schreibgeschützt neu gemountet. Ich habe viele Dateien, die ich löschen könnte, aber es ist schreibgeschützt. Ich habe Folgendes versucht:

  1. sudo mount -o remount,rw / → Einhängepunkt nicht eingehängt oder falsche Option

  2. Erstellen Sie eine /dev/loop0temporäre 10G-Datei und versuchen Sie, sie dem BTRFS-Gerät hinzuzufügen: sudo btrfs device add /dev/loop0 /error adding device /dev/loop0: Read-only file system

  3. Neu ausbalancieren: sudo btrfs balance start -dusage=0 /(auch versucht -musage=0) →error during balancing '/': Read-only file system

Im Grunde genommen schlägt also alles fehl, was ich versucht habe, weil das Dateisystem schreibgeschützt ist. Ich kann es aus irgendeinem Grund nicht als RW erneut mounten. Ich habe Angst, das System neu zu starten, da es wahrscheinlich nicht booten wird. Gibt es keine Hoffnung für jemanden mit einem vollständigen BTRFS-Root-FS?

Antwort1

Hatte das gleiche Problem und konnte es folgendermaßen beheben:

umount /home
mount /dev/sdd1 on /home -o rw,clear_cache,skip_balance

Dadurch werden alle Neuausgleichsvorgänge (mein Sperrpunkt) übersprungen und ein Teil des Caches geleert, um bereits etwas Speicherplatz freizugeben.

Danach würde jedoch jeder Vorgang weiterhin auf schreibgeschützt umgeschaltet werden, daher habe ich stattdessen direkt nach dem Mount-Befehl jede Neuverteilung geprüft und gestoppt:

btrfs fi balance show /home
btrfs fi balance cancel /home

Danach war das BTRFS stabiler und ich konnte die Größe ändern

btrfs fi resize max /home

Wahrscheinlich sollte jetzt auch der Befehl „FAQ-Balance“ funktionieren oder einige große Dateien manuell entfernt werden.

Dies wird in den FAQ berichtet (und Sie sollten verschiedene Werte von niedriger bis höher ausprobieren, da es sich hierbei um einen Prozentsatz des verwendeten Speicherplatzes in Blöcken handelt, die vom Kontostand ausgewählt und schließlich zusammengeführt werden, um Speicherplatz freizugeben).

btrfs fi balance  start -dusage=10 /home

Schließlich gibt es auch noch die Möglichkeit, ein neues Gerät hinzuzufügen und eine Neuverteilung anzufordern (also ein RAID0, aber Sie können dies später feinabstimmen und zu RAID1 wechseln, wenn Sie möchten und genügend Speicherplatz haben). BTRFS kann im laufenden Betrieb ein „RAID“ mit mehreren Geräten erstellen (im schlimmsten Fall ein temporärer USB-Speicher, aber denken Sie daran, die Daten zu entfernen und das Gerät am Ende zu entfernen).

btrfs device add /dev/sdf1 /home
btrfs balance start -dusage=20 -musage=20 /home

Optimieren Sie die Werte in dusage (Daten) und musage (Metadaten), um entweder die Geschwindigkeit zu erhöhen und/oder mehr Informationen zu verschieben. In manchen Fällen möchten Sie vielleicht ein hinzufügen, -ddevid=???um die Neuverteilung auf das gesamte Gerät zu beschränken, sodass btrfs gezwungen wird, Teile vom gesamten Gerät auf das Gerät mit mehr Speicherplatz zu verschieben. Holen Sie sich das Devid vonbrtfs fi show

Sehen Sie sich die Ergebnisse am Ende an (denken Sie daran, dass df in btrfs nicht ausreicht, da btrfs mehrere Ebenen hat und df nur eine sehen kann)

btrfs fi show
btrfs fi usage /home
btrfs device usage /home
btrfs fi df /home

verwandte Informationen