Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:archlinux_-_minimal_server_installation_-_mit_btrfs_snapper

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

tachtler:archlinux_-_minimal_server_installation_-_mit_btrfs_snapper [2020/09/17 13:39] – [Einen snapshot zu root zurücksetzen] klaustachtler:archlinux_-_minimal_server_installation_-_mit_btrfs_snapper [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== ArchLinux - Minimal Server Installation - mit Btrfs - snapper====== 
-   
-[[tachtler:ArchLinux|{{:tachtler:index:archlinux-48x48.png }}]] Die hier verwendete Installationsmethode ist eine **Installation von einem ISO-Image/USB-Stick**. Es kommt die einzige verfügbare Variante von [[https://www.archlinux.de/|ArchLinux]] in der **Version 2020.01.01** zum Einsatz. 
  
-[[http://snapper.io|snapper]] ist ein Werkzeug zur Verwaltung von Linux-Dateisystem-Snapshots. Abgesehen von der offensichtlichen Erstellung und Löschung von Snapshots, kann [[http://snapper.io|snapper]] Snapshots vergleichen und Unterschiede zwischen Snapshots rückgängig machen. Vereinfacht ausgedrückt ermöglicht dies Root- und Nicht-Root-Benutzern, ältere Versionen von Dateien anzuzeigen und Änderungen rückgängig zu machen. 
- 
-^ Beschreibung      ^ Externer Link                                                                   ^ 
-| Homepage          | [[https://www.archlinux.de/]]                                                   | 
-| Herunterladen     | [[https://www.archlinux.de/download]]                                           | 
-| Dokumentation     | [[https://wiki.archlinux.de/title/Hauptseite]]                                  | 
-| Installation      | [[https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger|https://wiki.archlinux.de/title/Anleitung_für_Einsteiger]]               | 
-| - Btrfs           | [[https://btrfs.wiki.kernel.org]]                                                
- 
-* //Quelle: [[https://www.youtube.com/watch?v=GgGirRYAkF0|YouTube - Channel: unicks.eu - Total Arch Linux | 3.4 Snapper auf die leichte Art!]]// 
- 
-Ab hier werden ''root''-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer ''root'' zu werden, geben Sie bitte nachfolgenden Befehl ein: 
-<code> 
-$ su - 
-Password:  
-</code> 
- 
-===== Voraussetzungen ===== 
- 
-Für die nachfolgende Installation wird vorausgesetzt,  
-  - dass eine lauffähige Version von [[https://www.archlinux.de/|ArchLinux]] mit dem **Dateisystem: Btrfs** vorhanden ist 
-  - Das [[https://aur.archlinux.org/?setlang=de|ArchLinux User-Community Repository (AUR)]] bereits eingebunden ist 
-Eine der unter nachfolgenden Links beschriebenen Installationen von [[https://www.archlinux.de/|ArchLinux]] wird hier als Mindestvoraussetzung angenommen: 
-  * [[tachtler:archlinux_-_minimal_server_installation_-_mit_btrfs|ArchLinux - Minimal Server Installation - mit Btrfs]] 
-Die unter nachfolgendem Link beschriebene Installation von [[https://aur.archlinux.org/?setlang=de|ArchLinux User-Community Repository (AUR)]] wir hier ebenfalls vorausgesetzt: 
-  * [[tachtler:archlinux_-_arch_user_repository|ArchLinux - Arch User Repository]] 
- 
-===== Installation: snapper ===== 
- 
-Zum erstellen von **Snapshots** ist die Nutzung des Programms [[http://snapper.io|snapper]] erforderlich. 
- 
-Mit nachfolgendem Befehl, kann [[http://snapper.io|snapper]] installiert werden: 
-<code> 
-[root@archlinux ~]# pacman -S snapper 
-resolving dependencies... 
-looking for conflicting packages... 
- 
-Packages (2) boost-libs-1.72.0-2  snapper-0.8.12-1 
- 
-Total Download Size:    3.28 MiB 
-Total Installed Size:  13.42 MiB 
- 
-:: Proceed with installation? [Y/n] Y 
-:: Retrieving packages... 
- boost-libs-1.72....     2.6 MiB  1457 KiB/s 00:02 [######################] 100% 
- snapper-0.8.12-1...   734.4 KiB  1469 KiB/s 00:01 [######################] 100% 
-(2/2) checking keys in keyring                     [######################] 100% 
-(2/2) checking package integrity                   [######################] 100% 
-(2/2) loading package files                        [######################] 100% 
-(2/2) checking for file conflicts                  [######################] 100% 
-(2/2) checking available disk space                [######################] 100% 
-:: Processing package changes... 
-(1/2) installing boost-libs                        [######################] 100% 
-Optional dependencies for boost-libs 
-    openmpi: for mpi support 
-(2/2) installing snapper                           [######################] 100% 
-Optional dependencies for snapper 
-    pam: pam_snapper [installed] 
-:: Running post-transaction hooks... 
-(1/3) Reloading system manager configuration... 
-(2/3) Arming ConditionNeedsUpdate... 
-(3/3) Reloading system bus configuration... 
-</code> 
- 
-===== Konfiguration: snapper ===== 
- 
-==== snapper: root ==== 
- 
-Nach der erfolgreichen Installation von [[http://snapper.io|snapper]], soll dieser so konfiguriert werden, dass vom **Btrfs: Subvolume - ''/'' (root)** - **Snapshots** erstellt werden können. 
- 
-Dazu ist die Anlage einer Konfiguration für das **Btrfs: Subvolume - ''/'' (root)** erforderlich, welche mit nachfolgendem Befehl erzeugt werden kann: 
-<code> 
-[root@archlinux ~]# snapper -c root create-config / 
-</code> 
- 
-Die so neu erstellte Konfigurationsdatei ist in nachfolgendem Verzeichnis mit nachfolgendem Namen ''root'' zu finden: 
-  * ''/etc/snapper/configs/root'' 
- 
-Mit der Erstellung der Konfiguration für das **Btrfs: Subvolume - ''/'' (root)**, wird auch ein **Btrfs: __Unter__-Subvolume**, mit der Bezeichnung 
-  * ''.snapshots'' 
-erstellt, wie nachfolgender Befehl zeigt: 
-<code> 
-[root@archlinux ~]# btrfs subvolume list / 
-ID 257 gen 86 top level 5 path root 
-ID 258 gen 77 top level 5 path tmp 
-ID 259 gen 87 top level 5 path var_log 
-ID 260 gen 10 top level 5 path snapshots 
-ID 263 gen 25 top level 257 path var/lib/portables 
-ID 264 gen 26 top level 257 path var/lib/machines 
-ID 265 gen 85 top level 257 path .snapshots 
-</code> 
- 
-:!: **HINWEIS** - **Das Btrfs: __Unter__-Subvolume - ''.snapshots'' von ''root'' kann __NICHT__ verwendet werden!** 
- 
-**__Erklärung__** 
- 
-**Da bei einem möglichen Zurücksetzen auf einen vorherigen Snapshot, dann die Snapshots darin ebenfalls nicht mehr vorhanden wären! - Dafür wurde ein eigenes Btrfs: Subvolume ''/.snapshots'' angelegt. Siehe auch den nachfolgenden internen Link** 
-  * **[[tachtler:archlinux_-_minimal_server_installation_-_mit_btrfs#partitionierungfdisk|ArchLinux - Minimal Server Installation - mit Btrfs - Partitionierung: fdisk]]** 
- 
-Um das automatisch neu erstellte  **Btrfs: __Unter__-Subvolume - ''.snapshots''** zu löschen, kann nachfolgender Befehl verwendet werden: 
-<code> 
-[root@archlinux ~]# btrfs subvolume delete /.snapshots/ 
-Delete subvolume (no-commit): '//.snapshots' 
-</code> 
- 
-Zur Überprüfung, ob das Entfernen auch korrekt funktioniert hat, kann nachfolgender Befehl verwendet werden: 
-<code> 
-[root@archlinux ~]# btrfs subvolume list / 
-ID 257 gen 88 top level 5 path root 
-ID 258 gen 77 top level 5 path tmp 
-ID 259 gen 87 top level 5 path var_log 
-ID 260 gen 10 top level 5 path snapshots 
-ID 263 gen 25 top level 257 path var/lib/portables 
-ID 264 gen 26 top level 257 path var/lib/machines 
-</code> 
- 
-Anschließend legen wir im Wurzelverzeichnis ein neues Verzeichnis mit dem Namen  
-  * **''/.snapshots''** 
-mit nachfolgendem Befehl an: 
-<code> 
-# [root@archlinux ~]# mkdir /.snapshots 
-</code> 
- 
-Jetzt muss nur noch die Konfigurationsdatei  
-  * ''/etc/fstab'' 
-wie folgt erweitert werden, so dass das neue Verzeichnis ''/.snapshots'' auch auf die mit der ursprünglichen Installation angelegtes **Btrfs: Subvolume ''/.snapshots''** (welches **__KEIN__ Btrfs: __Unter__-Subvolume** ist), automatisch bei jedem Start mit ge**mount**tet wird: 
-<code> 
-[root@archlinux ~]# vim /etc/fstab 
-</code> 
-<code ini> 
-# /dev/vda1 LABEL=ROOT 
-#UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 /          btrfs      rw,relatime,compress=lzo,space_cache=v2,subvolid=256,subvol=/root,subvol=root 0 0 
- 
-# /dev/vda1 LABEL=ROOT 
-UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 /tmp      btrfs      rw,relatime,compress=lzo,space_cache=v2,subvol=tmp 0 0 
- 
-# /dev/vda1 LABEL=ROOT 
-UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 /var/log  btrfs      rw,relatime,compress=lzo,space_cache=v2,subvol=var_log 0 0 
- 
-# /dev/vda1 LABEL=ROOT 
-UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 /btrfs    btrfs      rw,relatime,compress=lzo,space_cache=v2,subvolid=5 0 0 
- 
-# /dev/vda1 LABEL=ROOT 
-UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 /.snapshots btrfs      rw,relatime,compress=lzo,space_cache=v2,subvol=snapshots 0 0 
- 
-# /dev/vda2 LABEL=SWAP 
-UUID=a3a1f6b2-6fbb-435f-8d71-b90f00701fe1 none      swap      defaults  0 0 
-</code> 
-** *//Der __vor__letzte Eintrag ist hinzugekommen!//** 
- 
-**__Erklärung__** 
- 
-  * <code ini># /dev/vda1 LABEL=ROOT 
-UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 /.snapshots btrfs      rw,relatime,compress=lzo,space_cache=v2,subvol=snapshots 0 0</code> 
- 
-Hinzufügen eines **Mount**-Points (Einhängepunktes im Dateisystem) für das **Btrfs: Subvolume** - ''snapshots'' auf das Verzeichnis ''/.snapshots''. 
- 
-Um den in der Konfigurationsdatei ''/etc/fstab'' neu hinzugefügten Eintrag per Hand zu aktivieren, was sonst ja mit dem Starten des Betriebssystems erfolgen wird, kann nachfolgender Befehl verwendet werden: 
-<code> 
-[root@archlinux ~]# mount /.snapshots/ 
-</code>  
- 
-Ob das **mount**en von Hand erfolgreich war, kann mit nachfolgendem Befehl überprüft werden: 
-<code> 
-[root@archlinux ~]# mount | grep /dev/vda 
-/dev/vda1 on / type btrfs (rw,relatime,space_cache=v2,subvolid=256,subvol=/root) 
-/dev/vda1 on /btrfs type btrfs (rw,relatime,space_cache=v2,subvolid=5,subvol=/) 
-/dev/vda1 on /tmp type btrfs (rw,relatime,space_cache=v2,subvolid=258,subvol=/tmp) 
-/dev/vda1 on /var/log type btrfs (rw,relatime,space_cache=v2,subvolid=259,subvol=/var_log) 
-/dev/vda1 on /.snapshots type btrfs (rw,relatime,space_cache=v2,subvolid=260,subvol=/snapshots) 
-</code> 
- 
-Um sicher zu gehen, das [[http://snapper.io|snapper]] auch weiterhin korrekt funktioniert, kann nachfolgender Befehl verwendet werden, welche den aktuellen Status aller **Snapshots** auflistet: 
-<code> 
-[root@archlinux ~]# snapper list 
- # | Type   | Pre # | Date | User | Cleanup | Description | Userdata 
----+--------+-------+------+------+---------+-------------+--------- 
-0  | single |            | root |         | current     | 
-</code> 
- 
-==== /etc/snapper/configs/root ==== 
- 
-Nachfolgende Einstellungen passen das Verhalten von [[http://snapper.io|snapper]] an. 
-  - Es sollen **__KEINE__ stündlichen Snapshots** durchgeführt werden. 
-  - Die **Anzahl von aufzubewahrenden Snapshots** soll begrenzt werden. 
-  - Die **Anzahl der als __wichtig__ gekennzeichneten Snapshots** soll begrenzt werden. 
-<code> 
-[root@archlinux ~]# vim /etc/snapper/configs/root 
-</code> 
- 
-<code ini> 
- 
-# subvolume to snapshot 
-SUBVOLUME="/" 
- 
-# filesystem type 
-FSTYPE="btrfs" 
- 
- 
-# btrfs qgroup for space aware cleanup algorithms 
-QGROUP="" 
- 
- 
-# fraction of the filesystems space the snapshots may use 
-SPACE_LIMIT="0.5" 
- 
-# fraction of the filesystems space that should be free 
-FREE_LIMIT="0.2" 
- 
- 
-# users and groups allowed to work with config 
-ALLOW_USERS="" 
-ALLOW_GROUPS="" 
- 
-# sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots 
-# directory 
-SYNC_ACL="no" 
- 
- 
-# start comparing pre- and post-snapshot in background after creating 
-# post-snapshot 
-BACKGROUND_COMPARISON="yes" 
- 
- 
-# run daily number cleanup 
-NUMBER_CLEANUP="yes" 
- 
-# limit for number cleanup 
-# Tachtler 
-# default: NUMBER_MIN_AGE="1800" 
-NUMBER_MIN_AGE="0" 
-# Tachtler 
-# default: NUMBER_LIMIT="50" 
-NUMBER_LIMIT="10" 
-# Tachtler 
-# default: NUMBER_LIMIT_IMPORTANT="10" 
-NUMBER_LIMIT_IMPORTANT="3" 
- 
- 
-# create hourly snapshots 
-# Tachtler 
-# default: TIMELINE_CREATE="yes" 
-TIMELINE_CREATE="no" 
- 
-# cleanup hourly snapshots after some time 
-TIMELINE_CLEANUP="yes" 
- 
-# limits for timeline cleanup 
-TIMELINE_MIN_AGE="1800" 
-TIMELINE_LIMIT_HOURLY="10" 
-TIMELINE_LIMIT_DAILY="10" 
-TIMELINE_LIMIT_WEEKLY="0" 
-TIMELINE_LIMIT_MONTHLY="10" 
-TIMELINE_LIMIT_YEARLY="10" 
- 
- 
-# cleanup empty pre-post-pairs 
-EMPTY_PRE_POST_CLEANUP="yes" 
- 
-# limits for empty pre-post-pair cleanup 
-EMPTY_PRE_POST_MIN_AGE="1800" 
-</code> 
- 
-**__Erklärungen__**: 
- 
-  * <code ini># run daily number cleanup 
-NUMBER_CLEANUP="yes"</code> 
- 
-Falls nicht bereits auf **"yes"** gesetzt, bewrikt dies, das ab einer gewissen Anzahl ältere **Snaphots** wieder gelöscht werden 
- 
-  * <code ini># limit for number cleanup 
-# Tachtler 
-# default: NUMBER_MIN_AGE="1800" 
-NUMBER_MIN_AGE="0"</code> 
- 
-Bewrikt, das das Alter eines **Snapshats** ignoriert und nur die Anzahl entscheinden ist, da sonst ggf. unbeabsichtigt automatisch evtl. ein **Snapshot** gelöscht wird. 
- 
-  * <code ini># Tachtler 
-# default: NUMBER_LIMIT="50" 
-NUMBER_LIMIT="10"</code>  
- 
-Anzahl der zu speichernden **Snapshots**. 
- 
-  * <code ini># Tachtler 
-# default: NUMBER_LIMIT_IMPORTANT="10" 
-NUMBER_LIMIT_IMPORTANT="3"</code> 
- 
-Anzahl der zu speichernden - **__wichtigen__** - **Snapshots**. 
- 
-  * <code ini># create hourly snapshots 
-# Tachtler 
-# default: TIMELINE_CREATE="yes" 
-TIMELINE_CREATE="no"</code> 
- 
-Verhindert, das **__jede Stunde__** automatisch ein **Snapshot** erstellt wird. 
- 
-==== /usr/lib/systemd/system/snapper-cleanup.timer ==== 
- 
-Damit jedoch **stündlich** durch den **systemd - timer** ältere, anhand der Anzahl der vorhandenen **Snapshots** automatishc auch gelöscht werden können, muss mit nachfolgendem Befehl der mit der Installation mit gekommene Timer 
-  * ''/usr/lib/systemd/system/snapper-cleanup.timer'' 
-aktiviert werden: 
-<code> 
-[root@archlinux /]# systemctl enable --now snapper-cleanup.timer 
-Created symlink /etc/systemd/system/timers.target.wants/snapper-cleanup.timer → /usr/lib/systemd/system/snapper-cleanup.timer. 
-</code> 
-* //Die Angabe des Parameters ''--now'' bewirkt die __sofortige Ausführung!__// 
- 
-Ob dies korrekt funktioniert hat, kann mit nachfolgendem Befehl überprüft werden: 
-<code> 
-# systemctl list-timers 
-NEXT                         LEFT     LAST                         PASSED       UNIT                         ACTIVATES                      
-Fri 2020-09-11 00:00:00 CEST 8h left  n/a                          n/a          man-db.timer                 man-db.service                 
-Fri 2020-09-11 00:00:00 CEST 8h left  Thu 2020-09-10 13:06:38 CEST 1h 55min ago shadow.timer                 shadow.service                 
-Fri 2020-09-11 13:22:13 CEST 22h left Thu 2020-09-10 13:22:13 CEST 1h 39min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service 
-Fri 2020-09-11 15:00:54 CEST 23h left Thu 2020-09-10 15:00:54 CEST 1min 13s ago snapper-cleanup.timer        snapper-cleanup.service        
- 
-4 timers listed. 
-Pass --all to see loaded but inactive timers, too. 
-</code> 
- 
-===== Installation: grub-btrfs ===== 
- 
-Damit aus dem mit [[http://snapper.io|snapper]] erstellten **Snapshots** auch **__automatisch__** - **Boot-Menü-Einträge** für [[https://www.gnu.org/software/grub/|GRUB]] erstellt werden, ist die Installation des Programms 
-  * [[https://github.com/Antynea/grub-btrfs|grub-btrfs]] 
-erforderlich. 
- 
-Mit nachfolgendem Befehl, kann [[http://snapper.io|snapper]] installiert werden: 
-<code> 
-[root@archlinux ~]# pacman -S grub-btrfs 
-resolving dependencies... 
-looking for conflicting packages... 
- 
-Packages (1) grub-btrfs-4.5-1 
- 
-Total Download Size:   0.02 MiB 
-Total Installed Size:  0.06 MiB 
- 
-:: Proceed with installation? [Y/n] Y 
-:: Retrieving packages... 
- grub-btrfs-4.5-1-any               20.6 KiB  1029 KiB/s 00:00 [###################################] 100% 
-(1/1) checking keys in keyring                                 [###################################] 100% 
-(1/1) checking package integrity                               [###################################] 100% 
-(1/1) loading package files                                    [###################################] 100% 
-(1/1) checking for file conflicts                              [###################################] 100% 
-(1/1) checking available disk space                            [###################################] 100% 
-:: Processing package changes... 
-(1/1) installing grub-btrfs                                    [###################################] 100% 
-Optional dependencies for grub-btrfs 
-    snapper: Snapper support [installed] 
-:: Running post-transaction hooks... 
-(1/2) Reloading system manager configuration... 
-(2/2) Arming ConditionNeedsUpdate... 
-</code> 
- 
-Die Konfiguration für das Programm [[https://github.com/Antynea/grub-btrfs|grub-btrfs]] ist in nachfolgendem Verzeichnis mit nachfolgendem Namen zu finden: 
-  * ''/etc/grub.d/41_snapshots-btrfs'' 
- 
-:!: **HINWEIS** - **Anpassungen müssen hier __keine__ erfolgen!** 
- 
-===== Installation: snap-pac ===== 
- 
-Hierbei handelt es sich um eine Reihe von ''pacman''-"Hooks" und ein **Skript**, das automatisch bewirkt, dass [[http://snapper.io|snapper]] einen **Snapshot** **__vor__ und __nach__** ''pacman''-Transaktionen durchführen.  
- 
-Dies bietet eine einfache Möglichkeit, Änderungen an einem System nach einer ''pacman''-Transaktion **rückgängig** zu machen. 
- 
-Mit nachfolgendem Befehl, kann [[https://github.com/wesbarnett/snap-pac|snap-pac]] installiert werden: 
-<code> 
-[root@archlinux ~]# pacman -S snap-pac 
-resolving dependencies... 
-looking for conflicting packages... 
- 
-Packages (1) snap-pac-2.3.1-2 
- 
-Total Download Size:   0.02 MiB 
-Total Installed Size:  0.03 MiB 
- 
-:: Proceed with installation? [Y/n] Y 
-:: Retrieving packages... 
- snap-pac-2.3.1-2-any   15.5 KiB  0.00   B/s 00:00 [###################] 100% 
-(1/1) checking keys in keyring                     [###################] 100% 
-(1/1) checking package integrity                   [###################] 100% 
-(1/1) loading package files                        [###################] 100% 
-(1/1) checking for file conflicts                  [###################] 100% 
-(1/1) checking available disk space                [###################] 100% 
-:: Processing package changes... 
-(1/1) installing snap-pac                          [###################] 100% 
-:: Running post-transaction hooks... 
-(1/3) Arming ConditionNeedsUpdate... 
-(2/3) Performing snapper post snapshots for the following configurations... 
-(3/3) You are installing snap-pac, so no post transaction snapshots will be taken. 
-</code> 
- 
-===== Installation: snap-pac-grub ===== 
- 
-''pacman''-Hook zum Aktualisieren von [[https://www.gnu.org/software/grub/|GRUB]]-Einträgen für ''grub-btrfs'' nach ''snap-pac''-erstellten **Snapshots**. 
- 
-Bavor mit der Installation begonnen werden kann, muss der **öffentliche PGP-Schlüssel** des Erstellers zuvor importiert werden. Dies kann mit nachfolgendem Befehl durchgeführt werden: 
-<code> 
-[root@archlinux ~]# gpg --keyserver keys.openpgp.org --recv-keys EB4F9E5A60D32232BB52150C12C87A28FEAC6B20 
-gpg: /root/.gnupg/trustdb.gpg: trustdb created 
-gpg: key 12C87A28FEAC6B20: public key "Maxim Baz <pgp@maximbaz.com>" imported 
-gpg: Total number processed: 1 
-gpg:               imported: 1 
-</code> 
- 
-Falls der Shclüssel __nicht__ auf einem "Keyserver" gefunden werden kann, hier der **öffentliche**-Schlüssel zum herunterladen: 
-<code> 
------BEGIN PGP PUBLIC KEY BLOCK----- 
- 
-xsFNBFm0eMoBEAC3SoCJFZrwfCQdalSM/8YeLc78IPPkkup95Vrk1NvTIr/f8ifG 
-G4zbgQEGTgLx33JRZ0ZPUsppcvrdka4VnhrjM3Lmag8QfHrIF+2Z6zo0h3TIk9FL 
-RVqBpO3qkojAIVLc4Ar6cq2t8u2rGgppsVtkAqmA4V8QmBU92yGiDVKerPk0NAIA 
-/N5vws1yl8TjNTjd98qIlLbEpgvVOmwOieKSHVkz5uybwydlzyqB477wcqFDrvjx 
-4kY7esatfjFQI6/aNkJqJvowa+RR1LZsog7Fm0NKEpUvbQz+bfxY4I6CVkKzheyU 
-R6DzUBPvh/qC/a82SanKpBOLSi2rqV81Kuvl5k3Qaed/EmIrv9qTQLR8DzHrDlkL 
-iMJz5bqC2x9UVNTSyTtIBO8ZqjQ/9k/ZS7r8l9ZizkREYwuO1X966GIo4dY+D8aK 
-yfM3qZGNU0F9u2WnzlGO0BAFi8gzU4QoGaAixUmfCEyWb9v3F2r6fTCFq5yoP6QG 
-nKSeCWF4SinMLe0yaqCkWHd2+ws/CNVL1mfbu4G9J+OI89/rLhr75c7gm2bWa5I/ 
-3geNp7GNA0J5a4yd3E+xvY65Gbcl9f400LiWQ7CygwE8Cgg5qxTm4ER53FOTIOZL 
-3c9N2RXI5L0ryXYO9UGr83BSAik0guNupwEi4GsmmbwL5XPHO6B62HEcMwARAQAB 
-zRxNYXhpbSBCYXogPHBncEBtYXhpbWJhei5jb20+wsGRBBMBCgA7AhsDBQsJCAcD 
-BRUKCQgLBRYCAwEAAh4BAheAFiEE60+eWmDTIjK7UhUMEsh6KP6sayAFAlntK2oC 
-GQEACgkQEsh6KP6sayAf3xAAkWarCJndesbZB8fmUsU9NnK0VBr1lGUu4S2CoNT8 
-QJc5vJnhyM23k+ygrZ8U4hlbM4CWCee0Iy19EN62bUnw5EmuzOjMYtHx7WYw+a+i 
-dLA9r3Hc47gjSKqVPx0IAze+V/D5b5sOrn17iO3Mynz/fbdj2OG0394+vPCPtYtT 
-enARz/3o4lWa+RU5r8udDrnxZQNk7FAMunP2c8ke4J3/IbRcwVwS64zhTiVlIH76 
-iWeNC6ysWCfIhws8yFpioX9bleGCv606BzR0F6BVtUj0ZtaBqdTZ/DueBzQpJpqY 
-EF3rU0GyPyU+v1vjNU/qFUXQIrMvnKRX3/rL85NNDvs9f+DK6LeUxLTpIw1tMVCI 
-HKOFYAIE4V4KoJP3njHj3S8QOO8KY51KrCP4t387WssNS3yzgLArY0Mz+gWimgBw 
-1DdAx4O5OBAMiBI5i/y+BMinjAMjXJjjIGPTk0lBfFmmNIjmZt7os5VuU73uKeRe 
-XK5JZZ0H4DLtei1CPy3oRjQ28z687pE30SoL6kjRRUQzRvZM/0KEVJo1mJqinleP 
-Q/N3ZKYnFaUNvIyjTxJbyCTJCtUe/gsFq40L3Hv7K4OhyLH881ZwT6KPZVtBNhVG 
-iX7dUJeNIUTMg1r+IpVewScaOIOlpkbjZrwpqT5rxwQqxAriJ3XxlenUh9T7FXIl 
-8oTCwY4EEwEKADgWIQTrT55aYNMiMrtSFQwSyHoo/qxrIAUCWbR4ygIbAwULCQgH 
-AwUVCgkICwUWAgMBAAIeAQIXgAAKCRASyHoo/qxrIF79EACoE9OaSi3zVv0Vy5x2 
-2db1c96oHEtOlSBuhx+bqeZWzt26aAJdMwRVH4MtvRLQk1KTXmvwM+/WnLhLn7ST 
-bjTpN2QfRRpoJlWzaFIVVunkUe/6P2NY1LSYzlxJn/Vc5Dnuy8Mg9x8oP0UyLEoH 
-fzewxWVqbd2wmesUUhGavbtrTYP26ARuRgchWs757aUiwXQ1S1BMLkIm4J+zr8iM 
-kOU5P0hteHHJtIMFesN/+GjMNz4XGRpnHOU+w1CKmV2TwIkmnoEyEoG7n0Qp6gcG 
-ZNRKkZYOvNxagM6axzWOUxR2W1DM7LsYOYKsbRAetrs+ZQHwqXpni0WyZTRkuRJU 
-lF5gljXa+CToy0tkJHe+mDJesxJOgvHa7nwNFf9vi+8GDkRQmtoQLsR6cXFQ8i5C 
-kNSTCj0WNiwcUPm5zSUamoQYvWAISGVhRkkJcp5vUJ2IVsJ35jsXuUzEAGY9lFM9 
-VtC/eIODdimSt8M6tzrMGXcpKbmOKvScAxKLRrRHedEMVxY40COegK4ezalZQC5r 
-x698WOZkW9EdG0OIonRKOHh7pHymjgOni7cPbmj5KOQewy2onXoTJUmmEOigt+0m 
-E01vKEMG5BWLSn7l/nqCdPsZj2VGTtSQTL06njyKlXOmXNZg4QpGwo6BCKuRsnCV 
-dx8SNS8KZ1xpEZNDEkN5UeAN+M7BTQRZtHkOARAAvEqI/jFGYjqiX3u9itNZSFPf 
-W9FxRinWr4+gJB7GxrEdiV3TVKElUvk71eA8ztrseBB3k+0FCNME8CwHE7fzAl0W 
-fGh1U+VRzfUYy0ZwyJFDkUcm7xJqSlHdtpwl6QnyFJ2ZBxUSCjqOWihrMYZJqjE1 
-jW9vrUuTz9AG9DWhOjJj8ChiHwe1C3Ud/7sZVSkFrflrukGk8pFLQpj+SVCiD8F9 
-zlzyrAfMgiaS6+/zOlyYScyZD58vLM3136C1uGyK8e0pRY31+NJtP9R3+P5xIAOd 
-8ZjWR5whpKm+agutf+WRm9Tg5Z4z35AnpF0w1ld1OfXy5XWdJ4Sfi0fbBgOyG9bB 
-Icj0Y/ki0XuSc/NUtXL8CYyuwbXSG/sSEUjeli9CADs1cdJkLCL8IaoPNccJ4KK8 
-yNd1YScc7xDISptkFNiwWcJBav2C+A3zyFfE9AOIVpARfNaMS94knbo/i/AbNLtw 
-rmpnYiUP3NQsfq77KNVsyhqkTM2AGZfoy9XR9DreEaXE6oVIbbPnxPevUGEwDQMJ 
-J4JewoM+H0VeKQYMKnzLJqUD3gh5U324mF0NpwGtrsuNLR0mH9DpWuKxSdv9LCcF 
-RAFvgd8vDnicwthtnoQ1I2LRMhbQkdanJBJC7Uu5gYf3AAtgLe/TK8JkPuWY9n8v 
-qiGNmZ7lWwxBOXF72i0AEQEAAcLBdgQYAQoAIBYhBOtPnlpg0yIyu1IVDBLIeij+ 
-rGsgBQJZtHkOAhsMAAoJEBLIeij+rGsg0sMQAKgp6J8YcG3jS/Zutvvfnj3x0hXt 
-RzpWqCpnAQpvMStCFNdEtwTJVDnji4Mbc/A3SwC5LbXd8Q4qAueYxvWasScY0NA3 
-AfnWvxf85qaxG8L6VEEwvXVyh45OcMBYi//NdeuVcqQxgLDPx3YFfJqte/g5BPkK 
-0wKntKw7mDsQSqS3AqB/klqHienlAEUorVt/c9ig9kLgBlWtgcO/PLXy+HBCsNAd 
-P15g4n6MCr/ajV7ajT7EXFRxXyGQyxa5wjpA2O/ApJAwZbffFmgvcanIIN/qEY8T 
-/jrOaOY4cA1rEPLpWSPCIralJXOdO+Ix3TabuW0z2kJtJx5vjVwoETnh8sEWuYN6 
-tkYJ9zsrhF5jX2s3Sztc+nTNFi/9bewporymwPQI0ZgSf4S5eLhoOiPJm0D48h6m 
-jbonBciYjOPDKTm3ORsfVF2OCfQapu7RIN7FBtYeUCWVRUGUdBrI+5lm0Aq7ZFRV 
-aElx7hYMSyntS0U5GjUQ6IPtMgOjPsEfpmf1IRC3DLFsdsanJg9s9MtN8rn1UP5q 
-5QwkgiyCkJ8b07ZByzSjH7KF94XSWodVP7008s2VuATgZef4bvc3kjJ/henTPxyh 
-L0Ib8G0hCuyZCOn1PPulDjZbchYBgzRWBPU540DLVjODY77ZxwKjB6NFx93C55I+ 
-eQl6SfWqrO0UoIg/zsFNBFm0ePgBEADMPRUxFNZUQH8RTHum2lYeYIf0w8HbnAE2 
-Cdt47GYMYBVxlNCzWTXMwD4DvbCA6JgG/gi7DNKiXflbXh6w25T79/MGAVHNgAbh 
-pCwYPs3sdcEaARd51W3t3OkFlzlBfLKrQb5JjCIOMa04cwF676yA+12CAlPIRfxx 
-lJ0wa/k8riWMr4OEWXvh02ryuyTvPWyCVDj5y7j8J18Utdr6iikuTyp+MQRVrLSn 
-fhjieD/NGUplm68CmT9R+7De2i5f2KJxxrx8pKj8tY4Fg4+CeG3mKcy/mWXEcljQ 
-crTTE3mCHXppxc9J7+5whSCaSQWKuPba8cxeXdm+zENs1IZBLaIPjWtd8Bm1nOav 
-jZ3wWsR4LJnIvoN1XVOW+nVKzIK1dd0Dwgn8uqE2e1N1Px9FfSAkj5QV7A6GfeRe 
-9FNEswOgMYzFJjFhey+2EF3KKqgFnZwLGjEdsIFXHxWzFzKUzQmcQk+JCzjFvz4D 
-pHTW9KdvW5oasUeeVSRDLhCE3BW4OPQDJ2AxYmHK6YogmU/Zr7GjKqWUKYXI572y 
-oUYzHPOQEaEWuxeYCqWIqCsgb6jdMOD979qH9UDJWrwxrnw5JBvphsJFMf49OoDd 
-vrQ3hI+nWB6ckUIo07nhNLM6MYG0lvXyeIss5xq956Wh6tMYOtLkxoD55DJhIOsY 
-q0o+/iT+lwARAQABwsOsBBgBCgAgFiEE60+eWmDTIjK7UhUMEsh6KP6sayAFAlm0 
-ePgCGwICQAkQEsh6KP6sayDBdCAEGQEKAB0WIQSAU+uIh5poy0hz0ysBH9xS2oOT 
-NQUCWbR4+AAKCRABH9xS2oOTNXh2D/4nJP2zpnnoz3MVqAYvlLZeKThL2L/K+m9S 
-7lzvV4OMWWgBJpztyQA7vuuNaN6C0oARRr8Gce6WVe06jWYevB2fcy23fB4IwrxJ 
-ZZxWfSLZH2jFx7XH62bT5ds9uPRlaFSZ1GhrmmILUPaYOsYfyKUnmqPhiya1B56L 
-ZSgUsi3bfxBAI2aalymcfscep/cUwi7wnpulcMszbdX3kJ92OGYEDsiYryrOLdvP 
-XyoOerJsSQjxUh4Ksdl8dPUUO/0SH0NLpT1PAJ+qmaW7WfM0p6TU/sQ0Qgi4IIp1 
-ECkRS96+p92AIdHh1Ll1jcp1bvcaRODVH9mHsniv2M4XntgaSN9p4GM4dFi6rGz/ 
-HuaoBON5Ljenh1vvcOhXLWmAAr7WYDmftc362FyD7fLu9NoTLqDyl3ZVRBwVQGcp 
-8yIVU6Zk1li2XgloxPJA+qEEznEbMh/94Q70BCVh4ndBOr+jx0VpzH70/PkR+Q1o 
-aULAx1qolcsP3lB/Tq7sAM5iZLOn2yzxFReRclh1hM5jvQ4W8IDsrKSAOyEBFYNY 
-0HkdOQnb4M7k/uZjL68X7SubA/lmW0RD6T/SyWxg+X2lxSwLu6NZqxiWzsOX2bua 
-+uglJPHtooTtulCLpj7k8OpPjQCvyb+6j9/TrV9KrpYH9EudiqqpYjr7Dg+uH0sh 
-PtMTsnfS6r9pD/9Yw1Jp1wSdLDhDjsYGL1VZKSAW7gGlRfz/g9kYWiLDuc/ZsMnj 
-WhhscV3y48YPIufGmFLyqJ8DJHaJ4rrWByOuFsORglSJ09SC40isaZnlGIZDrEsD 
-ihKA8BI5ucR/bIwucEifhAYen6gFCAdycg1kKhwHObUCuVnWgyWI3zmOMz7ZiP0I 
-8Uj80qnEl3l/hp4MFBU8uM8H5b8hD/ou0tZCuNabKYjZKVGjXBPMbRd02NB4g1WN 
-xwr/beKz5AKRVqRU/UHGD5G3z5yzKxXMWdCNYSL2/ILL0HNgaMbYr5mGjAX4I5Mv 
-Meg5auhlk3k9quYOfeNxA+xGlVGg4/yHgI8sRu+V3n18UVStyYpaC1nkLElVUzWv 
-7NYBX2INOrBwgB5mbT+8ANkJ/APJp2D5saOI+wPOV4y//fvLCFkVTH+kdw1AZJYI 
-mYIG9zFce873ZDHPr+ukeNtAH+iAPwrs1hC1KjuLczPttrtlHOoJZlL4oYE7Q2vB 
-WazZmXkwcVZMogYMjVCYSKX9Q1GWbUAWxKoq0DwKm4nX7pCONHBmJ7rKsBuBU2b4 
-qmLQOdE5PbX6V0pb20uSWr3cc44u74wXmGaAHChkAmQZ+zLyzjt7I6Dt4f/58q1k 
-ChtWnCP7cONOIgcwPZ+4P7sTJTxgqleryKmSbFTYVMTpR6YT4UUmwAUPdM7BTQRZ 
-tHk5ARAA2lAm6kppc+qreW0Ybbub1vv49EC94UCTR+NaX093O8iOBaFVXzOnXRW7 
-HVsymUaEtejq69crxKJFhhPNKCK7VfBFatFEFIVRYOuyw/cW9DJkaXjhh4841+eQ 
-iog1MF2PzTIT68I2JoigCtGHwA3eqDjzSnyiZwFSB0ZDtWX3jkuqXWILseztHLia 
-9RH1P5qeNuPcqwPXzOH4m1bbibP2j0p/W8ZNFavHGHQfI3WqBtiMSv/OJMQmdimJ 
-VjXBSqy3iR1/CYlnKivBgYfmeqfys5i3nP9gs/Yc2Elx6dqAP2n8ZhZva2osBRZo 
-LPO+yTtqpLva3uFomt5NN8ryy/0fstPHCpY1yqePhbd/3CCLRFj/0c3ZtcY3Q++B 
-0XIhV8GQAaGLO4I7dIEdITkO+ozu2P13mjdD14qJ6Ffq1CGyP7MvQxlFf8D+vrhi 
-4iv1Tv3ywlTcd2H8m/+9rCNxHEno6vgOqIPHBlp9TSbNyZ8R5yWr2+CyiYjnuwIC 
-zvxfDV6+vP9hSvphyzf7ypEZNMzBcT84IvWXi6K/OgZJq/XAAGF5+xoHviQhzNub 
-GW+GpH521iDRDvQbYKOusgntfuTpiL8rmB3I3MUhXWw4JBiqk+zFB6xS564STTR4 
-o1GfXTZ4OrmAt2gYzytc4X8c+wmmAkbv1QfXs1oLCUQ9NIj/Js8AEQEAAcLBdgQY 
-AQoAIBYhBOtPnlpg0yIyu1IVDBLIeij+rGsgBQJZtHk5AhsgAAoJEBLIeij+rGsg 
-lakQAK7YYeNSdTGRyGu7ROBrW+BeSujS+YAlcLt7sX207ZeYIfw26g6xfM71sJPR 
-uuoxbHxdqimb3zw6jq/ZUXU0W/k63Xjfnoc7qqmVpoNEU4cmb21TaTP9cI47fORu 
-NsjG1cKPd+BwdxX7Ihd2Lz/kjwQ2RLqxSfj1DjFxBX1DSt2SA+weL1KWN4uRblic 
-iHcwBQmEdCuVI1YI769POVCYpO2snls3IO93jKmdFpb441iE9ik4w8hGuHvYNvQa 
-1QfVwy6+Ip03qnh53nRHTAfxQ307nywieNJJzeH+T0xx/bQsq/XKOmGncXOnjoqr 
-8SXL28OYNMF9erCzUA08U7XnoDC23c0oaugd1vSvWZbj50C1PpZJMnGuB7Pr0acZ 
-8tr/wlFpZ5d6x2VCvGuEIxV4NfMDQ05QwfZ7HarjxdsCsYxXtHLcFhlSIrC4uODf 
-inL1WSIR+ym+jRS2JrRGGHNtE0zeOQg5cfekcVHEj21C94vdpZi+ivPaPZzGXbeu 
-VSeFvi0unz80nNwDAUDTg2zJiT/FD+kshP5jlXglEy9q1h2k8bXbvSUNkMNiuSP+ 
-8dtMqb3VvOQm5lJLWsn2fVJ2o5JOZ4Jn7l0hV5QUQ1R25VAAB6JZ+Skq8UAN3eI9 
-WyHWK1yMlv1wfZrM3DMZhg/0Q1SfBzyywW/UDkbcGDFldVFf 
-=Ooef 
------END PGP PUBLIC KEY BLOCK----- 
-</code> 
- 
-<code> 
-[root@archlinux ~]# gpg --import EB4F9E5A60D32232BB52150C12C87A28FEAC6B20.asc 
-</code> 
- 
-Mit nachfolgendem Befehl, kann [[https://github.com/maximbaz/snap-pac-grub|snap-pac-grub]] installiert werden: 
-<code> 
-[root@archlinux ~]# pikaur -S snap-pac-grub 
-Reading repository package databases... 
-Reading local package database... 
-Resolving AUR dependencies... 
- 
-:: AUR package will be installed: 
- snap-pac-grub                                              -> 1.0.4-4 
- 
-:: Proceed with installation? [Y/n]  
-:: [v]iew package details   [m]anually select packages 
->> Y 
-looking for conflicting AUR packages... 
-:: warning: Not showing diff for snap-pac-grub package (installing for the first time) 
-Do you want to edit PKGBUILD for snap-pac-grub package? [Y/n] n 
- 
- 
-:: Starting the build: 
-Running as unit: run-u41.service 
-Press ^] three times within 1s to disconnect TTY. 
-==> Making package: snap-pac-grub 1.0.4-4 (Thu 17 Sep 2020 11:26:36 AM CEST) 
-==> Checking runtime dependencies... 
-==> Checking buildtime dependencies... 
-==> Retrieving sources... 
-  -> Downloading snap-pac-grub-1.0.4.tar.gz... 
-  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
-                                 Dload  Upload   Total   Spent    Left  Speed 
-100   646  100   646    0       1993      0 --:--:-- --:--:-- --:--:--  1993 
-100  1129  100  1129    0       1251      0 --:--:-- --:--:-- --:--:--  1251 
-  -> Downloading snap-pac-grub-1.0.4.tar.gz.sig... 
-  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
-                                 Dload  Upload   Total   Spent    Left  Speed 
-100   650  100   650    0       2188      0 --:--:-- --:--:-- --:--:--  2181 
-100   566  100   566    0        681      0 --:--:-- --:--:-- --:--:--   681 
-==> Validating source files with sha256sums... 
-    snap-pac-grub-1.0.4.tar.gz ... Passed 
-    snap-pac-grub-1.0.4.tar.gz.sig ... Skipped 
-==> Verifying source file signatures with gpg... 
-    snap-pac-grub-1.0.4.tar.gz ... FAILED (unknown public key 011FDC52DA839335) 
-==> ERROR: One or more PGP signatures could not be verified! 
-Finished with result: exit-code 
-Main processes terminated with: code=exited/status=1 
-Service runtime: 2.328s 
- 
-Command 'systemd-run --service-type=oneshot --pipe --wait --pty -p DynamicUser=yes -p CacheDirectory=pikaur -E HOME=/tmp -p WorkingDirectory=/var/cache/pikaur/build/snap-pac-grub makepkg --force' failed to execute. 
-:: Try recovering? 
-[R] retry build 
-[p] PGP check skip 
-[c] checksums skip 
-[i] ignore architecture 
-[d] delete build dir and try again 
-[e] edit PKGBUILD 
------------------------- 
-[s] skip building this package 
-[a] abort building all the packages 
-> p 
-Running as unit: run-u46.service 
-Press ^] three times within 1s to disconnect TTY. 
-==> Making package: snap-pac-grub 1.0.4-4 (Thu 17 Sep 2020 11:26:40 AM CEST) 
-==> Checking runtime dependencies... 
-==> Checking buildtime dependencies... 
-==> Retrieving sources... 
-  -> Found snap-pac-grub-1.0.4.tar.gz 
-  -> Found snap-pac-grub-1.0.4.tar.gz.sig 
-==> WARNING: Skipping verification of source file PGP signatures. 
-==> Validating source files with sha256sums... 
-    snap-pac-grub-1.0.4.tar.gz ... Passed 
-    snap-pac-grub-1.0.4.tar.gz.sig ... Skipped 
-==> Extracting sources... 
-  -> Extracting snap-pac-grub-1.0.4.tar.gz with bsdtar 
-==> Entering fakeroot environment... 
-==> Starting package()... 
-==> Tidying install... 
-  -> Removing libtool files... 
-  -> Purging unwanted files... 
-  -> Removing static library files... 
-  -> Stripping unneeded symbols from binaries and libraries... 
-  -> Compressing man and info pages... 
-==> Checking for packaging issues... 
-==> Creating package "snap-pac-grub"... 
-  -> Generating .PKGINFO file... 
-  -> Generating .BUILDINFO file... 
-  -> Generating .MTREE file... 
-  -> Compressing package... 
-==> Leaving fakeroot environment. 
-==> Finished making: snap-pac-grub 1.0.4-4 (Thu 17 Sep 2020 11:26:41 AM CEST) 
-Finished with result: success 
-Main processes terminated with: code=exited/status=0 
-Service runtime: 1.214s 
- 
-loading packages... 
-resolving dependencies... 
-looking for conflicting packages... 
- 
-Packages (1) snap-pac-grub-1.0.4-4 
- 
-Total Installed Size:  0.00 MiB 
- 
-:: Proceed with installation? [Y/n] Y 
-(1/1) checking keys in keyring                                   [####################################] 100% 
-(1/1) checking package integrity                                 [####################################] 100% 
-(1/1) loading package files                                      [####################################] 100% 
-(1/1) checking for file conflicts                                [####################################] 100% 
-(1/1) checking available disk space                              [####################################] 100% 
-:: Running pre-transaction hooks... 
-(1/1) Performing snapper pre snapshots for the following configurations... 
-==> root: 1 
-:: Processing package changes... 
-(1/1) installing snap-pac-grub                                   [####################################] 100% 
-:: Running post-transaction hooks... 
-(1/3) Arming ConditionNeedsUpdate... 
-(2/3) Performing snapper post snapshots for the following configurations... 
-==> root: 2 
-(3/3) Generate GRUB config to let grub-btrfs detect new snapshots 
-Generating grub configuration file ... 
-Found linux image: /boot/vmlinuz-linux-lts 
-Found initrd image: /boot/initramfs-linux-lts.img 
-Found fallback initrd image(s) in /boot: initramfs-linux-lts-fallback.img 
-###### - Grub-btrfs: Snapshot detection started - ###### 
-# Info: Separate boot partition not detected  
-# Info: snapper detected, using config 'root' 
-# Found snapshot: 2020-09-17 11:26:42 | snapshots/2/snapshot | post | snap-pac-grub 
-# Found snapshot: 2020-09-17 11:26:42 | snapshots/1/snapshot | pre  | pacman --color=always --upgrade /var/cache/pikaur/pkg/snap-pac-grub-1.0.... 
-# Found 2 snapshot(s) 
-###### - Grub-btrfs: Snapshot detection ended   - ###### 
-done 
-</code> 
- 
-:!: **HINWEIS** - **Leider entspricht der aktuelle öffentliche PGP-Schlüssel nicht dem des Paketes, so das die Überprüfung des PGP-Schlüssels __leider__ zum Erstellungszeitpunkt übersprungen werden musste, da sonst __keine__ Installation möglich wäre!** 
- 
-Eine Überprüfung ob alles funktioniert hat, kann mit nachfolgendem Befehl erfolgen: 
-<code> 
-[root@archlinux ~]# snapper list 
- # | Type   | Pre # | Date                             | User | Cleanup | Description                                                                 | Userdata 
----+--------+-------+----------------------------------+------+---------+-----------------------------------------------------------------------------+--------- 
-0  | single |                                        | root |         | current                                                                              
-1  | pre    |       | Thu 17 Sep 2020 11:26:42 AM CEST | root | number  | pacman --color=always --upgrade /var/cache/pikaur/pkg/snap-pac-grub-1.0.... |          
-2  | post       1 | Thu 17 Sep 2020 11:26:42 AM CEST | root | number  | snap-pac-grub 
-</code> 
- 
-===== Praxis ===== 
- 
-==== Auf einen snapshot zurücksetzen ==== 
- 
-Nachfolgender soll das Programm ''screenfatch'' installoert werden und anschließend die Installation durch starten eines vorhergehenden Snapshots **rückgängig** gemacht werden. 
- 
-Mit nachfolgendem Befehl, kann ''screenfetch'' installiert werden: 
-<code> 
-[root@archlinux ~]# pacman -S screenfetch 
-resolving dependencies... 
-looking for conflicting packages... 
- 
-Packages (18) bc-1.07.1-4  libx11-1.6.12-1  libxau-1.0.9-3  libxcb-1.14-1  libxcomposite-0.4.5-3 
-              libxdmcp-1.1.3-3  libxext-1.3.4-3  libxfixes-5.0.3-4  libxi-1.7.10-3  libxinerama-1.1.4-3 
-              libxrender-0.9.10-4  libxtst-1.2.3-4  libxxf86vm-1.1.4-4  xcb-proto-1.14-1 
-              xorg-xdpyinfo-1.3.2-4  xorg-xprop-1.2.4-2  xorgproto-2020.1-1  screenfetch-3.9.1-1 
- 
-Total Download Size:    3.95 MiB 
-Total Installed Size:  17.84 MiB 
- 
-:: Proceed with installation? [Y/n] Y 
-:: Retrieving packages... 
- bc-1.07.1-4-x86_64                   87.8 KiB  1464 KiB/s 00:00 [####################################] 100% 
- xcb-proto-1.14-1-any                108.9 KiB  1556 KiB/s 00:00 [####################################] 100% 
- libxdmcp-1.1.3-3-x86_64              27.4 KiB  2.68 MiB/s 00:00 [####################################] 100% 
- libxau-1.0.9-3-x86_64                10.9 KiB  0.00   B/s 00:00 [####################################] 100% 
- libxcb-1.14-1-x86_64                999.8 KiB  1492 KiB/s 00:01 [####################################] 100% 
- xorgproto-2020.1-1-any              237.9 KiB  1399 KiB/s 00:00 [####################################] 100% 
- libx11-1.6.12-1-x86_64                2.1 MiB  1444 KiB/s 00:01 [####################################] 100% 
- libxext-1.3.4-3-x86_64              107.3 KiB  1533 KiB/s 00:00 [####################################] 100% 
- libxi-1.7.10-3-x86_64               148.3 KiB  1483 KiB/s 00:00 [####################################] 100% 
- libxfixes-5.0.3-4-x86_64             13.4 KiB  0.00   B/s 00:00 [####################################] 100% 
- libxtst-1.2.3-4-x86_64               29.5 KiB  2.89 MiB/s 00:00 [####################################] 100% 
- libxxf86vm-1.1.4-4-x86_64            15.7 KiB  0.00   B/s 00:00 [####################################] 100% 
- libxrender-0.9.10-4-x86_64           26.0 KiB  0.00   B/s 00:00 [####################################] 100% 
- libxcomposite-0.4.5-3-x86_64         11.4 KiB  0.00   B/s 00:00 [####################################] 100% 
- libxinerama-1.1.4-3-x86_64           10.1 KiB  0.00   B/s 00:00 [####################################] 100% 
- xorg-xdpyinfo-1.3.2-4-x86_64         16.0 KiB  0.00   B/s 00:00 [####################################] 100% 
- xorg-xprop-1.2.4-2-x86_64            25.8 KiB  2.51 MiB/s 00:00 [####################################] 100% 
- screenfetch-3.9.1-1-any              50.9 KiB  4.97 MiB/s 00:00 [####################################] 100% 
-(18/18) checking keys in keyring                                 [####################################] 100% 
-(18/18) checking package integrity                               [####################################] 100% 
-(18/18) loading package files                                    [####################################] 100% 
-(18/18) checking for file conflicts                              [####################################] 100% 
-(18/18) checking available disk space                            [####################################] 100% 
-:: Running pre-transaction hooks... 
-(1/1) Performing snapper pre snapshots for the following configurations... 
-==> root: 3 
-:: Processing package changes... 
-( 1/18) installing bc                                            [####################################] 100% 
-( 2/18) installing xcb-proto                                     [####################################] 100% 
-( 3/18) installing libxdmcp                                      [####################################] 100% 
-( 4/18) installing libxau                                        [####################################] 100% 
-( 5/18) installing libxcb                                        [####################################] 100% 
-( 6/18) installing xorgproto                                     [####################################] 100% 
-( 7/18) installing libx11                                        [####################################] 100% 
-( 8/18) installing libxext                                       [####################################] 100% 
-( 9/18) installing libxi                                         [####################################] 100% 
-(10/18) installing libxfixes                                     [####################################] 100% 
-(11/18) installing libxtst                                       [####################################] 100% 
-(12/18) installing libxxf86vm                                    [####################################] 100% 
-(13/18) installing libxrender                                    [####################################] 100% 
-(14/18) installing libxcomposite                                 [####################################] 100% 
-(15/18) installing libxinerama                                   [####################################] 100% 
-(16/18) installing xorg-xdpyinfo                                 [####################################] 100% 
-(17/18) installing xorg-xprop                                    [####################################] 100% 
-(18/18) installing screenfetch                                   [####################################] 100% 
-Optional dependencies for screenfetch 
-    scrot: to take screenshot 
-:: Running post-transaction hooks... 
-(1/4) Arming ConditionNeedsUpdate... 
-(2/4) Updating the info directory file... 
-(3/4) Performing snapper post snapshots for the following configurations... 
-==> root: 4 
-(4/4) Generate GRUB config to let grub-btrfs detect new snapshots 
-Generating grub configuration file ... 
-Found linux image: /boot/vmlinuz-linux-lts 
-Found initrd image: /boot/initramfs-linux-lts.img 
-Found fallback initrd image(s) in /boot: initramfs-linux-lts-fallback.img 
-###### - Grub-btrfs: Snapshot detection started - ###### 
-# Info: Separate boot partition not detected  
-# Info: snapper detected, using config 'root' 
-# Found snapshot: 2020-09-17 11:30:13 | snapshots/4/snapshot | post | bc libx11 libxau libxcb libxcomposite libxdmcp libxext libxfixes libxi l... 
-# Found snapshot: 2020-09-17 11:30:12 | snapshots/3/snapshot | pre  | pacman -S screenfetch 
-# Found snapshot: 2020-09-17 11:26:42 | snapshots/2/snapshot | post | snap-pac-grub 
-# Found snapshot: 2020-09-17 11:26:42 | snapshots/1/snapshot | pre  | pacman --color=always --upgrade /var/cache/pikaur/pkg/snap-pac-grub-1.0.... 
-# Found 4 snapshot(s) 
-###### - Grub-btrfs: Snapshot detection ended   - ###### 
-done</code> 
- 
-Anhand der Ausgabe bei der Installation, kann in Erfahrung gebracht werden das **__zwei__ Snapshots** erstellt wurden: 
-  - Snapshot: ''3'' - **__Vor__** der Installation von ''screenfetch'' 
-  - Snapshot: ''4'' - **__Nach__** der Installation von ''screenfetch'' 
- 
-Dies kann auch durch Abfrage mit nachfolgendem Befehl bestätigt werden: 
-<code> 
-[root@archlinux ~]# snapper list 
- # | Type   | Pre # | Date                             | User | Cleanup | Description                                                                 | Userdata 
----+--------+-------+----------------------------------+------+---------+-----------------------------------------------------------------------------+--------- 
-0  | single |                                        | root |         | current                                                                              
-1  | pre    |       | Thu 17 Sep 2020 11:26:42 AM CEST | root | number  | pacman --color=always --upgrade /var/cache/pikaur/pkg/snap-pac-grub-1.0.... |          
-2  | post       1 | Thu 17 Sep 2020 11:26:42 AM CEST | root | number  | snap-pac-grub                                                                        
-3  | pre    |       | Thu 17 Sep 2020 11:30:12 AM CEST | root | number  | pacman -S screenfetch                                                                
-4  | post       3 | Thu 17 Sep 2020 11:30:13 AM CEST | root | number  | bc libx11 libxau libxcb libxcomposite libxdmcp libxext libxfixes libxi l... | 
-</code> 
- 
-Eine Überprüfung, ob das Programm ''screenfetch'' aufgrufen und ausgeführt werden kann, kann durch Aufruf von ''screenfetch'' durchgeführt werden: 
-<code> 
-root@archlinux ~]# screenfetch  
-                   -`                  
-                  .o+`                 root@archlinux 
-                 `ooo/                 OS: Arch Linux  
-                `+oooo:                Kernel: x86_64 Linux 5.4.63-1-lts 
-               `+oooooo:               Uptime: 2h 59m 
-               -+oooooo+:              Packages: 186 
-             `/:-:++oooo+:             Shell: bash 5.0.18 
-            `/++++/+++++++:            Disk: 8.9G / 92G (10%) 
-           `/++++++++++++++:           CPU: Intel Core (Skylake, IBRS) @ 2.304GHz 
-          `/+++ooooooooooooo/        GPU: Red Hat, Inc. Virtio GPU (rev 01) 
-         ./ooosssso++osssssso+`        RAM: 250MiB / 983MiB 
-        .oossssso-````/ossssss+`       
-       -osssssso.      :ssssssso.      
-      :osssssss/        osssso+++.     
-     /ossssssss/        +ssssooo/    
-   `/ossssso+/:       -:/+osssso+-   
-  `+sso+:-`                 `.-/+oso:  
- `++:                          `-/+/ 
- .`                                 `/ 
-[root@archlinux ~]# 
-</code> 
- 
-Um jetzt die Installation von ''screenfetch'' rückgängig machen zu können, kann nachfolgender Befehl nun angewendet werden: 
-<code> 
-[root@archlinux ~]# snapper -v undochange 3..4 
-create:0 modify:3 delete:4306 
-... 
-</code> 
- 
-Ein erneuter Aufruf von ''screenfetch'', sollte nun zu einer Fehlermeldung führen und anzeigen, das das Programm nicht gefunden werden kann und somit auch nicht installiert ist: 
-<code> 
-[root@archlinux ~]# screenfetch  
--bash: /usr/bin/screenfetch: No such file or directory 
-</code> 
- 
-==== In einen snapshot starten (booten) ==== 
- 
-Alle möglichen **Snapshots** in die gestartet werden kann, sind in einem **Untermenü** beim Neustart in [[https://www.gnu.org/software/grub/|GRUB]] ersichtlich, wie nachfolgende Bildschirmkopien zeigen: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-arch_linux_snapshots.png|Neustart GRUB}} 
- 
-Druch Auswahl des [[https://www.gnu.org/software/grub/|GRUB]]-Menüpunktes **Arch Linux snapshots**, sollte in etwa ein Bildschirm wie nachfolgender zum Vorschein kommen: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-arch_linux_snapshots-menu.png|Neustart GRUB - Arch Linux snapshots}} 
- 
-Durch Auswahl des obersten Menüpunktes, sollte nun eine Anzeige wie nachfolgende erscheinen, in dem der zu startende (boot) **Kernel** ausgewählt werden kann: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-arch_linux_snapshots-menu-selected_boot_kernel.png|}} 
- 
-Nach einem erfolgeichen Startvorgang (booten), kann das Programm ''screenfetch'' wieder verwendet werden, wie nachfolgender Aufruf zeigt: 
-<code> 
-[root@archlinux ~]# screenfetch  
-                   -`                  
-                  .o+`                 root@archlinux 
-                 `ooo/                 OS: Arch Linux  
-                `+oooo:                Kernel: x86_64 Linux 5.4.63-1-lts 
-               `+oooooo:               Uptime: 8m 
-               -+oooooo+:              Packages: 186 
-             `/:-:++oooo+:             Shell: bash 5.0.18 
-            `/++++/+++++++:            Disk: 8.9G / 92G (10%) 
-           `/++++++++++++++:           CPU: Intel Core (Skylake, IBRS) @ 2.304GHz 
-          `/+++ooooooooooooo/        GPU: Red Hat, Inc. Virtio GPU (rev 01) 
-         ./ooosssso++osssssso+`        RAM: 186MiB / 983MiB 
-        .oossssso-````/ossssss+`       
-       -osssssso.      :ssssssso.      
-      :osssssss/        osssso+++.     
-     /ossssssss/        +ssssooo/    
-   `/ossssso+/:       -:/+osssso+-   
-  `+sso+:-`                 `.-/+oso:  
- `++:                          `-/+/ 
- .`                                 `/ 
-[root@archlinux ~]# 
-</code> 
- 
-:!: **ACHTUNG** - **Der gestartet Snapshot ist ein "__read-only__" Snapshot !!!** 
- 
-Der Versuch in das **Btrfs: Subvolume - ''/'' (root)** zu schreiben schlägt fehl, wie nachfolgendes Beispiel zeigt: 
-<code> 
-[root@archlinux ~]# touch /test.txt 
-touch: cannot touch '/test.txt': Read-only file system 
-</code> 
- 
-Damit wieder eine **__read-write__** **Snapshot** aus dem aktuell gestarteten **Snapshot** wird, sind nachfolgende Schritte erforderlich. 
- 
-==== Einen read-write snapshot erzeugen ==== 
- 
-Mit nachfolgenden Befehlen und einem **Neustart** wird aus einem **__read-only__** **Snapshot** wieder ein **__read-write__** **Snapshot**. 
- 
-Nachfolgender Befehl überprüft, welcher **Snapshot** aktuell ge**mount**et ist (Hier die Nummer **''4''**): 
-<code> 
-[root@archlinux ~]# mount | grep /snapshots/ 
-/dev/vda1 on / type btrfs (rw,relatime,space_cache=v2,subvolid=269,subvol=/snapshots/4/snapshot) 
-</code> 
- 
-Um jetzt mit einen **Rollback** (zurücksetzen) auch auf einen **beliebigen** startbaren (boot) **Snapshot** gehen zu können, ist es erforderlich aus dem **__read-only__** **Snapshot** wieder einen **__read-write__** **Snapshot** zu erstellen, was mit nachfolgendem Befehl durchgeführt werden kann: 
-<code> 
-[root@archlinux ~]# snapper -a classic rollback 4 
-Ambit is classic. 
-Creating read-only snapshot of current system. (Snapshot 5.) 
-Creating read-write snapshot of snapshot 4. (Snapshot 6.) 
-Setting default subvolume to snapshot 6. 
-</code> 
- 
-Wichtig ist hier der **Snapshot** mit der Nummer **''6''** welcher einen startbereiten (boot) **__read-write__** **Snapshot** darstellt. 
- 
-:!: **WICHTIG** - **Leider kann nur über das editieren beim Starten via [[https://www.gnu.org/software/grub/|GRUB]] dieser Snapshot gestartet (boot) werden !!!** 
- 
-<code> 
-[root@archlinux ~]# systemctl reboot 
-</code> 
- 
-Nachfolgend ist wieder ein Neustart durchzuführen: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-arch_linux_snapshots.png|Neustart GRUB}} 
- 
-Durch Auswahl des [[https://www.gnu.org/software/grub/|GRUB]]-Menüpunktes **Arch Linux snapshots**, sollte in etwa ein Bildschirm wie nachfolgender zum Vorschein kommen: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-arch_linux_snapshots-menu.png|Neustart GRUB - Arch Linux snapshots}} 
- 
-Durch Auswahl des obersten Menüpunktes, sollte nun eine Anzeige wie nachfolgende erscheinen, in dem der zu startende (boot) **Kernel** ausgewählt werden kann: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-arch_linux_snapshots-menu-selected_boot_kernel.png|Neustart GRUB - Arch Linux snapshots - Kernel Auswahl}} 
- 
-:!: **WICHTIG** - **Jetzt ist die [e]-Taste zu drücken um den [[https://www.gnu.org/software/grub/|GRUB]]-Kernel-Bootmenü-Eintrag __e__ditieren zu können !!!** 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-arch_linux_snapshots-menu-selected_boot_kernel-edit.png|Neustart GRUB - Arch Linux snapshots - Kernel Auswahl - Editiert}} 
- 
-:!: **WICHTIG** - **Ersetzen der Snapshot-Nummer ''4'' durch die Snapshot_nummer ''6'' !!!** 
- 
-:!: **WICHTIG** - **Um die Änderungen wirksam werden zu lassen, ist die [F10]-Taste oder [Ctrl-x]|[Strg-x] zu betätigen !!!** 
- 
-Jetzt kann mit nachfolgendem Befehl überprüft werden, ob der **Snapshot** mit der Nummer **''12''** gestartet (boot) wurde: 
-<code> 
-[root@archlinux ~]# mount | grep /snapshots/ 
-/dev/vda1 on / type btrfs (rw,relatime,space_cache=v2,subvolid=271,subvol=/snapshots/6/snapshot) 
-</code> 
- 
-Und ob dieser auch ein **__read-write__** **Snapshot** ist, wie nachfolgender Befehl beweist: 
-<code> 
-[root@archlinux ~]# touch /test.txt 
-</code> 
-<code> 
-[root@archlinux ~]# ls -la /test.txt  
--rw-r--r-- 1 root root 0 Sep 10 17:21 /test.txt 
-</code> 
- 
-:!: **WICHTIG** - **Damit zukünftig von diesem Snapshot - __standardmässig__ gestartet wird, muss nachfolgender Befehl ausgeführt werden:** 
- 
-Hier wird der **Bootloader** - hier [[https://www.gnu.org/software/grub/|GRUB]] neu installiert: 
-<code> 
-[root@archlinux ~]# grub-install /dev/vda 
-Installing for i386-pc platform. 
-Installation finished. No error reported. 
-</code> 
- 
-Anschließend muss noch der **Bootloader** - hier [[https://www.gnu.org/software/grub/|GRUB]] neu konfiguriert werden: 
-<code> 
-[root@archlinux ~]# grub-mkconfig -o /boot/grub/grub.cfg 
-Generating grub configuration file ... 
-Found linux image: /boot/vmlinuz-linux-lts 
-Found initrd image: /boot/initramfs-linux-lts.img 
-Found fallback initrd image(s) in /boot: initramfs-linux-lts-fallback.img 
-###### - Grub-btrfs: Snapshot detection started - ###### 
-# Info: Separate boot partition not detected  
-# Info: snapper detected, using config 'root' 
-# Found snapshot: 2020-09-17 12:03:14 | snapshots/6/snapshot | single | writable copy of #4 
-# Found snapshot: 2020-09-17 12:03:14 | snapshots/5/snapshot | single | rollback backup 
-# Found snapshot: 2020-09-17 11:30:13 | snapshots/4/snapshot | post   | bc libx11 libxau libxcb libxcomposite libxdmcp libxext libxfixes libxi l... 
-# Found snapshot: 2020-09-17 11:30:12 | snapshots/3/snapshot | pre    | pacman -S screenfetch 
-# Found snapshot: 2020-09-17 11:26:42 | snapshots/2/snapshot | post   | snap-pac-grub 
-# Found snapshot: 2020-09-17 11:26:42 | snapshots/1/snapshot | pre    | pacman --color=always --upgrade /var/cache/pikaur/pkg/snap-pac-grub-1.0.... 
-# Found 6 snapshot(s) 
-###### - Grub-btrfs: Snapshot detection ended   - ###### 
-done 
-</code> 
- 
-<code> 
-[root@archlinux ~]# systemctl reboot 
-</code> 
- 
-Nach einem **erneuten Neustart** sollte jetzt der **Snapshot** mit der Nummer **''6''** der Snapshot sein, welcher auch über den **__Standardeintrag__** gestartet wird, was nachfolgende Bildschirmkopie zeigt: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-standard.png|Neustart GRUB - Standard Kernel}} 
- 
-Eine Überprüfung, welcher **Snapshot** gestartet (boot) ist, kann nochmals mit nachfolgendem Befehl durchgeführt werden: 
-<code> 
-[root@archlinux ~]# mount | grep /snapshots/ 
-/dev/vda1 on / type btrfs (rw,relatime,space_cache=v2,subvolid=271,subvol=/snapshots/6/snapshot) 
-</code> 
- 
-==== Einen snapshot zu root zurücksetzen ==== 
- 
-Nachdem in einen **__read-write__** **Snapshot** gestartet (boot) wurde, soll dieser wieder zum **''root''** gemacht werden, damit ggf. später auch der aktuelle **Snapshot** von dem gerade gestartet (boot) wurde auch gelöscht werden kann. 
- 
-Dazu soll zuerst der **"alte"** Stand von **''root''** mit nachfolgendem Befehl gelöscht werden: 
-<code> 
-[root@archlinux ~]# rm /btrfs/root -rf 
-</code> 
- 
-Anschließend sol leine **__read-write__** - **Snapshot** vom aktuellen **Snapshot** von dem gerade gebootet wurde via [[http://snapper.io|snapper]] **kopiert** werden, was mit nachfolgendem Befehl durchgeführt werden soll: 
-<code> 
-[root@archlinux ~]# btrfs subvol snapshot /.snapshots/6/snapshot /btrfs 
-Create a snapshot of '/.snapshots/6/snapshot' in '/btrfs/snapshot' 
-</code> 
- 
-Der so erzeugte **__read-write__** **Snapshot** in nachfolgendem Verzeichnis mit nachfolgendem Namen 
-  * ''/btrfs/snapshot'' 
-muss nun noch **umbenannt** werden, was mit nachfolgendem Befehl durchgeführt werden soll: 
-<code> 
-[root@archlinux ~]# mv /btrfs/snapshot /btrfs/root 
-</code> 
- 
-Abschließend muss nun die [[https://www.gnu.org/software/grub/|GRUB]]-Konfigurationsdatei in nachfolgendem Verzeichnis mit nachfolgendem Namen 
-  * ''/boot/grub/grub.cfg'' 
-noch entsprechend angepasst werden. 
- 
-<code> 
-[root@archlinux ~]# vim /boot/grub/grub.cfg 
-</code> 
- 
-:!: **WICHTIG** - **''font="/snapshots/6/snapshot/usr/share/grub/unicode.pf2"'' muss gegen ''font="/usr/share/grub/unicode.pf2"'' ausgetauscht werden.** 
- 
-:!: **HINWEIS** - **Alle Einträge mit ''snapshots/6/snapshot'' müssen gegen ''/root'' ausgetauscht werden!** 
- 
-Nachfolgend eine Liste der relevanten Stellen (**nur relevanter Ausschnitt**): 
- 
-  * <code ini>    font="/usr/share/grub/unicode.pf2"</code> 
- 
-Eine Suche im Editor nach ''fonts="'' findet die Stelle am schnellsten. 
- 
-  * <code ini>    linux   /root/boot/vmlinuz-linux-lts root=UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 rw rootflags=subvol=root  loglevel=3 net.ifnames=0</code> 
- 
-**''menuentry 'Arch Linux'''** - Wichtig ist hier die Angabe **''subvol=''**, die wie oben gezeigt angepasst werden muss. 
- 
-  * <code ini>    initrd  /root/boot/initramfs-linux-lts.img</code> 
- 
-**''menuentry 'Arch Linux'''** - ''initrd'' muss ebenfalls ausgetauscht werden. 
- 
-  * <code ini>        linux   /root/boot/vmlinuz-linux-lts root=UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 rw rootflags=subvol=root  loglevel=3 net.ifnames=0</code> 
- 
-**''submenu 'Advanced options for Arch Linux'''** - Wichtig ist hier die Angabe **''subvol=''**, die wie oben gezeigt angepasst werden muss. 
- 
-  * <code ini>        initrd  /root/boot/initramfs-linux-lts.img</code> 
- 
-**''submenu 'Advanced options for Arch Linux'''** - ''initrd'' muss ebenfalls ausgetauscht werden. 
- 
-  * <code ini>        linux   /root/boot/vmlinuz-linux-lts root=UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 rw rootflags=subvol=root  loglevel=3 net.ifnames=0</code> 
- 
-**''    menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)'''** - Wichtig ist hier die Angabe **''subvol=''**, die wie oben gezeigt angepasst werden muss. 
- 
-  * <code ini>        initrd  /root/boot/initramfs-linux-lts-fallback.img</code> 
- 
-**''    menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)'''** - ''initrd'' muss ebenfalls ausgetauscht werden. 
- 
-:!: **WICHTIG** - **Damit zukünftig von diesem Snapshot - __standardmässig__ gestartet wird, muss nachfolgender Befehl ausgeführt werden:** 
- 
-Hier wird der **Bootloader** - hier [[https://www.gnu.org/software/grub/|GRUB]] neu installiert: 
-<code> 
-[root@archlinux ~]# grub-install /dev/vda 
-Installing for i386-pc platform. 
-Installation finished. No error reported. 
-</code> 
- 
-<code> 
-[root@archlinux ~]# systemctl reboot 
-</code> 
- 
-Nach einem Neustart, sollte nun wieder **''root''** gestartet (boot) werden, was nachfolgende Bildschirmkopie zeigt: 
- 
-{{:tachtler:virtualisierung:archlinux:archlinux-btrfs-grub-boot-standard.png|Neustart GRUB - Standard Kernel}} 
- 
-Eine Überprüfung, ob **''root''** gestartet (boot) wurde, kann mit nachfolgendem Befehl durchgeführt werden: 
-<code> 
-[root@archlinux ~]# mount | grep /root 
-/dev/vda1 on / type btrfs (rw,relatime,space_cache=v2,subvolid=272,subvol=/root) 
-[root@archlinux ~]# 
-</code> 
- 
-Anschließend soll das **Subvolume** - **''/''** wieder der **default** werden, was mit nachfolgendem Befehl durchgeführt werden kann: 
-<code> 
-[root@archlinux ~]# btrfs subvolume set-default 0 / 
-</code> 
- 
-Zur Überprüfung kann nachfolgende Befehl verwendet werden: 
-<code> 
-[root@archlinux ~]# btrfs subvolume get-default / 
-ID 272 gen 133 top level 5 path root 
-</code> 
- 
-Nun können auch beispielsweise **alle** **Snapshots** mit nachfolgendem Befehl gelöscht werden: 
-<code> 
-[root@archlinux ~]# snapper delete 6 
-[root@archlinux ~]# snapper delete 5 
-[root@archlinux ~]# snapper delete 4 
-[root@archlinux ~]# snapper delete 3 
-[root@archlinux ~]# snapper delete 1 
-</code> 
- 
-Abschließend würde dann die Anzeige aller **Snapshots** wie folgt aussehen: 
-<code> 
-[root@archlinux ~]# snapper list 
- # | Type   | Pre # | Date | User | Cleanup | Description | Userdata 
----+--------+-------+------+------+---------+-------------+--------- 
-0  | single |            | root |         | current     | 
-</code> 
- 
-Auch die Anzeige des via **BtrfS** verwendeten Speicherplatzes zeigt nur die für **''root''** verwendeten daten an: 
-<code> 
-[root@archlinux ~]# df -Th | grep /dev/vda 
-/dev/vda1      btrfs      19G  1.8G   17G  10% / 
-/dev/vda1      btrfs      19G  1.8G   17G  10% /btrfs 
-/dev/vda1      btrfs      19G  1.8G   17G  10% /.snapshots 
-/dev/vda1      btrfs      19G  1.8G   17G  10% /tmp 
-/dev/vda1      btrfs      19G  1.8G   17G  10% /var/log 
-</code> 
-bzw. 
-<code> 
-[root@archlinux ~]# btrfs filesystem df / 
-Data, single: total=2.01GiB, used=1.67GiB 
-System, DUP: total=8.00MiB, used=16.00KiB 
-Metadata, DUP: total=256.00MiB, used=54.36MiB 
-GlobalReserve, single: total=4.94MiB, used=0.00B 
-</code> 
- 
-:!: **WICHTIG** - **Damit zukünftig von diesem Snapshot - __standardmässig__ gestartet wird, muss nachfolgender Befehl ausgeführt werden:** 
- 
-Hier wird der **Bootloader** - hier [[https://www.gnu.org/software/grub/|GRUB]] neu installiert: 
-<code> 
-[root@archlinux ~]# grub-install /dev/vda 
-Installing for i386-pc platform. 
-Installation finished. No error reported. 
-</code> 
- 
-Anschließend muss noch der **Bootloader** - hier [[https://www.gnu.org/software/grub/|GRUB]] neu konfiguriert werden: 
-<code> 
-[root@archlinux ~]# grub-mkconfig -o /boot/grub/grub.cfg 
-Generating grub configuration file ... 
-Found linux image: /boot/vmlinuz-linux-lts 
-Found initrd image: /boot/initramfs-linux-lts.img 
-Found fallback initrd image(s) in /boot: initramfs-linux-lts-fallback.img 
-###### - Grub-btrfs: Snapshot detection started - ###### 
-# Info: Separate boot partition not detected  
-# Info: snapper detected, using config 'root' 
-</code> 
tachtler/archlinux_-_minimal_server_installation_-_mit_btrfs_snapper.1600342752.txt.gz · Zuletzt geändert: 2020/09/17 13:39 von klaus