tachtler:archlinux_-_minimal_server_installation_-_mit_btrfs_snapper
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
tachtler:archlinux_-_minimal_server_installation_-_mit_btrfs_snapper [2020/09/17 11:28] – [Installation: snap-pac-grub] klaus | tachtler: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: | ||
- | |||
- | [[http:// | ||
- | |||
- | ^ Beschreibung | ||
- | | Homepage | ||
- | | Herunterladen | ||
- | | Dokumentation | ||
- | | Installation | ||
- | | - Btrfs | [[https:// | ||
- | |||
- | * //Quelle: [[https:// | ||
- | |||
- | Ab hier werden '' | ||
- | < | ||
- | $ su - | ||
- | Password: | ||
- | </ | ||
- | |||
- | ===== Voraussetzungen ===== | ||
- | |||
- | Für die nachfolgende Installation wird vorausgesetzt, | ||
- | - dass eine lauffähige Version von [[https:// | ||
- | - Das [[https:// | ||
- | Eine der unter nachfolgenden Links beschriebenen Installationen von [[https:// | ||
- | * [[tachtler: | ||
- | Die unter nachfolgendem Link beschriebene Installation von [[https:// | ||
- | * [[tachtler: | ||
- | |||
- | ===== Installation: | ||
- | |||
- | Zum erstellen von **Snapshots** ist die Nutzung des Programms [[http:// | ||
- | |||
- | Mit nachfolgendem Befehl, kann [[http:// | ||
- | < | ||
- | [root@archiso /]# pacman -S snapper | ||
- | resolving dependencies... | ||
- | looking for conflicting packages... | ||
- | |||
- | Packages (2) boost-libs-1.72.0-2 | ||
- | |||
- | Total Download Size: 3.28 MiB | ||
- | Total Installed Size: 13.42 MiB | ||
- | |||
- | :: Proceed with installation? | ||
- | :: Retrieving packages... | ||
- | | ||
- | | ||
- | (2/2) checking keys in keyring | ||
- | (2/2) checking package integrity | ||
- | (2/2) loading package files [###################### | ||
- | (2/2) checking for file conflicts | ||
- | (2/2) checking available disk space [###################### | ||
- | :: Processing package changes... | ||
- | (1/2) installing boost-libs | ||
- | Optional dependencies for boost-libs | ||
- | openmpi: for mpi support | ||
- | (2/2) installing snapper | ||
- | 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... | ||
- | </ | ||
- | |||
- | ===== Konfiguration: | ||
- | |||
- | ==== snapper: root ==== | ||
- | |||
- | Nach der erfolgreichen Installation von [[http:// | ||
- | |||
- | Dazu ist die Anlage einer Konfiguration für das **Btrfs: Subvolume - ''/'' | ||
- | < | ||
- | [root@archlinux ~]# snapper -c root create-config / | ||
- | </ | ||
- | |||
- | Die so neu erstellte Konfigurationsdatei ist in nachfolgendem Verzeichnis mit nachfolgendem Namen '' | ||
- | * ''/ | ||
- | |||
- | Mit der Erstellung der Konfiguration für das **Btrfs: Subvolume - ''/'' | ||
- | * '' | ||
- | erstellt, wie nachfolgender Befehl zeigt: | ||
- | < | ||
- | [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/ | ||
- | ID 264 gen 26 top level 257 path var/ | ||
- | ID 265 gen 85 top level 257 path .snapshots | ||
- | </ | ||
- | |||
- | :!: **HINWEIS** - **Das Btrfs: __Unter__-Subvolume - '' | ||
- | |||
- | **__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 ''/ | ||
- | * **[[tachtler: | ||
- | |||
- | Um das automatisch neu erstellte | ||
- | < | ||
- | [root@archlinux ~]# btrfs subvolume delete / | ||
- | Delete subvolume (no-commit): | ||
- | </ | ||
- | |||
- | Zur Überprüfung, | ||
- | < | ||
- | [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/ | ||
- | ID 264 gen 26 top level 257 path var/ | ||
- | </ | ||
- | |||
- | Anschließend legen wir im Wurzelverzeichnis ein neues Verzeichnis mit dem Namen | ||
- | * **''/ | ||
- | mit nachfolgendem Befehl an: | ||
- | < | ||
- | # [root@archlinux ~]# mkdir /.snapshots | ||
- | </ | ||
- | |||
- | Jetzt muss nur noch die Konfigurationsdatei | ||
- | * ''/ | ||
- | wie folgt erweitert werden, so dass das neue Verzeichnis ''/ | ||
- | < | ||
- | [root@archlinux ~]# vim /etc/fstab | ||
- | </ | ||
- | <code ini> | ||
- | # /dev/vda1 LABEL=ROOT | ||
- | # | ||
- | |||
- | # /dev/vda1 LABEL=ROOT | ||
- | UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 / | ||
- | |||
- | # /dev/vda1 LABEL=ROOT | ||
- | UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 / | ||
- | |||
- | # /dev/vda1 LABEL=ROOT | ||
- | UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 / | ||
- | |||
- | # /dev/vda1 LABEL=ROOT | ||
- | UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 / | ||
- | |||
- | # /dev/vda2 LABEL=SWAP | ||
- | UUID=a3a1f6b2-6fbb-435f-8d71-b90f00701fe1 none | ||
- | </ | ||
- | ** *//Der __vor__letzte Eintrag ist hinzugekommen!// | ||
- | |||
- | **__Erklärung__** | ||
- | |||
- | * <code ini># /dev/vda1 LABEL=ROOT | ||
- | UUID=7d67e68c-88c6-486f-b79a-506ca7aa9860 / | ||
- | |||
- | Hinzufügen eines **Mount**-Points (Einhängepunktes im Dateisystem) für das **Btrfs: Subvolume** - '' | ||
- | |||
- | Um den in der Konfigurationsdatei ''/ | ||
- | < | ||
- | [root@archlinux ~]# mount / | ||
- | </ | ||
- | |||
- | Ob das **mount**en von Hand erfolgreich war, kann mit nachfolgendem Befehl überprüft werden: | ||
- | < | ||
- | [root@archlinux-btrfs ~]# mount | grep /dev/vda | ||
- | /dev/vda1 on / type btrfs (rw, | ||
- | /dev/vda1 on /btrfs type btrfs (rw, | ||
- | /dev/vda1 on /tmp type btrfs (rw, | ||
- | /dev/vda1 on /var/log type btrfs (rw, | ||
- | /dev/vda1 on /.snapshots type btrfs (rw, | ||
- | </ | ||
- | |||
- | Um sicher zu gehen, das [[http:// | ||
- | < | ||
- | [root@archlinux ~]# snapper list | ||
- | # | Type | Pre # | Date | User | Cleanup | Description | Userdata | ||
- | ---+--------+-------+------+------+---------+-------------+--------- | ||
- | 0 | single | | ||
- | </ | ||
- | |||
- | ==== / | ||
- | |||
- | Nachfolgende Einstellungen passen das Verhalten von [[http:// | ||
- | - 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. | ||
- | < | ||
- | [root@archlinux ~]# vim / | ||
- | </ | ||
- | |||
- | <code ini> | ||
- | |||
- | # subvolume to snapshot | ||
- | SUBVOLUME="/" | ||
- | |||
- | # filesystem type | ||
- | FSTYPE=" | ||
- | |||
- | |||
- | # btrfs qgroup for space aware cleanup algorithms | ||
- | QGROUP="" | ||
- | |||
- | |||
- | # fraction of the filesystems space the snapshots may use | ||
- | SPACE_LIMIT=" | ||
- | |||
- | # fraction of the filesystems space that should be free | ||
- | FREE_LIMIT=" | ||
- | |||
- | |||
- | # 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=" | ||
- | |||
- | |||
- | # start comparing pre- and post-snapshot in background after creating | ||
- | # post-snapshot | ||
- | BACKGROUND_COMPARISON=" | ||
- | |||
- | |||
- | # run daily number cleanup | ||
- | NUMBER_CLEANUP=" | ||
- | |||
- | # limit for number cleanup | ||
- | # Tachtler | ||
- | # default: NUMBER_MIN_AGE=" | ||
- | NUMBER_MIN_AGE=" | ||
- | # Tachtler | ||
- | # default: NUMBER_LIMIT=" | ||
- | NUMBER_LIMIT=" | ||
- | # Tachtler | ||
- | # default: NUMBER_LIMIT_IMPORTANT=" | ||
- | NUMBER_LIMIT_IMPORTANT=" | ||
- | |||
- | |||
- | # create hourly snapshots | ||
- | # Tachtler | ||
- | # default: TIMELINE_CREATE=" | ||
- | TIMELINE_CREATE=" | ||
- | |||
- | # cleanup hourly snapshots after some time | ||
- | TIMELINE_CLEANUP=" | ||
- | |||
- | # limits for timeline cleanup | ||
- | TIMELINE_MIN_AGE=" | ||
- | TIMELINE_LIMIT_HOURLY=" | ||
- | TIMELINE_LIMIT_DAILY=" | ||
- | TIMELINE_LIMIT_WEEKLY=" | ||
- | TIMELINE_LIMIT_MONTHLY=" | ||
- | TIMELINE_LIMIT_YEARLY=" | ||
- | |||
- | |||
- | # cleanup empty pre-post-pairs | ||
- | EMPTY_PRE_POST_CLEANUP=" | ||
- | |||
- | # limits for empty pre-post-pair cleanup | ||
- | EMPTY_PRE_POST_MIN_AGE=" | ||
- | </ | ||
- | |||
- | **__Erklärungen__**: | ||
- | |||
- | * <code ini># run daily number cleanup | ||
- | NUMBER_CLEANUP=" | ||
- | |||
- | Falls nicht bereits auf **" | ||
- | |||
- | * <code ini># limit for number cleanup | ||
- | # Tachtler | ||
- | # default: NUMBER_MIN_AGE=" | ||
- | NUMBER_MIN_AGE=" | ||
- | |||
- | 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=" | ||
- | NUMBER_LIMIT=" | ||
- | |||
- | Anzahl der zu speichernden **Snapshots**. | ||
- | |||
- | * <code ini># Tachtler | ||
- | # default: NUMBER_LIMIT_IMPORTANT=" | ||
- | NUMBER_LIMIT_IMPORTANT=" | ||
- | |||
- | Anzahl der zu speichernden - **__wichtigen__** - **Snapshots**. | ||
- | |||
- | * <code ini># create hourly snapshots | ||
- | # Tachtler | ||
- | # default: TIMELINE_CREATE=" | ||
- | TIMELINE_CREATE=" | ||
- | |||
- | Verhindert, das **__jede Stunde__** automatisch ein **Snapshot** erstellt wird. | ||
- | |||
- | ==== / | ||
- | |||
- | 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 | ||
- | * ''/ | ||
- | aktiviert werden: | ||
- | < | ||
- | [root@archlinux /]# systemctl enable --now snapper-cleanup.timer | ||
- | Created symlink / | ||
- | </ | ||
- | * //Die Angabe des Parameters '' | ||
- | |||
- | Ob dies korrekt funktioniert hat, kann mit nachfolgendem Befehl überprüft werden: | ||
- | < | ||
- | # systemctl list-timers | ||
- | NEXT | ||
- | Fri 2020-09-11 00:00:00 CEST 8h left n/a n/a man-db.timer | ||
- | Fri 2020-09-11 00:00:00 CEST 8h left Thu 2020-09-10 13:06:38 CEST 1h 55min ago shadow.timer | ||
- | 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 | ||
- | |||
- | 4 timers listed. | ||
- | Pass --all to see loaded but inactive timers, too. | ||
- | </ | ||
- | |||
- | ===== Installation: | ||
- | |||
- | Damit aus dem mit [[http:// | ||
- | * [[https:// | ||
- | erforderlich. | ||
- | |||
- | Mit nachfolgendem Befehl, kann [[http:// | ||
- | < | ||
- | [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? | ||
- | :: Retrieving packages... | ||
- | | ||
- | (1/1) checking keys in keyring | ||
- | (1/1) checking package integrity | ||
- | (1/1) loading package files [################################### | ||
- | (1/1) checking for file conflicts | ||
- | (1/1) checking available disk space [################################### | ||
- | :: Processing package changes... | ||
- | (1/1) installing grub-btrfs | ||
- | Optional dependencies for grub-btrfs | ||
- | snapper: Snapper support [installed] | ||
- | :: Running post-transaction hooks... | ||
- | (1/2) Reloading system manager configuration... | ||
- | (2/2) Arming ConditionNeedsUpdate... | ||
- | </ | ||
- | |||
- | Die Konfiguration für das Programm [[https:// | ||
- | * ''/ | ||
- | |||
- | :!: **HINWEIS** - **Anpassungen müssen hier __keine__ erfolgen!** | ||
- | |||
- | ===== Installation: | ||
- | |||
- | Hierbei handelt es sich um eine Reihe von '' | ||
- | |||
- | Dies bietet eine einfache Möglichkeit, | ||
- | |||
- | Mit nachfolgendem Befehl, kann [[https:// | ||
- | < | ||
- | [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? | ||
- | :: Retrieving packages... | ||
- | | ||
- | (1/1) checking keys in keyring | ||
- | (1/1) checking package integrity | ||
- | (1/1) loading package files [################### | ||
- | (1/1) checking for file conflicts | ||
- | (1/1) checking available disk space [################### | ||
- | :: Processing package changes... | ||
- | (1/1) installing snap-pac | ||
- | :: 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. | ||
- | </ | ||
- | |||
- | ===== Installation: | ||
- | |||
- | '' | ||
- | |||
- | 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: | ||
- | < | ||
- | [root@archlinux ~]# gpg --keyserver keys.openpgp.org --recv-keys EB4F9E5A60D32232BB52150C12C87A28FEAC6B20 | ||
- | gpg: / | ||
- | gpg: key 12C87A28FEAC6B20: | ||
- | gpg: Total number processed: 1 | ||
- | gpg: | ||
- | </ | ||
- | |||
- | Falls der Shclüssel __nicht__ auf einem " | ||
- | < | ||
- | -----BEGIN PGP PUBLIC KEY BLOCK----- | ||
- | |||
- | xsFNBFm0eMoBEAC3SoCJFZrwfCQdalSM/ | ||
- | G4zbgQEGTgLx33JRZ0ZPUsppcvrdka4VnhrjM3Lmag8QfHrIF+2Z6zo0h3TIk9FL | ||
- | RVqBpO3qkojAIVLc4Ar6cq2t8u2rGgppsVtkAqmA4V8QmBU92yGiDVKerPk0NAIA | ||
- | / | ||
- | 4kY7esatfjFQI6/ | ||
- | R6DzUBPvh/ | ||
- | iMJz5bqC2x9UVNTSyTtIBO8ZqjQ/ | ||
- | yfM3qZGNU0F9u2WnzlGO0BAFi8gzU4QoGaAixUmfCEyWb9v3F2r6fTCFq5yoP6QG | ||
- | nKSeCWF4SinMLe0yaqCkWHd2+ws/ | ||
- | 3geNp7GNA0J5a4yd3E+xvY65Gbcl9f400LiWQ7CygwE8Cgg5qxTm4ER53FOTIOZL | ||
- | 3c9N2RXI5L0ryXYO9UGr83BSAik0guNupwEi4GsmmbwL5XPHO6B62HEcMwARAQAB | ||
- | zRxNYXhpbSBCYXogPHBncEBtYXhpbWJhei5jb20+wsGRBBMBCgA7AhsDBQsJCAcD | ||
- | BRUKCQgLBRYCAwEAAh4BAheAFiEE60+eWmDTIjK7UhUMEsh6KP6sayAFAlntK2oC | ||
- | GQEACgkQEsh6KP6sayAf3xAAkWarCJndesbZB8fmUsU9NnK0VBr1lGUu4S2CoNT8 | ||
- | QJc5vJnhyM23k+ygrZ8U4hlbM4CWCee0Iy19EN62bUnw5EmuzOjMYtHx7WYw+a+i | ||
- | dLA9r3Hc47gjSKqVPx0IAze+V/ | ||
- | enARz/ | ||
- | iWeNC6ysWCfIhws8yFpioX9bleGCv606BzR0F6BVtUj0ZtaBqdTZ/ | ||
- | EF3rU0GyPyU+v1vjNU/ | ||
- | HKOFYAIE4V4KoJP3njHj3S8QOO8KY51KrCP4t387WssNS3yzgLArY0Mz+gWimgBw | ||
- | 1DdAx4O5OBAMiBI5i/ | ||
- | XK5JZZ0H4DLtei1CPy3oRjQ28z687pE30SoL6kjRRUQzRvZM/ | ||
- | Q/ | ||
- | iX7dUJeNIUTMg1r+IpVewScaOIOlpkbjZrwpqT5rxwQqxAriJ3XxlenUh9T7FXIl | ||
- | 8oTCwY4EEwEKADgWIQTrT55aYNMiMrtSFQwSyHoo/ | ||
- | AwUVCgkICwUWAgMBAAIeAQIXgAAKCRASyHoo/ | ||
- | 2db1c96oHEtOlSBuhx+bqeZWzt26aAJdMwRVH4MtvRLQk1KTXmvwM+/ | ||
- | bjTpN2QfRRpoJlWzaFIVVunkUe/ | ||
- | fzewxWVqbd2wmesUUhGavbtrTYP26ARuRgchWs757aUiwXQ1S1BMLkIm4J+zr8iM | ||
- | kOU5P0hteHHJtIMFesN/ | ||
- | ZNRKkZYOvNxagM6axzWOUxR2W1DM7LsYOYKsbRAetrs+ZQHwqXpni0WyZTRkuRJU | ||
- | lF5gljXa+CToy0tkJHe+mDJesxJOgvHa7nwNFf9vi+8GDkRQmtoQLsR6cXFQ8i5C | ||
- | kNSTCj0WNiwcUPm5zSUamoQYvWAISGVhRkkJcp5vUJ2IVsJ35jsXuUzEAGY9lFM9 | ||
- | VtC/ | ||
- | x698WOZkW9EdG0OIonRKOHh7pHymjgOni7cPbmj5KOQewy2onXoTJUmmEOigt+0m | ||
- | E01vKEMG5BWLSn7l/ | ||
- | dx8SNS8KZ1xpEZNDEkN5UeAN+M7BTQRZtHkOARAAvEqI/ | ||
- | W9FxRinWr4+gJB7GxrEdiV3TVKElUvk71eA8ztrseBB3k+0FCNME8CwHE7fzAl0W | ||
- | fGh1U+VRzfUYy0ZwyJFDkUcm7xJqSlHdtpwl6QnyFJ2ZBxUSCjqOWihrMYZJqjE1 | ||
- | jW9vrUuTz9AG9DWhOjJj8ChiHwe1C3Ud/ | ||
- | zlzyrAfMgiaS6+/ | ||
- | 8ZjWR5whpKm+agutf+WRm9Tg5Z4z35AnpF0w1ld1OfXy5XWdJ4Sfi0fbBgOyG9bB | ||
- | Icj0Y/ | ||
- | yNd1YScc7xDISptkFNiwWcJBav2C+A3zyFfE9AOIVpARfNaMS94knbo/ | ||
- | rmpnYiUP3NQsfq77KNVsyhqkTM2AGZfoy9XR9DreEaXE6oVIbbPnxPevUGEwDQMJ | ||
- | J4JewoM+H0VeKQYMKnzLJqUD3gh5U324mF0NpwGtrsuNLR0mH9DpWuKxSdv9LCcF | ||
- | RAFvgd8vDnicwthtnoQ1I2LRMhbQkdanJBJC7Uu5gYf3AAtgLe/ | ||
- | qiGNmZ7lWwxBOXF72i0AEQEAAcLBdgQYAQoAIBYhBOtPnlpg0yIyu1IVDBLIeij+ | ||
- | rGsgBQJZtHkOAhsMAAoJEBLIeij+rGsg0sMQAKgp6J8YcG3jS/ | ||
- | RzpWqCpnAQpvMStCFNdEtwTJVDnji4Mbc/ | ||
- | AfnWvxf85qaxG8L6VEEwvXVyh45OcMBYi// | ||
- | 0wKntKw7mDsQSqS3AqB/ | ||
- | P15g4n6MCr/ | ||
- | / | ||
- | tkYJ9zsrhF5jX2s3Sztc+nTNFi/ | ||
- | jbonBciYjOPDKTm3ORsfVF2OCfQapu7RIN7FBtYeUCWVRUGUdBrI+5lm0Aq7ZFRV | ||
- | aElx7hYMSyntS0U5GjUQ6IPtMgOjPsEfpmf1IRC3DLFsdsanJg9s9MtN8rn1UP5q | ||
- | 5QwkgiyCkJ8b07ZByzSjH7KF94XSWodVP7008s2VuATgZef4bvc3kjJ/ | ||
- | L0Ib8G0hCuyZCOn1PPulDjZbchYBgzRWBPU540DLVjODY77ZxwKjB6NFx93C55I+ | ||
- | eQl6SfWqrO0UoIg/ | ||
- | Cdt47GYMYBVxlNCzWTXMwD4DvbCA6JgG/ | ||
- | pCwYPs3sdcEaARd51W3t3OkFlzlBfLKrQb5JjCIOMa04cwF676yA+12CAlPIRfxx | ||
- | lJ0wa/ | ||
- | fhjieD/ | ||
- | crTTE3mCHXppxc9J7+5whSCaSQWKuPba8cxeXdm+zENs1IZBLaIPjWtd8Bm1nOav | ||
- | jZ3wWsR4LJnIvoN1XVOW+nVKzIK1dd0Dwgn8uqE2e1N1Px9FfSAkj5QV7A6GfeRe | ||
- | 9FNEswOgMYzFJjFhey+2EF3KKqgFnZwLGjEdsIFXHxWzFzKUzQmcQk+JCzjFvz4D | ||
- | pHTW9KdvW5oasUeeVSRDLhCE3BW4OPQDJ2AxYmHK6YogmU/ | ||
- | oUYzHPOQEaEWuxeYCqWIqCsgb6jdMOD979qH9UDJWrwxrnw5JBvphsJFMf49OoDd | ||
- | vrQ3hI+nWB6ckUIo07nhNLM6MYG0lvXyeIss5xq956Wh6tMYOtLkxoD55DJhIOsY | ||
- | q0o+/ | ||
- | ePgCGwICQAkQEsh6KP6sayDBdCAEGQEKAB0WIQSAU+uIh5poy0hz0ysBH9xS2oOT | ||
- | NQUCWbR4+AAKCRABH9xS2oOTNXh2D/ | ||
- | 7lzvV4OMWWgBJpztyQA7vuuNaN6C0oARRr8Gce6WVe06jWYevB2fcy23fB4IwrxJ | ||
- | ZZxWfSLZH2jFx7XH62bT5ds9uPRlaFSZ1GhrmmILUPaYOsYfyKUnmqPhiya1B56L | ||
- | ZSgUsi3bfxBAI2aalymcfscep/ | ||
- | XyoOerJsSQjxUh4Ksdl8dPUUO/ | ||
- | ECkRS96+p92AIdHh1Ll1jcp1bvcaRODVH9mHsniv2M4XntgaSN9p4GM4dFi6rGz/ | ||
- | HuaoBON5Ljenh1vvcOhXLWmAAr7WYDmftc362FyD7fLu9NoTLqDyl3ZVRBwVQGcp | ||
- | 8yIVU6Zk1li2XgloxPJA+qEEznEbMh/ | ||
- | aULAx1qolcsP3lB/ | ||
- | 0HkdOQnb4M7k/ | ||
- | +uglJPHtooTtulCLpj7k8OpPjQCvyb+6j9/ | ||
- | PtMTsnfS6r9pD/ | ||
- | WhhscV3y48YPIufGmFLyqJ8DJHaJ4rrWByOuFsORglSJ09SC40isaZnlGIZDrEsD | ||
- | ihKA8BI5ucR/ | ||
- | 8Uj80qnEl3l/ | ||
- | xwr/ | ||
- | Meg5auhlk3k9quYOfeNxA+xGlVGg4/ | ||
- | 7NYBX2INOrBwgB5mbT+8ANkJ/ | ||
- | mYIG9zFce873ZDHPr+ukeNtAH+iAPwrs1hC1KjuLczPttrtlHOoJZlL4oYE7Q2vB | ||
- | WazZmXkwcVZMogYMjVCYSKX9Q1GWbUAWxKoq0DwKm4nX7pCONHBmJ7rKsBuBU2b4 | ||
- | qmLQOdE5PbX6V0pb20uSWr3cc44u74wXmGaAHChkAmQZ+zLyzjt7I6Dt4f/ | ||
- | ChtWnCP7cONOIgcwPZ+4P7sTJTxgqleryKmSbFTYVMTpR6YT4UUmwAUPdM7BTQRZ | ||
- | tHk5ARAA2lAm6kppc+qreW0Ybbub1vv49EC94UCTR+NaX093O8iOBaFVXzOnXRW7 | ||
- | HVsymUaEtejq69crxKJFhhPNKCK7VfBFatFEFIVRYOuyw/ | ||
- | iog1MF2PzTIT68I2JoigCtGHwA3eqDjzSnyiZwFSB0ZDtWX3jkuqXWILseztHLia | ||
- | 9RH1P5qeNuPcqwPXzOH4m1bbibP2j0p/ | ||
- | VjXBSqy3iR1/ | ||
- | LPO+yTtqpLva3uFomt5NN8ryy/ | ||
- | 0XIhV8GQAaGLO4I7dIEdITkO+ozu2P13mjdD14qJ6Ffq1CGyP7MvQxlFf8D+vrhi | ||
- | 4iv1Tv3ywlTcd2H8m/ | ||
- | zvxfDV6+vP9hSvphyzf7ypEZNMzBcT84IvWXi6K/ | ||
- | GW+GpH521iDRDvQbYKOusgntfuTpiL8rmB3I3MUhXWw4JBiqk+zFB6xS564STTR4 | ||
- | o1GfXTZ4OrmAt2gYzytc4X8c+wmmAkbv1QfXs1oLCUQ9NIj/ | ||
- | AQoAIBYhBOtPnlpg0yIyu1IVDBLIeij+rGsgBQJZtHk5AhsgAAoJEBLIeij+rGsg | ||
- | lakQAK7YYeNSdTGRyGu7ROBrW+BeSujS+YAlcLt7sX207ZeYIfw26g6xfM71sJPR | ||
- | uuoxbHxdqimb3zw6jq/ | ||
- | NsjG1cKPd+BwdxX7Ihd2Lz/ | ||
- | iHcwBQmEdCuVI1YI769POVCYpO2snls3IO93jKmdFpb441iE9ik4w8hGuHvYNvQa | ||
- | 1QfVwy6+Ip03qnh53nRHTAfxQ307nywieNJJzeH+T0xx/ | ||
- | 8SXL28OYNMF9erCzUA08U7XnoDC23c0oaugd1vSvWZbj50C1PpZJMnGuB7Pr0acZ | ||
- | 8tr/ | ||
- | inL1WSIR+ym+jRS2JrRGGHNtE0zeOQg5cfekcVHEj21C94vdpZi+ivPaPZzGXbeu | ||
- | VSeFvi0unz80nNwDAUDTg2zJiT/ | ||
- | 8dtMqb3VvOQm5lJLWsn2fVJ2o5JOZ4Jn7l0hV5QUQ1R25VAAB6JZ+Skq8UAN3eI9 | ||
- | WyHWK1yMlv1wfZrM3DMZhg/ | ||
- | =Ooef | ||
- | -----END PGP PUBLIC KEY BLOCK----- | ||
- | </ | ||
- | |||
- | < | ||
- | [root@archlinux ~]# gpg --import EB4F9E5A60D32232BB52150C12C87A28FEAC6B20.asc | ||
- | </ | ||
- | |||
- | Mit nachfolgendem Befehl, kann [[https:// | ||
- | < | ||
- | [root@archlinux ~]# pikaur -S snap-pac-grub | ||
- | Reading repository package databases... | ||
- | Reading local package database... | ||
- | Resolving AUR dependencies... | ||
- | |||
- | :: AUR package will be installed: | ||
- | | ||
- | |||
- | :: Proceed with installation? | ||
- | :: [v]iew package details | ||
- | >> 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 | ||
- | | ||
- | 100 | ||
- | 100 1129 100 1129 0 | ||
- | -> Downloading snap-pac-grub-1.0.4.tar.gz.sig... | ||
- | % Total % Received % Xferd Average Speed | ||
- | | ||
- | 100 | ||
- | 100 | ||
- | ==> 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/ | ||
- | Service runtime: 2.328s | ||
- | |||
- | Command ' | ||
- | :: 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 " | ||
- | -> 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/ | ||
- | 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? | ||
- | (1/1) checking keys in keyring | ||
- | (1/1) checking package integrity | ||
- | (1/1) loading package files [#################################### | ||
- | (1/1) checking for file conflicts | ||
- | (1/1) checking available disk space [#################################### | ||
- | :: 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 | ||
- | :: 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: / | ||
- | Found initrd image: / | ||
- | 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 ' | ||
- | # Found snapshot: 2020-09-17 11:26:42 | snapshots/ | ||
- | # Found snapshot: 2020-09-17 11:26:42 | snapshots/ | ||
- | # Found 2 snapshot(s) | ||
- | ###### - Grub-btrfs: Snapshot detection ended - ###### | ||
- | done | ||
- | </ | ||
- | |||
- | :!: **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: | ||
- | < | ||
- | [root@archlinux ~]# snapper list | ||
- | # | Type | Pre # | Date | User | Cleanup | Description | ||
- | ---+--------+-------+----------------------------------+------+---------+-----------------------------------------------------------------------------+--------- | ||
- | 0 | single | | ||
- | 1 | pre | | Thu 17 Sep 2020 11:26:42 AM CEST | root | number | ||
- | 2 | post | ||
- | </ | ||
- | |||
- | ===== Praxis ===== | ||
- | |||
- | ==== Auf einen snapshot zurücksetzen ==== | ||
- | |||
- | Nachfolgender soll das Programm '' | ||
- | |||
- | Mit nachfolgendem Befehl, kann '' | ||
- | < | ||
- | [root@archlinux ~]# pacman -S screenfetch | ||
- | resolving dependencies... | ||
- | looking for conflicting packages... | ||
- | |||
- | Packages (18) bc-1.07.1-4 | ||
- | libxcomposite-0.4.5-3 | ||
- | libxfixes-5.0.3-4 | ||
- | libxrender-0.9.10-4 | ||
- | xcb-proto-1.14-1 | ||
- | xorgproto-2020.1-1 | ||
- | |||
- | Total Download Size: 3.95 MiB | ||
- | Total Installed Size: 17.84 MiB | ||
- | |||
- | :: Proceed with installation? | ||
- | :: Retrieving packages... | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | (18/18) checking keys in keyring | ||
- | (18/18) checking package integrity | ||
- | (18/18) loading package files [################ | ||
- | (18/18) checking for file conflicts | ||
- | (18/18) checking available disk space [################ | ||
- | :: Running pre-transaction hooks... | ||
- | (1/1) Performing snapper pre snapshots for the following configurations... | ||
- | ==> root: 9 | ||
- | :: Processing package changes... | ||
- | ( 1/18) installing bc [################ | ||
- | ( 2/18) installing xcb-proto | ||
- | ( 3/18) installing libxdmcp | ||
- | ( 4/18) installing libxau | ||
- | ( 5/18) installing libxcb | ||
- | ( 6/18) installing xorgproto | ||
- | ( 7/18) installing libx11 | ||
- | ( 8/18) installing libxext | ||
- | ( 9/18) installing libxi | ||
- | (10/18) installing libxfixes | ||
- | (11/18) installing libxtst | ||
- | (12/18) installing libxxf86vm | ||
- | (13/18) installing libxrender | ||
- | (14/18) installing libxcomposite | ||
- | (15/18) installing libxinerama | ||
- | (16/18) installing xorg-xdpyinfo | ||
- | (17/18) installing xorg-xprop | ||
- | (18/18) installing screenfetch | ||
- | 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: 10 | ||
- | (4/4) Generate GRUB config to let grub-btrfs detect new snapshots | ||
- | Generating grub configuration file ... | ||
- | Found linux image: / | ||
- | Found initrd image: / | ||
- | Found fallback initrd image(s) in /boot: initramfs-linux-lts-fallback.img | ||
- | ###### - Grub-btrfs: Snapshot detection started - ###### | ||
- | # Info: Separate boot partition detected | ||
- | # Info: snapper detected, using config ' | ||
- | # Found snapshot: 2020-09-10 16:02:20 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 16:02:19 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:45:23 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:45:23 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:21 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:21 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:17 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:17 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:39:29 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:39:29 | snapshots/ | ||
- | # Found 10 snapshot(s) | ||
- | ###### - Grub-btrfs: Snapshot detection ended - ###### | ||
- | done | ||
- | </ | ||
- | |||
- | Anhand der Ausgabe bei der Installation, | ||
- | - Snapshot: '' | ||
- | - Snapshot: '' | ||
- | |||
- | Dies kann auch durch Abfrage mit nachfolgendem Befehl bestätigt werden: | ||
- | < | ||
- | [root@archlinux ~]# snapper list | ||
- | # | Type | Pre # | Date | User | Cleanup | Description | ||
- | ----+--------+-------+----------------------------------+------+---------+-----------------------------------------------------------------------------+--------- | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | 10 | post | ||
- | </ | ||
- | |||
- | Eine Überprüfung, | ||
- | < | ||
- | root@archlinux ~]# screenfetch | ||
- | | ||
- | .o+` | ||
- | | ||
- | `+oooo: | ||
- | | ||
- | | ||
- | | ||
- | `/ | ||
- | | ||
- | `/ | ||
- | | ||
- | .oossssso-````/ | ||
- | | ||
- | : | ||
- | / | ||
- | | ||
- | `+sso+: | ||
- | | ||
- | | ||
- | [root@archlinux ~]# | ||
- | </ | ||
- | |||
- | Um jetzt die Installation von '' | ||
- | < | ||
- | [root@archlinux ~]# snapper -v undochange 9..10 | ||
- | create:0 modify:3 delete:4306 | ||
- | ... | ||
- | </ | ||
- | |||
- | Ein erneuter Aufruf von '' | ||
- | < | ||
- | [root@archlinux ~]# screenfetch | ||
- | -bash: / | ||
- | </ | ||
- | |||
- | ==== In einen snapshot starten (booten) ==== | ||
- | |||
- | Alle möglichen **Snapshots** in die gestartet werden kann, sind in einem **Untermenü** beim Neustart in [[https:// | ||
- | |||
- | {{: | ||
- | |||
- | Druch Auswahl des [[https:// | ||
- | |||
- | {{: | ||
- | |||
- | Durch Auswahl des obersten Menüpunktes, | ||
- | |||
- | {{: | ||
- | |||
- | Nach einem erfolgeichen Startvorgang (booten), kann das Programm '' | ||
- | < | ||
- | [root@archlinux ~]# screenfetch | ||
- | | ||
- | .o+` | ||
- | | ||
- | `+oooo: | ||
- | | ||
- | | ||
- | | ||
- | `/ | ||
- | | ||
- | `/ | ||
- | | ||
- | .oossssso-````/ | ||
- | | ||
- | : | ||
- | / | ||
- | | ||
- | `+sso+: | ||
- | | ||
- | | ||
- | [root@archlinux ~]# | ||
- | </ | ||
- | |||
- | :!: **ACHTUNG** - **Der gestartet Snapshot ist ein " | ||
- | |||
- | Der Versuch in das **Btrfs: Subvolume - ''/'' | ||
- | < | ||
- | [root@archlinux ~]# touch /test.txt | ||
- | touch: cannot touch '/ | ||
- | </ | ||
- | |||
- | 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, | ||
- | < | ||
- | [root@archlinux ~]# mount | grep /snapshots/ | ||
- | /dev/vda2 on / type btrfs (rw, | ||
- | </ | ||
- | |||
- | 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: | ||
- | < | ||
- | [root@archlinux ~]# snapper -a classic rollback 10 | ||
- | Ambit is classic. | ||
- | Creating read-only snapshot of current system. (Snapshot 11.) | ||
- | Creating read-write snapshot of snapshot 10. (Snapshot 12.) | ||
- | Setting default subvolume to snapshot 12. | ||
- | </ | ||
- | |||
- | Wichtig ist hier der **Snapshot** mit der Nummer **'' | ||
- | |||
- | :!: **WICHTIG** - **Leider kann nur über das editieren beim Starten via [[https:// | ||
- | |||
- | Nachfolgend ist wieder ein Neustart durchzuführen: | ||
- | |||
- | {{: | ||
- | |||
- | Durch Auswahl des [[https:// | ||
- | |||
- | {{: | ||
- | |||
- | Durch Auswahl des obersten Menüpunktes, | ||
- | |||
- | {{: | ||
- | |||
- | :!: **WICHTIG** - **Jetzt ist die [e]-Taste zu drücken um den [[https:// | ||
- | |||
- | {{: | ||
- | |||
- | :!: **WICHTIG** - **Ersetzen der Snapshot-Nummer '' | ||
- | |||
- | :!: **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 **'' | ||
- | < | ||
- | [root@archlinux ~]# mount | grep /snapshots/ | ||
- | /dev/vda2 on / type btrfs (rw, | ||
- | </ | ||
- | |||
- | Und ob dieser auch ein **__read-write__** **Snapshot** ist, wie nachfolgender Befehl beweist: | ||
- | < | ||
- | [root@archlinux ~]# touch /test.txt | ||
- | </ | ||
- | < | ||
- | [root@archlinux ~]# ls -la / | ||
- | -rw-r--r-- 1 root root 0 Sep 10 17:21 /test.txt | ||
- | </ | ||
- | |||
- | :!: **WICHTIG** - **Damit zukünftig von diesem Snapshot - __standardmäßig__ gestartet wird, muss nachfolgender Befehl ausgeführt werden:** | ||
- | |||
- | Hier wird der **Bootloader** - hier [[https:// | ||
- | < | ||
- | [root@archlinux ~]# grub-install /dev/vda | ||
- | Installing for i386-pc platform. | ||
- | Installation finished. No error reported. | ||
- | </ | ||
- | |||
- | Anschließend muss noch der **Bootloader** - hier [[https:// | ||
- | < | ||
- | [root@archlinux ~]# grub-mkconfig -o / | ||
- | Generating grub configuration file ... | ||
- | Found linux image: / | ||
- | Found initrd image: / | ||
- | Found fallback initrd image(s) in /boot: initramfs-linux-lts-fallback.img | ||
- | ###### - Grub-btrfs: Snapshot detection started - ###### | ||
- | # Info: Separate boot partition detected | ||
- | # Info: snapper detected, using config 'root | ||
- | Found snapshot: 2020-09-10 16:02:20 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 16:02:19 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:45:23 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:45:23 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:21 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:21 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:17 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:41:17 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:39:29 | snapshots/ | ||
- | # Found snapshot: 2020-09-10 15:39:29 | snapshots/ | ||
- | # Found 10 snapshot(s) | ||
- | ###### - Grub-btrfs: Snapshot detection ended - ###### | ||
- | done | ||
- | </ | ||
- | |||
- | Nach einem **erneuten Neustart** sollte jetzt der **Snapshot** mit der Nummer **'' | ||
- | |||
- | {{: | ||
- | |||
- | Eine Überprüfung, | ||
- | < | ||
- | root@archlinux ~]# mount | grep /snapshots/ | ||
- | /dev/vda2 on / type btrfs (rw, | ||
- | [root@archlinux ~]# | ||
- | </ | ||
- | |||
- | ==== Einen snapshot zu root zurücksetzen ==== | ||
- | |||
- | Nachdem in einen **__read-write__** **Snapshot** gestartet (boot) wurde, soll dieser wieder zum **'' | ||
- | |||
- | Dazu soll zuerst der **" | ||
- | < | ||
- | [root@archlinux ~]# rm /btrfs/root -rf | ||
- | </ | ||
- | |||
- | Anschließend sol leine **__read-write__** - **Snapshot** vom aktuellen **Snapshot** von dem gerade gebootet wurde via [[http:// | ||
- | < | ||
- | [root@archlinux ~]# btrfs subvol snapshot / | ||
- | Create a snapshot of '/ | ||
- | </ | ||
- | |||
- | Der so erzeugte **__read-write__** **Snapshot** in nachfolgendem Verzeichnis mit nachfolgendem Namen | ||
- | * ''/ | ||
- | muss nun noch **umbenannt** werden, was mit nachfolgendem Befehl durchgeführt werden soll: | ||
- | < | ||
- | [root@archlinux ~]# mv / | ||
- | </ | ||
- | |||
- | Abschließend muss nun die [[https:// | ||
- | * ''/ | ||
- | noch entsprechend angepasst werden. | ||
- | |||
- | < | ||
- | [root@archlinux ~]# vim / | ||
- | </ | ||
- | |||
- | :!: **WICHTIG** - **'' | ||
- | |||
- | :!: **HINWEIS** - **Alle Einträge mit '' | ||
- | |||
- | Nachfolgend eine Liste der relevanten Stellen (**nur relevanter Ausschnitt**): | ||
- | |||
- | * <code ini> | ||
- | |||
- | Eine Suche im Editor nach '' | ||
- | |||
- | * <code ini> | ||
- | |||
- | **'' | ||
- | |||
- | * <code ini> | ||
- | |||
- | **'' | ||
- | |||
- | * <code ini> | ||
- | </ | ||
- | |||
- | **'' | ||
- | |||
- | < | ||
- | [root@archlinux ~]# systemctl reboot | ||
- | </ | ||
- | |||
- | Nach einem Neustart, sollte nun wieder **'' | ||
- | |||
- | {{: | ||
- | |||
- | Eine Überprüfung, | ||
- | < | ||
- | [root@archlinux ~]# mount | grep /root | ||
- | /dev/vda2 on / type btrfs (rw, | ||
- | [root@archlinux ~]# | ||
- | </ | ||
- | |||
- | Anschließend soll das **Subvolume** - **''/'' | ||
- | < | ||
- | [root@archlinux ~]# btrfs subvolume set-default 5 / | ||
- | </ | ||
- | |||
- | Zur Überprüfung kann nachfolgende Befehl verwendet werden: | ||
- | < | ||
- | [root@archlinux ~]# btrfs subvolume get-default / | ||
- | ID 5 (FS_TREE) | ||
- | </ | ||
- | |||
- | Nun können auch beispielsweise **alle** **Snapshots** mit nachfolgendem Befehl gelöscht werden: | ||
- | < | ||
- | [root@archlinux ~]# snapper delete 12 | ||
- | [root@archlinux ~]# snapper delete 11 | ||
- | [root@archlinux ~]# snapper delete 10 | ||
- | [root@archlinux ~]# snapper delete 9 | ||
- | [root@archlinux ~]# snapper delete 8 | ||
- | [root@archlinux ~]# snapper delete 7 | ||
- | [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 | ||
- | [root@archlinux ~]# snapper delete 1 | ||
- | </ | ||
- | |||
- | Abschließend würde dann die Anzeige aller **Snapshots** wie folgt aussehen: | ||
- | < | ||
- | [root@archlinux ~]# snapper list | ||
- | # | Type | Pre # | Date | User | Cleanup | Description | Userdata | ||
- | ---+--------+-------+------+------+---------+-------------+--------- | ||
- | 0 | single | | ||
- | </ | ||
- | |||
- | Auch die Anzeige des via **BtrfS** verwendeten Speicerplatzes zeigt nur die für **'' | ||
- | < | ||
- | [root@archlinux ~]# df -Th | grep /dev/vda | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | </ | ||
- | bzw. | ||
- | < | ||
- | [root@archlinux ~]# btrfs filesystem df / | ||
- | Data, single: total=2.01GiB, | ||
- | System, DUP: total=8.00MiB, | ||
- | Metadata, DUP: total=256.00MiB, | ||
- | GlobalReserve, | ||
- | </ | ||