GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux BTRFS - Konvertieren in Single mit ausgefallenem Laufwerk

Okay, ich habe es mit Hilfe dieses Trello-Links herausgefunden. Falls jemand anderes dies tun möchte, hier ist das Verfahren.

Verfahren

Von einem RAID1-Array aus zwei Festplatten, eine /dev/sda welches defekt ist und noch ein /dev/sdc bekanntlich gut:

  1. Deaktivieren Sie das automatische Mounten dieses Arrays in /etc/fstab , Neustart . Grundsätzlich möchten wir, dass btrfs vergisst, dass dieses Array existiert, da es einen Fehler gibt, bei dem es immer noch versucht, eines der Laufwerke zu verwenden, wenn es nicht angeschlossen ist.
  2. Nachdem Ihr Array nun ausgehängt ist, führen Sie Folgendes aus:

    echo 1 | sudo tee /sys/block/sda/device/delete

    ersetzt sda mit dem fehlerhaften Gerätenamen. Dies führt dazu, dass die Festplatte herunterfährt (Sie sollten dies in dmesg überprüfen) und für den Kernel unzugänglich wird.

    Alternativ :Nehmen Sie einfach das Laufwerk vor dem Booten aus dem Computer! Ich habe mich gegen diese Methode entschieden, da das obige für mich gut funktioniert.

  3. Mounten Sie Ihr Array mit -o degraded Modus.
  4. Beginnen Sie einen Rebalancing-Vorgang mit sudo btrfs balance start -f -mconvert=single -dconvert=single /mountpoint . Dadurch werden die Extents auf dem bekanntermaßen funktionierenden Laufwerk neu organisiert und in single konvertiert (Nicht-RAID). Dies dauert fast einen Tag, abhängig von der Geschwindigkeit Ihres Laufwerks und der Größe Ihres Arrays. (meins hatte ~700 GiB und wurde mit einer Rate von 1 1-GiB-Blöcken pro Minute neu ausbalanciert.) Glücklicherweise kann dieser Vorgang angehalten werden und hält das Array online, während er ausgeführt wird.
  5. Sobald dies erledigt ist, können Sie sudo btrfs device remove missing /mountpoint ausgeben um das 'fehlende' fehlerhafte Gerät zu entfernen.
  6. Beginnen Sie eine zweite Neuverteilung mit sudo btrfs balance start -mconvert=dup /mountpoint Metadatenredundanz wiederherzustellen. Dies dauert auf meinem System einige Minuten.
  7. Du bist fertig! Ihr Array ist jetzt single Modus, bei dem alle Redundanzen entfernt wurden.
  8. Bringen Sie Ihr defektes Laufwerk nach draußen und schlagen Sie es mit einem Hammer ein.

Fehlerbehebung

  • Hilfe, btrfs hat versucht, auf meine fehlerhafte Festplatte zu schreiben, hat einen Fehler ausgegeben und sie auf Readonly gesetzt!
    • Haben Sie Schritt 1 befolgt und neu gestartet, bevor Sie fortfahren? Es ist wahrscheinlich, dass btrfs immer noch denkt, dass das Laufwerk, das Sie heruntergefahren haben, vorhanden ist. Ein Neustart wird dazu führen, dass btrfs alle Fehler vergisst und Sie fortfahren können.

Danke für deinen Beitrag. Ich hatte die Idee, Raid zu testen, das Laufwerk aus meinem Hotswap-Schacht zu nehmen, ein anderes Laufwerk zu verwenden und dann das Raid-Laufwerk wieder einzubauen. Im Nachhinein war das eine schlechte Idee, und jetzt brauche ich meinen Hotswap-Schacht.

Hier ist, was ich gefunden habe. Als root:

# sudo btrfs fi show
Label: 'disk'  uuid: 12817aeb-d303-4815-8bba-a3440e36c62c
Total devices 2 FS bytes used 803.10GiB
    devid    1 size 931.51GiB used 805.03GiB path /dev/sda1
    devid    2 size 931.51GiB used 805.03GiB path /dev/sdb1

Beachten Sie das für jedes Laufwerk aufgeführte Gerät. Man for brtrfs balance führte mich zur Option devid, brauchte ein paar Versuche, um herauszufinden, wie die Filter funktionierten (zunächst versuchte man devid=/dev/sdb1). Ihr erster Versuch wird also in etwa so aussehen.

# btrfs balance start -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Was mir einen Fehler gab.

ERROR: error during balancing '/media/.media': Invalid argument
There may be more info in syslog - try dmesg | tail    

Hier ist der Fehler von dmesg:

BTRFS error (device sdb1): balance will reduce metadata integrity, use force if you want this

Das ist also das Finale, das funktioniert hat:

# btrfs balance start -f -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Hoffentlich hilft das jemand anderem weiter.


Linux
  1. Partitionieren Sie ein Laufwerk unter Linux mit GNU Parted

  2. Konvertieren Sie Audiodateien mit diesem vielseitigen Linux-Befehl

  3. Stellen Sie Ihr System mit dem Einzelbenutzermodus in Linux Mint / Linux Mint 12 wieder her

  4. Festplatte mit Nullen unter Linux überschreiben:Schnell &Einfach!

  5. Swap fehlgeschlagen:Ungültiges Argument auf einem Linux-System mit Btrfs-Dateisystem

Erstellen Sie ein bootfähiges USB-Laufwerk mit Ventoy WebUI unter Linux

So konvertieren Sie Linux-Pakete mit Alien

Setzen Sie den Linux-Desktop mit einem einzigen Befehl auf die Standardeinstellungen zurück

So konvertieren Sie ein Verzeichnis in eine Partition unter Linux

Umstieg auf Linux? Bringen Sie Ihr Google Drive mit

Konvertieren Sie Tabulatoren in Leerzeichen im Linux-Terminal mit dem Befehl „Erweitern“.