• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Tumbleweed snapper rollback

egweber1

Hacker
Hallo: Habe mal ein Rollback probiert:
Beim Bootloader einwandfrei funktioniert:
Code:
Start bootloader from a read-only snapshot
Dann einen ausgewählt und hat funktioniert:
Code:
openSUSE Tumbleweed /6.2.10-1,2023-04-16T08:21,pre,zypp(zypper))
Folgende Meldung erhalten beim Ausführen von rollback:
Code:
linux:~ # snapper rollback
Anwendungsbereich kann nicht erkannt werden, weil das Standard-Subvolume unbekannt ist.
Das kann passieren, wenn das System nicht für Rollbacks eingerichtet wurde.
Der Anwendungsbereich kann manuell durch die Verwendung der Option --ambit angegeben werden.
linux:~ #
Unter YAST > Dateisystemschnappschuss ist auch nach aktualisieren nichts zu sehen.
Wie funktioniert es dann?
 
Zuletzt bearbeitet:
OP
egweber1

egweber1

Hacker
Code:
weber@linux:~> sudo snapper --ambit=classic create
[sudo] Passwort für root:
E/A-Fehler (.snapshots is not a btrfs subvolume).
weber@linux:~>
Wenn ich nicht mit
Code:
Start bootloader from a read-only snapshot
sondern Tumbleweed normal starte, zeigt sich mir folgendes:
Code:
linux:~ # snapper list
   # | Type   | Pre # | Date                     | User | Cleanup | Description        | Userdata
-----+--------+-------+--------------------------+------+---------+--------------------+--------------
  0  | single |       |                          | root |         | current            |      
668  | pre    |       | Fri Apr  7 17:21:54 2023 | root | number  | zypp(packagekitd)  | important=no
669  | post   |   668 | Fri Apr  7 17:22:04 2023 | root | number  |                    | important=no
670  | pre    |       | Sat Apr  8 07:51:29 2023 | root | number  | zypp(packagekitd)  | important=yes
671  | post   |   670 | Sat Apr  8 07:56:13 2023 | root | number  |                    | important=yes
672  | pre    |       | Sat Apr  8 19:49:13 2023 | root | number  | zypp(packagekitd)  | important=yes
673  | post   |   672 | Sat Apr  8 19:51:31 2023 | root | number  |                    | important=yes
674  | pre    |       | Sun Apr  9 22:52:35 2023 | root | number  | zypp(packagekitd)  | important=no
675  | post   |   674 | Sun Apr  9 22:56:36 2023 | root | number  |                    | important=no
676  | pre    |       | Mon Apr 10 20:40:59 2023 | root | number  | zypp(packagekitd)  | important=no
677  | post   |   676 | Mon Apr 10 20:44:31 2023 | root | number  |                    | important=no
678  | pre    |       | Tue Apr 11 10:11:50 2023 | root | number  | zypp(ruby.ruby3.2) | important=no
679  | post   |   678 | Tue Apr 11 10:15:04 2023 | root | number  |                    | important=no
680  | pre    |       | Tue Apr 11 19:58:36 2023 | root | number  | zypp(packagekitd)  | important=no
681  | post   |   680 | Tue Apr 11 20:00:30 2023 | root | number  |                    | important=no
682  | pre    |       | Wed Apr 12 09:03:14 2023 | root | number  | zypp(packagekitd)  | important=no
683  | post   |   682 | Wed Apr 12 09:05:00 2023 | root | number  |                    | important=no
684  | pre    |       | Wed Apr 12 19:51:18 2023 | root | number  | zypp(packagekitd)  | important=yes
685  | post   |   684 | Wed Apr 12 19:53:52 2023 | root | number  |                    | important=yes
686  | pre    |       | Thu Apr 13 11:32:03 2023 | root | number  | zypp(packagekitd)  | important=no
687  | post   |   686 | Thu Apr 13 11:34:23 2023 | root | number  |                    | important=no
688  | pre    |       | Thu Apr 13 11:48:41 2023 | root | number  | zypp(packagekitd)  | important=no
689  | post   |   688 | Thu Apr 13 11:48:45 2023 | root | number  |                    | important=no
690  | pre    |       | Thu Apr 13 11:48:46 2023 | root | number  | zypp(packagekitd)  | important=no
691  | post   |   690 | Thu Apr 13 11:48:49 2023 | root | number  |                    | important=no
692  | pre    |       | Thu Apr 13 12:25:16 2023 | root | number  | zypp(packagekitd)  | important=no
693  | post   |   692 | Thu Apr 13 12:25:19 2023 | root | number  |                    | important=no
694  | pre    |       | Thu Apr 13 12:25:42 2023 | root | number  | zypp(packagekitd)  | important=no
695  | post   |   694 | Thu Apr 13 12:25:45 2023 | root | number  |                    | important=no
696  | pre    |       | Fri Apr 14 19:04:34 2023 | root | number  | zypp(packagekitd)  | important=yes
697  | post   |   696 | Fri Apr 14 19:10:50 2023 | root | number  |                    | important=yes
698  | pre    |       | Sat Apr 15 09:25:05 2023 | root | number  | zypp(zypper)       | important=yes
699  | post   |   698 | Sat Apr 15 09:25:18 2023 | root | number  |                    | important=yes
700  | pre    |       | Sat Apr 15 09:36:27 2023 | root | number  | zypp(zypper)       | important=no
701  | post   |   700 | Sat Apr 15 09:36:37 2023 | root | number  |                    | important=no
702  | pre    |       | Sun Apr 16 10:21:28 2023 | root | number  | zypp(zypper)       | important=no
703  | post   |   702 | Sun Apr 16 10:24:30 2023 | root | number  |                    | important=no
704  | pre    |       | Sun Apr 16 21:48:57 2023 | root | number  | zypp(packagekitd)  | important=no
705  | post   |   704 | Sun Apr 16 21:50:30 2023 | root | number  |                    | important=no
706  | pre    |       | Mon Apr 17 14:33:55 2023 | root | number  | zypp(packagekitd)  | important=no
707  | post   |   706 | Mon Apr 17 14:35:48 2023 | root | number  |                    | important=no
linux:~ #
Starte ich aber mit: Start bootloader from a read-only snapshot kommt nur folgendes:
Code:
linux:~ # snapper list
   # | Type   | Pre # | Date                     | User | Cleanup | Description        | Userdata
-----+--------+-------+--------------------------+------+---------+--------------------+--------------
  0  | single |       |                          | root |         | current
linux:~ #
Es fehlt die ganze Liste. Außerdem kann ich von einem geladenen Snapshot aus keine Dateien mehr ändern, egal ob fstab oder auch andere.
 
Zuletzt bearbeitet:
OP
egweber1

egweber1

Hacker
Jetzt selbst gelöst:
Eintrag in der fstab:

Code:
UUID=2eb2b2af-a8ea-416a-b71f-90fbab00e1d0  /.snapshots             btrfs    subvol=/@/.snapshots          0  1
Auf einenSnapshot zurückgesetzt und gestartet:
So funktioniert jetzt endlich:
Code:
weber@linux:~> sudo snapper list
[sudo] Passwort für root:
   # | Typ    | Vorher # | Datum                        | Benutzer | Bereinigen | Beschreibung            | Benutzerdaten
-----+--------+----------+------------------------------+----------+------------+-------------------------+--------------
  0  | single |          |                              | root     |            | current                 |      
670  | pre    |          | Sa 08 Apr 2023 07:51:29 CEST | root     | number     | zypp(packagekitd)       | important=yes
671  | post   |      670 | Sa 08 Apr 2023 07:56:13 CEST | root     | number     |                         | important=yes
672  | pre    |          | Sa 08 Apr 2023 19:49:13 CEST | root     | number     | zypp(packagekitd)       | important=yes
673  | post   |      672 | Sa 08 Apr 2023 19:51:31 CEST | root     | number     |                         | important=yes
674  | pre    |          | So 09 Apr 2023 22:52:35 CEST | root     | number     | zypp(packagekitd)       | important=no
675  | post   |      674 | So 09 Apr 2023 22:56:36 CEST | root     | number     |                         | important=no
676  | pre    |          | Mo 10 Apr 2023 20:40:59 CEST | root     | number     | zypp(packagekitd)       | important=no
677  | post   |      676 | Mo 10 Apr 2023 20:44:31 CEST | root     | number     |                         | important=no
678  | pre    |          | Di 11 Apr 2023 10:11:50 CEST | root     | number     | zypp(ruby.ruby3.2)      | important=no
679  | post   |      678 | Di 11 Apr 2023 10:15:04 CEST | root     | number     |                         | important=no
680  | pre    |          | Di 11 Apr 2023 19:58:36 CEST | root     | number     | zypp(packagekitd)       | important=no
681  | post   |      680 | Di 11 Apr 2023 20:00:30 CEST | root     | number     |                         | important=no
682  | pre    |          | Mi 12 Apr 2023 09:03:14 CEST | root     | number     | zypp(packagekitd)       | important=no
683  | post   |      682 | Mi 12 Apr 2023 09:05:00 CEST | root     | number     |                         | important=no
684  | pre    |          | Mi 12 Apr 2023 19:51:18 CEST | root     | number     | zypp(packagekitd)       | important=yes
685  | post   |      684 | Mi 12 Apr 2023 19:53:52 CEST | root     | number     |                         | important=yes
686  | pre    |          | Do 13 Apr 2023 11:32:03 CEST | root     | number     | zypp(packagekitd)       | important=no
687  | post   |      686 | Do 13 Apr 2023 11:34:23 CEST | root     | number     |                         | important=no
688  | pre    |          | Do 13 Apr 2023 11:48:41 CEST | root     | number     | zypp(packagekitd)       | important=no
689  | post   |      688 | Do 13 Apr 2023 11:48:45 CEST | root     | number     |                         | important=no
690  | pre    |          | Do 13 Apr 2023 11:48:46 CEST | root     | number     | zypp(packagekitd)       | important=no
691  | post   |      690 | Do 13 Apr 2023 11:48:49 CEST | root     | number     |                         | important=no
692  | pre    |          | Do 13 Apr 2023 12:25:16 CEST | root     | number     | zypp(packagekitd)       | important=no
693  | post   |      692 | Do 13 Apr 2023 12:25:19 CEST | root     | number     |                         | important=no
694  | pre    |          | Do 13 Apr 2023 12:25:42 CEST | root     | number     | zypp(packagekitd)       | important=no
695  | post   |      694 | Do 13 Apr 2023 12:25:45 CEST | root     | number     |                         | important=no
696  | pre    |          | Fr 14 Apr 2023 19:04:34 CEST | root     | number     | zypp(packagekitd)       | important=yes
697  | post   |      696 | Fr 14 Apr 2023 19:10:50 CEST | root     | number     |                         | important=yes
698  | pre    |          | Sa 15 Apr 2023 09:25:05 CEST | root     | number     | zypp(zypper)            | important=yes
699  | post   |      698 | Sa 15 Apr 2023 09:25:18 CEST | root     | number     |                         | important=yes
700  | pre    |          | Sa 15 Apr 2023 09:36:27 CEST | root     | number     | zypp(zypper)            | important=no
701  | post   |      700 | Sa 15 Apr 2023 09:36:37 CEST | root     | number     |                         | important=no
702  | pre    |          | So 16 Apr 2023 10:21:28 CEST | root     | number     | zypp(zypper)            | important=no
703  | post   |      702 | So 16 Apr 2023 10:24:30 CEST | root     | number     |                         | important=no
704  | pre    |          | So 16 Apr 2023 21:48:57 CEST | root     | number     | zypp(packagekitd)       | important=no
705  | post   |      704 | So 16 Apr 2023 21:50:30 CEST | root     | number     |                         | important=no
706  | pre    |          | Mo 17 Apr 2023 14:33:55 CEST | root     | number     | zypp(packagekitd)       | important=no
707  | post   |      706 | Mo 17 Apr 2023 14:35:48 CEST | root     | number     |                         | important=no
708  | single |          | Mo 17 Apr 2023 18:07:24 CEST | root     |            |                         |      
709  | single |          | Mo 17 Apr 2023 21:10:07 CEST | root     |            |                         |      
710  | single |          | Mo 17 Apr 2023 21:18:57 CEST | root     | number     | rollback backup         | important=yes
711  | single |          | Mo 17 Apr 2023 21:18:58 CEST | root     | number     | writable copy of #709   |      
712  | pre    |          | Mo 17 Apr 2023 21:27:38 CEST | root     | number     | zypp(packagekitd)       | important=no
713  | post   |      712 | Mo 17 Apr 2023 21:29:51 CEST | root     | number     |                         | important=no
714  | single |          | Mo 17 Apr 2023 21:33:04 CEST | root     | number     | rollback backup of #711 | important=yes
715  | single |          | Mo 17 Apr 2023 21:33:05 CEST | root     | number     | writable copy of #712   |      
716  | pre    |          | Mo 17 Apr 2023 21:37:33 CEST | root     | number     | zypp(packagekitd)       | important=no
717  | post   |      716 | Mo 17 Apr 2023 21:39:56 CEST | root     | number     |                         | important=no
718  | single |          | Mo 17 Apr 2023 21:41:57 CEST | root     | number     | rollback backup of #715 | important=yes
719* | single |          | Mo 17 Apr 2023 21:41:58 CEST | root     |            | writable copy of #716   |      
720  | pre    |          | Mo 17 Apr 2023 21:43:37 CEST | root     | number     | zypp(packagekitd)       | important=no
721  | post   |      720 | Mo 17 Apr 2023 21:45:57 CEST | root     | number     |                         | important=no
weber@linux:~>
Danach einmal:
Code:
sudo snapper --ambit=classic rollback 709
Dann nur noch:
Code:
sudo snapper rollback 711
Alles funktioniert! Wobei die Nummern am Ende für den jeweiligen Snapshot stehen.
(y) Stellt sich nur die Frage, warum das nicht einfach schon bei der Installation passiert ist.
 
Zuletzt bearbeitet:

Bequimão

Member
Ich wollte gestern bei mir selbst testen, als ich gesehen habe, dass du das Problem gelöst hast. Du solltest noch sagen, dass die Lösung nach Boot des Original-Snapshots (Default) gilt.

Als Anmerkung:
snapper erzeugt read-only Snapshots, also kann man keine Dateien des Snapshots ändern. Das ist so gewollt wegen der nachträglichen Analyse. Ich frage mich, ob das Booten eines read-only Snapshots ein gültiger Test ist. Sicherlich nur um sich zu vergewissern, dass man den richtigen Snapshot erwischt hat.

snapper funktioniert nur, wenn das Subvolume .snapshots oder @/.snapshots im Dateisystem gemountet ist. Also kann man davon ausgehen, dass alle Snapshots regulär erzeugt sind.

Du solltest noch kontrollieren, ob das automatische Löschen der Snappshots nach den Parametern in /etc/snapper/configs/root funktioniert und gegebenfalls alte Snappshots händisch löschen.

Grüße, Bequimão
 
OP
egweber1

egweber1

Hacker
Danke.
Kann die snapshots dann mit Yast löschen.
Automatisches Löschen hat bisher funktioniert. Das mit dem Snapshot war ein Test, um bei Problemen darauf zurückgreifen zu können.
Bei Rollback werden zwei Kopien des Snapshots erzeugt, eine rollback backup und eine writeable copy, die dann bei einem Neustart geladen wird. Mit dieser Version erfolgt dann der Neustart.

;)
 
Zuletzt bearbeitet:
OP
egweber1

egweber1

Hacker
Noch eine Frage:
Hier ist meine Liste:
Code:
weber@linux:~> sudo snapper list
   # | Typ    | Vorher # | Datum                        | Benutzer | Bereinigen | Beschreibung       | Benutzerdaten
-----+--------+----------+------------------------------+----------+------------+--------------------+--------------
  0  | single |          |                              | root     |            | current            |          
719* | single |          | Mo 17 Apr 2023 21:41:58 CEST | root     |            | writable copy      |          
724  | pre    |          | Mi 19 Apr 2023 11:56:31 CEST | root     | number     | zypp(packagekitd)  | important=no
725  | post   |      724 | Mi 19 Apr 2023 11:58:09 CEST | root     | number     |                    | important=no
726  | pre    |          | Mi 19 Apr 2023 19:34:51 CEST | root     | number     | zypp(ruby.ruby3.2) | important=no
727  | post   |      726 | Mi 19 Apr 2023 19:35:11 CEST | root     | number     |                    | important=no
728  | pre    |          | Mi 19 Apr 2023 22:50:35 CEST | root     | number     | zypp(packagekitd)  | important=yes
729  | post   |      728 | Mi 19 Apr 2023 22:55:08 CEST | root     | number     |                    | important=yes
730  | pre    |          | Do 20 Apr 2023 09:40:39 CEST | root     | number     | zypp(packagekitd)  | important=no
731  | post   |      730 | Do 20 Apr 2023 09:42:57 CEST | root     | number     |                    | important=no
732  | pre    |          | Do 20 Apr 2023 19:32:49 CEST | root     | number     | zypp(ruby.ruby3.2) | important=no
733  | post   |      732 | Do 20 Apr 2023 19:32:52 CEST | root     | number     |                    | important=no
734  | pre    |          | Do 20 Apr 2023 19:36:03 CEST | root     | number     | zypp(ruby.ruby3.2) | important=no
735  | post   |      734 | Do 20 Apr 2023 19:36:06 CEST | root     | number     |                    | important=no
736  | pre    |          | Do 20 Apr 2023 19:37:59 CEST | root     | number     | zypp(packagekitd)  | important=no
737  | post   |      736 | Do 20 Apr 2023 19:38:28 CEST | root     | number     |                    | important=no
738  | pre    |          | Fr 21 Apr 2023 09:28:57 CEST | root     | number     | zypp(packagekitd)  | important=no
739  | post   |      738 | Fr 21 Apr 2023 09:30:38 CEST | root     | number     |                    | important=no
740  | pre    |          | Fr 21 Apr 2023 15:47:11 CEST | root     | number     | zypp(packagekitd)  | important=no
741  | post   |      740 | Fr 21 Apr 2023 15:48:10 CEST | root     | number     |                    | important=no
Wie kann ich diesen snapshot löschen oder umounten?
Bekomme folgendes:
Code:
weber@linux:~> sudo snapper delete 719
Schnappschuss 719 kann nicht gelöscht werden, weil es der derzeit gemountete Schnappschuss ist.
weber@linux:~>
Bleibt auch ohne Wirkung:
Code:
sudo snapper umount 719
Zeigt ihn immer noch als gemounted
Kann ich auch in Yast Dateisystemschnappschuss nicht löschen, Meldung beim Löschen:
Code:
Fehler
Failed to delete snapshot:
org.freedesktop.DBus.Error.Failed; caused by 3 sender=1,106->dest=:1.108
serial=15 reply_serial=13 path=; interface=; member=
error_name=error.illegal_snapshot
 
Zuletzt bearbeitet:

Bequimão

Member
Der Snapshot 719 enthält das Root-Dateisystem, zu sehen am Stern. Löschen wäre fatal.

Zum verifizieren;
Code:
btrfs subvolume get-default /

Code:
mount -l | grep btrfs | sort

Noch ein Hinweis:
Wenn das System nicht mehr bootet. kann man die Aktionen von # snapper rollback mit einem Livesystem und btrfs-Kommandos nachbilden.

- Erstellen eines read-only Snapshots des aktuellen Default-Subvolumes
- Erstellen eines read-write Snapshots des ausgewählten Snapshots
- Einstellen dieses Snapshots als neues Default-Subvolume

Unter openSUSE sollte das Ergebnis bootfähig sein. In anderen Distributionen muss man eventuell in chroot das Initramfs neu erzeugen, Grub neu installieren und grub.cfg neu erzeugen.
 
OP
egweber1

egweber1

Hacker
Neuen snapshot erstellt. Dann mit rollback auf 743 zurückgesetzt.
Code:
weber@linux:~> sudo snapper list
   # | Typ    | Vorher # | Datum                        | Benutzer | Bereinigen | Beschreibung            | Benutzerdaten
-----+--------+----------+------------------------------+----------+------------+-------------------------+--------------
  0  | single |          |                              | root     |            | current                 |          
730  | pre    |          | Do 20 Apr 2023 09:40:39 CEST | root     | number     | zypp(packagekitd)       | important=no
731  | post   |      730 | Do 20 Apr 2023 09:42:57 CEST | root     | number     |                         | important=no
732  | pre    |          | Do 20 Apr 2023 19:32:49 CEST | root     | number     | zypp(ruby.ruby3.2)      | important=no
733  | post   |      732 | Do 20 Apr 2023 19:32:52 CEST | root     | number     |                         | important=no
734  | pre    |          | Do 20 Apr 2023 19:36:03 CEST | root     | number     | zypp(ruby.ruby3.2)      | important=no
735  | post   |      734 | Do 20 Apr 2023 19:36:06 CEST | root     | number     |                         | important=no
736  | pre    |          | Do 20 Apr 2023 19:37:59 CEST | root     | number     | zypp(packagekitd)       | important=no
737  | post   |      736 | Do 20 Apr 2023 19:38:28 CEST | root     | number     |                         | important=no
738  | pre    |          | Fr 21 Apr 2023 09:28:57 CEST | root     | number     | zypp(packagekitd)       | important=no
739  | post   |      738 | Fr 21 Apr 2023 09:30:38 CEST | root     | number     |                         | important=no
740  | pre    |          | Fr 21 Apr 2023 15:47:11 CEST | root     | number     | zypp(packagekitd)       | important=no
741  | post   |      740 | Fr 21 Apr 2023 15:48:10 CEST | root     | number     |                         | important=no
742  | single |          | Fr 21 Apr 2023 22:21:56 CEST | root     | number     | rollback backup of #719 | important=yes
743* | single |          | Fr 21 Apr 2023 22:21:57 CEST | root     |            | writable copy of #741   |          
weber@linux:~>
Code:
weber@linux:~> sudo btrfs subvolume get-default /
[sudo] Passwort für root:
ID 1009 gen 88749 top level 264 path @/.snapshots/743/snapshot
weber@linux:~>
Beim nachsehen dann:
Code:
linux:/.snapshots/743/snapshot # ls -al
insgesamt 16
drwxr-xr-x 1 root root  200  2. Mär 10:05 .
drwxr-xr-x 1 root root   32 21. Apr 22:21 ..
lrwxrwxrwx 1 root root    7 14. Feb 16:50 bin -> usr/bin
dr-xr-xr-x 1 root root  650 15. Apr 09:25 boot
drwxr-xr-x 1 root root    0  3. Jan 20:18 Daten
drwxr-xr-x 1 root root    0  4. Jan 12:21 dev
drwxr-xr-x 1 root root 4610 21. Apr 15:48 etc
drwxr-xr-x 1 root root    0  3. Jan 18:27 home
lrwxrwxrwx 1 root root    7 14. Feb 16:50 lib -> usr/lib
lrwxrwxrwx 1 root root    9 14. Feb 16:50 lib64 -> usr/lib64
dr-xr-xr-x 1 root root    0  3. Jan 18:27 mnt
drwxr-xr-x 1 root root    0 22. Apr 09:13 opt
drwxr-xr-x 1 root root    0  3. Jan 18:27 proc
drwxr-xr-x 1 root root    0 22. Apr 09:13 root
drwxr-xr-x 1 root root    0  3. Jan 18:27 run
lrwxrwxrwx 1 root root    8 14. Feb 16:50 sbin -> usr/sbin
drwxr-xr-x 1 root root    0  3. Jan 20:18 Sicherung
drwxr-xr-x 1 root root    0 22. Apr 09:13 .snapshots
drwxr-xr-x 1 root root    0 22. Apr 09:13 srv
drwxr-xr-x 1 root root    0  3. Jan 18:27 sys
drwxrwxrwt 1 root root    0  4. Jan 12:22 tmp
drwx------ 1 root root   18  2. Mär 10:05 .Trash-0
drwxr-xr-x 1 root root  160 19. Feb 16:41 usr
drwxr-xr-x 1 root root    0 22. Apr 09:13 var
drwxr-xr-x 1 root root    0  3. Jan 20:18 Windows
linux:/.snapshots/743/snapshot #
Somit alles in diesem snapshot. Also nicht löschen und wie gewohnt weiterarbeiten?
Kann ich dann wieder auf gelöst setzen?
 
Zuletzt bearbeitet:
Oben