Warum ein Rollback ?
- Manjaro bootet nicht mehr in die grafische Oberfläche
- Das letzte Update hat ein Programm beschädigt das du brauchst
- …
Jetzt macht sich btrfs mit einem guten Layout und snapper bezahlt. Bitte lies die ganze Anleitung bis zum Ende durch bevor du beginnst.
Für einen Rollback sind nur wenige Schritte nötig:
Ein Rettungs-Manjaro booten
Entweder von CD oder von einem USB-Stick oder woanders her . Auf keinen Fall das btrfs-Volume benutzen, das wir reparieren wollen. Falls die notwendigen Programme nicht da sind, nachinstallieren mit:
pamac install btrfs-progs mc gparted
- gparted - Um eine Übersicht mit den Device-namen der Laufwerke zu bekommen
- btrfs-progs - Zum Erzeugen und Auflisten von Snapshots
- mc - Zum kontrollieren was jeweils auf dem Volume passiert
Das folgende ist keine Spielwiese für Experimente. Die Befehle erfordern es als root zu arbeiten, und das nicht ohne Grund. Bitte denk daran jeden Befehl 3 mal auf Tippfehler zu kontrollieren. Das geht alles ganz einfach. Aber es greift eben tief ins System ein. Keine Angst. Fehler lassen sich reparieren. Aber das kostet unnötig Zeit und Nerven.
Also 2(!) Terminals aufmachen und in jedem root werden
sudo su
Wo liegt der "gute" Snapshot ?
Erstmal mit gparted die Platten anschauen und das device mit dem btrfs-Dateisystem suchen, das den Rollback bekommen soll. Dann dieses Volume im 1.Terminal mounten:
mkdir /mnt/ROOT; cd /mnt/ROOT
Mein btrfs Volume ist /dev/nvme0n1p3 Bitte im folgenden Befehl dein device einsetzen !
mount -t btrfs -o subvol=/ /dev/nvme0n1p3 /mnt/ROOT
Ab jetzt kann man im 2.Terminal mc starten und dort alles sehen was wir machen. Dort ist auch das layout des btrfs-Volume zu sehen.
cd /mnt/ROOT; mc
In meinem Layout liegt das system unter @ und die Snapshots unter @snapshot. Wir suchen den Snapshot, dessen Timestamp so liegt, dass das System zu diesem Zeitpunkt noch OK war. Keine Angst, die Daten von danach gehen nicht verloren. Bei mir ist das @snapshots/18330/snapshot
Den kaputten Systemzustand sichern
Mein bootendes system liegt jeweils unter @ , meine Snapshots unter @snapshots . Das @ ist kaputt und muß weggeräumt werden. (rw-snapshots lassen sich verschieben, und @ ist ein rw-Snapshot) Ich geh im rechten Fenster TAB in mc in das “Verzeichnis” @snapshots , dann TAB im linken Fenster mit F6 den “@” verschieben und dabei in “kaputt1” umbenennen. Oder im 1.Terminal:
mv /mnt/ROOT/@ /mnt/ROOT/@snapshots/kaputt1
Mit mc lässt sich wunderbar kontrollieren wie das klappt.
Den ausgewählten Snapshot zum booten herrichten
Das system braucht zum Booten einen rw-Snapshot. Aber die Snapshots die snapper anfertigt sind nicht ohne Grund “readonly”. Wir müssen also von dem vorhanden Snapshot einen neuen rw-Snapshot anfertigen.
btrfs subvolume snapshot /mnt/ROOT/@snapshots/18330/snapshot /mnt/ROOT/@
Diesen Snapshot machen wir jetzt noch zum default
btrfs subvolume set-default /mnt/ROOT/@
Wieder mit mc kontrollieren ! Dann mc beenden.
umount /mnt/ROOT
FERTIG
Wenn du den richtigen Snapshot ausgewählt hast bootet das system. Ich musste das ganze nochmal mit dem Snapshot 18347 wiederholen
Aufräumen
Einige Tage nach dem Rollback muss man noch den nun unnötigen Snapshot mit dem kaputten Dateisystem entfernen. Der heißt @snapshots/kaputt1 Das kann aus dem laufenden system heraus geschehen. (btrfs ist großartig)
Diese Anleitung setzt voraus, dass sich das Verzeichnis (/boot) mit dem Kernel (der ja beim Update geändert werden kann) auf dem btrfs-Volume befindet. Damit ist sichergestellt, dass in jedem Snapshot, dazu passende kernel, initramfs und module vorhanden sind. Bei einem getrennten /boot -Laufwerk (wie früher üblich) kann ein Rollback schwierig werden.
Du kannst auch versuchen den Zustand der Bootdateien zu prüfen. Eventuell gibt es dann einen Weg das zu reparieren. maxi
kann bei der Bestandsaufnahme helfen.
Wenn das nicht gelingt, folge dem Link um wenigstend die Daten zu retten:
- Mein Rollback ist gelungen
- Ich konnte zumindest meine Daten retten
- Ich hab aufgegeben
- Ich bin dabei, und noch nicht fertig
0 voters