Debian auf btrfs, fein gewürzt mit Timeshift – ein Serviervorschlag

Debian auf btrfs, fein gewürzt mit Timeshift – ein Serviervorschlag

Es war mal wieder soweit und es hat mir der Hafer gestochen und ich hatte bock auf was neues. Pop_os hat mir jahrelang treue Dienste geleistet nur bin ich nicht mehr einverstanden mit dem Weg den System76 mit der Entwicklung eingeschlagen hat, also habe ich mir ein paar Gedanken dazu gemacht:

Ich brauche als Streamer, Gamer, Contentcreator ein stabiles System mit guter Hardware-Unterstützung, also fixed Release/LTS aber ich brauche auch häufig die neuste Software bzw. Softwarefeatures,also doch Rolling-Release?
Naja ich habe mir dann mal wieder Manjaro angesehen und ausprobiert(mal wieder, weil ich eigentlich schon Jahren Manjaro nutze) und war eigentlich auch zufrieden nur kann ich mich mit einigen Umsetzungen in Manjaro nicht anfreunden also suchte ich weiter und dachte mir pop_os war absolut i.O. für mich also warum nicht zur Basis zurück kehren? Ubuntu mag ich nicht aufgrund einiger Software- und Systementscheidungen seitens Canonical also warum dann nicht einfach mal das Fundament von so vielen Distributionen ansehen und Debian ausprobieren.
Debian als Basis ist absolut unerschütterlich, wenns einmal läuft dann läufts, nur leider bleiben die Softwareversionen auf dem Stand des Releases. Dafür gibt es eine Lösung: Flatpak!!!(danke dafür).

Was ich bei Manjaro gesehen habe ist das Timeshift mit btrfs echt eine unglaubliche geniale Sache ist.
Sofern das System auf dem Timeshift mit btrfs richtig aufgesetzt ist. Timeshift erwartet, dass das System
nach dem Schema von 2 Subvolumens @ und @home aufgesetzt ist.
Manjaro macht das für euch bei der Installation, Debian nicht.
Übrigens Ubuntu macht das wieder automatisch für uns und bei pop_os ist es wieder nicht der Fall.

Naja wie auch immer wollte ich Debian mit Timeshift und btrfs-Snapshots nutzen und zu dem Ergebnis meiner Experimente kommen wir jetzt:

Als erstes gebe ich euch den Tipp Debian immer mit der aktuellen mini.iso zu installieren, weil die verdammt klein ist, immer die aktuellen Programme installiert und noch eine Menge mehr möglichkeiten im vergleich zu den normalen Installationsmedien bietet.
Die amd64-iso findet Ihr hier https://d-i.debian.org/daily-images/amd64/daily/netboot/mini.iso
Wenn Ihr eine andere braucht dann sucht diese hier https://d-i.debian.org/daily-images/

Mit der mini.iso startet man die Installation(ACHTUNG ich gehe von einem efi System aus, wenn Ihr das in einer VM ausprobiert denkt daran das efi zu aktivieren(erstes Bild zeigt leider den bios Mode))

1.
beim Start „Advanced options“ auswählen

um dann „Expert install“ wählen zu können.

3.
Dann einfach nach wunsch dem Installer Schritt für Schritt abarbeiten

Ein Vorteil der expert install ist übrigens die Frage nach dem Debian Zweig, so könnte man sich auch Debian als „unstable“ rolling-release installieren.

4. Dem Installer einfach folgen bis zur Festplatten-Partitionierung:

An der Stelle partitionieren wir Manuell nach dem Schema:

gpt-Partitionstabelle
512 MB EFI Partition
SWAP wenn gebraucht
Rest btrfs

Das ganze auf die Festplatte schreiben und im nächten Schritt NICHT das Basissystem installieren.

Der Debian Installer hat jetzt eine Partition mit btrfs erstellt und bereits ein Subvolume @rootfs erstellt.
Da wir für Timeschift @ und @home brauchen korrigieren wir das jetzt wie folgt.

5.
Wir müssen im Installer eine neue Shell öffnen und das machen wir mit strg+alt+F2
(es öffnet sich eine busybox, mit Enter kann man diese betreten)

danach die folgenden Befehle nacheinander ausführen:
(Pfade und Subvolids vom df und btrfs subvolume list müsst Ihr eurem System anpassen)

df
umount /target/boot/efi
umount /target
mount /dev/vda3 /mnt
cd /mnt
ls
btrfs subvolume create @
cp -r @rootfs/* @
btrfs subvolume delete @rootfs
ls
btrfs subvolume create @home
btrfs subvolume list .
mount -o rw,noatime,compress=zstd,ssd,subvolid=257,subvol=@ /dev/vda3 /target
mkdir -p /target/home
mkdir -p /target/.snapshots
mount -o rw,noatime,compress=zstd,ssd,subvolid=258,subvol=@home /dev/vda3 /target/home
ls
mkdir -p /target/boot/efi
mount /dev/vda1 /target/boot/efi/
cd
umount /mnt
cd /target/

Jetzt muss noch die Änderungen der mount-Points in der fstab übernommen werden mit

nano etc/fstab

folgendes Eintragen:
(UUIDs lsst ihr so wie sie bereits sind, ich habe die hier nur vereinfacht, Subvolids nehmt ihr natürlich auch eure)

UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXX    /    btrfs    rw,noatime,compress=zstd,ssd,subvolid=257,subvol=@    0    0
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXX    /home    btrfs    rw,noatime,compress=zstd,ssd,subvolid=258,subvol=@home    0    0


Tipp: erst eine Zeile fertig machen und dann mit strg+k ausschneiden und dann gleich zwei mal mit strg+u einfügen und die zweite Zeile einfach anpassen.
Das ganze mit strg+o speichern und mit strg+alt+F1 wieder in den Installer wechseln.

6.
Basissystem installieren wie gewohnt mit der von euch bevorzugten Software und Desktopenviroment.

7.
Bei der grub Installation wird kurz gefragt ob der grub noch auf einem alternativen Pfad installiert werdden soll? Einfach verneinen und die Installation abschließen.

8.
Jetzt wird noch etwas gewürzt und abgeschmeckt:

Einloggen und ein Terminal öffnen:
(wenn ich kein sudo habt dann ohne sudo und als root ausdühren)

sudo apt install build-essential git timeshift

Timesift als nächstet einrichten mit btrfs und Zeitplan nach eurem Geschmack.

danach wieder im Terminal

git clone https://github.com/wmutschl/timeshift-autosnap-apt.git /home/$USER/timeshift-autosnap-apt

cd /home/$USER/timeshift-autosnap-apt

sudo make install

In der /etc/timeshift-autosnap-apt.conf könnt Ihr das nach eurem Wünschen anpassen.

Als krönenden Abschluss noch im Terminal:

git clone https://github.com/Antynea/grub-btrfs.git

cd grub-btrfs

sudo make install

und dann einmal neustarten, fertig.

Jetzt haben wir ein Debian-System das einmal nach Zeitplan btrfs-Snapshots macht und zusätzlich vor jeder apt Aktion und ebenfalls es noch zusätzlich im grub Menü anlegt damit wir direkt in Snapshots booten können.

Lecker!!!

Jetzt könnt Ihr euer System einrichten und benutzen wie Ihr mögt.
Da das auf Debian funktioniert könnt Ihr das auch auf alle auf Debian basirenden Distros umsetzten, ich guck dich an pop_os. 😉

7 Kommentare zu „Debian auf btrfs, fein gewürzt mit Timeshift – ein Serviervorschlag“

  1. Ich hab meinen Fehler gefunden.

    Ich hab den Befehl „nano /etc/fstab benutzt anstatt „Nano etc/fstab“ wären ich im Target Ordner gewesen bin.

    Jetzt läufts. 😁

  2. Hallo,
    Vielen Dank für die ausführliche und gut erklärte Anleitung.
    Ich hab die Anleitung heute 2x mit Debian angewendet.
    Entweder hab ich einen Fehler gemacht oder der Debian installiert macht was durcheinander.
    Ich hab nach der Installation und vor dem ersten Neustart noch mal die Fstab angeschaut und zu diesem Zeitpunkt ist sie noch so wie in der Anleitung. Nach dem Neustart ist sie allerdings verändert und das subvolume @home ist nicht mehr vorhanden. Alles ist im subvolume @ installiert. Die subvolumes @ und @home sind aber noch vorhanden werden nur nicht mehr eingebunden.
    Kann jemand dieses Verhalten mal nachprüfen?

  3. Auch Linux Mint, das ja auf Ubuntu (und somit indirekt auf Debian) basiert hat Timeshift bereits ins System integriert. Wenn man als Dateisystem nicht btrfs verwendet hat bleibt bei Timeshift die Option rsync für die Sicherungen zu verwenden – dann benötigt man etwa mehr Platz auf der Festplatte im Gegenzug erhält man dann eine echte Kopie der der Systemdateien – was hilfreich sein könnte, wenn zwischen den Sicherungen relevante Bereiche der Festplatte kaputt gehen. Am Laptop habe ich im Alltag sonst keinen nennenswerten unterschied zwischen btrfs und rsync snapshots bemerkt. Vielen Dank für den Blogbeitrag!

  4. Hier – im Blog – fehlt, wie im Video gezeigt, noch der Schluss!
    Weil sonst bootet man den Snapshop aus Grub heraus und befindet sich dann ja innerhalb des Snapshots (dieser wurde dann noch nicht zurückgespielt).
    Das Video ist gut:
    https://www.youtube.com/watch?v=NGiwvZxyASw
    Hätte mir nur gewünscht, dass dort – zumindest in den Kommentaren – ausführlich geschildert wird wie man mit Timeshift (per Shell) den letzten Snapshot, welchen man gebootet hat, wieder einspielt.

    Des Weiteren:
    Was macht man, wenn man nicht nur „/“ und „/home“ benötigt, sondern weitere Partitionen wie z.B. „/var“ etc.? Also so, wie wenn das auf einem Server (ohne GUI) genutzt werden soll.

  5. Pingback: btrfs! Und jetzt? – SaintofSinner

  6. Hallo Max,
    ja man kann darauf verzichten, nur habe ich das noch nicht ausprobiert weil efi zum Standard wird bzw. geworden ist.

  7. Hallo, ein guter Blog!
    Kann auf gpt und efi in diesem Installationsverfahren verzichtet werden?

    LG
    Max

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert