projekte:raspberry_pi
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| projekte:raspberry_pi [2026-02-06 21:16] – [BTRFS] wene | projekte:raspberry_pi [2026-08-14 22:16] (aktuell) – Snapper installieren paul | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| Hier entsteht eine Sammlung an Anleitungen rund um's Raspberry Pi. | Hier entsteht eine Sammlung an Anleitungen rund um's Raspberry Pi. | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | Es empfiehlt sich, der jeweils aktuellen Installationsanleitung des Herstellers zu folgen. Hier trotzdem ein paar Tipps, die ich selbst immer mal wieder suche: | ||
| + | |||
| + | * SSH Server aktivieren: eine leere Datei namens '' | ||
| + | * Einen Benutzer vorkonfigurieren: | ||
| + | * Verfügbare WLAN Netzwerke auflisten: '' | ||
| + | * WLAN Verbindung herstellen: '' | ||
| + | |||
| ===== Backup ===== | ===== Backup ===== | ||
| Zeile 12: | Zeile 22: | ||
| - Die SD Karte aus dem ausgeschalteten RasPi entnehmen und mit einem anderen Computer verbinden. | - Die SD Karte aus dem ausgeschalteten RasPi entnehmen und mit einem anderen Computer verbinden. | ||
| - | - Sicherstellen, | + | - Sicherstellen, |
| - | - Herausfinden, | + | - Herausfinden, |
| - | - Eine leeres Verzeichnis erstellen. Das ist erforderlich weil "mksquashfs" | + | - Eine leeres Verzeichnis erstellen. Das ist erforderlich weil '' |
| - Das Image direkt in komprimiert auslesen. | - Das Image direkt in komprimiert auslesen. | ||
| - Den SquashFs Container mounten. | - Den SquashFs Container mounten. | ||
| Zeile 54: | Zeile 64: | ||
| ==== Zu BTRFS Konvertieren ==== | ==== Zu BTRFS Konvertieren ==== | ||
| - | Voraussetzung: | + | Voraussetzung: |
| Ablauf: | Ablauf: | ||
| - | - Raspberry Pi OS ganz normal installieren | + | - Raspberry Pi OS ganz normal installieren. |
| - | - Im installierten System das Paket " | + | - Im installierten System das Paket " |
| - | - Sauber herunterfahren | + | - Sauber herunterfahren: '' |
| - | - Die SD Karte entnehmen. | + | - Die SD Karte (oder den USB Stick) |
| - | - Mit einer anderen SD Karte booten. | + | - Mit einer anderen SD Karte (oder USB Stick) |
| + | - Falls nicht schon vorhanden, muss auf diesen System auch das Paket " | ||
| - Eine Liste mit den Dateisystemen ausgeben lassen: '' | - Eine Liste mit den Dateisystemen ausgeben lassen: '' | ||
| - | - Die zu konvertierende SD Karte in einem USB Kartenleser mit dem RasPi verbinden | + | - Die zu konvertierende SD Karte in einem USB Kartenleser mit dem RasPi verbinden. |
| - Liste der Dateisysteme aktualisieren: | - Liste der Dateisysteme aktualisieren: | ||
| - Das Dateisystem erst mal prüfen: '' | - Das Dateisystem erst mal prüfen: '' | ||
| Zeile 100: | Zeile 111: | ||
| - So, das sollte es nun gewesen sein. Jetzt könnte man natürlich alles erst sauber aushängen. Das macht das System aber auch automatisch wenn man es herunterfährt: | - So, das sollte es nun gewesen sein. Jetzt könnte man natürlich alles erst sauber aushängen. Das macht das System aber auch automatisch wenn man es herunterfährt: | ||
| - Nun die SD Karte wieder wechseln und Daumen drücken. 🤞 | - Nun die SD Karte wieder wechseln und Daumen drücken. 🤞 | ||
| + | |||
| + | ===== Journal Logging ===== | ||
| + | |||
| + | Die Standardkonfiguration des RasPi speichert die Journals nicht persistent. Vermutlich soll das die SD Karte schonen. Wenn man aber nachvollziehen will, was vor einem Neustart passiert ist, müssen die Daten natürlich (auf Kosten der Lebensdauer der SD Karte) persistent gespeichert werden. | ||
| + | |||
| + | Die Konfigurationsdatei ist ''/ | ||
| + | |||
| + | Allfällig bereits vorhandene Konfigurationsdateien unter ''/ | ||
| + | |||
| + | Spätestens nach 2 Neustarts müssten mit '' | ||
| + | |||
| + | ===== Home in ein eigenes Subvolume verlagern ===== | ||
| + | |||
| + | Btrfs nutzt Snapshots um einen den Zustand der Files festzuhalten. Diese lassen sich schnell und Platzsparend anlegen. Und das alles im laufenden Betrieb. | ||
| + | |||
| + | Snapshots sind auch gleichzeitig eigenständige Subvolumes. Bei vielen Linux-Betriebssystemen (wie z.B. bei CachyOS) werden per Default zwei Subvolumes verwendet: Eines für Root und eines für Home. Hier eine Anleitung, wie ein System, welches Btrfs mit nur einem Root-Subvolume, | ||
| + | |||
| + | < | ||
| + | ssh raspbian | ||
| + | |||
| + | sudo mount / | ||
| + | sudo btrfs subvolume snapshot /mnt/@ / | ||
| + | sudo btrfs subvolume snapshot /mnt/@ /mnt/@home | ||
| + | </ | ||
| + | |||
| + | Hier logge ich mich ein und mounte das Root-Device nochmals auf ''/ | ||
| + | |||
| + | < | ||
| + | ls /mnt/@ | ||
| + | cd / | ||
| + | sudo rm -rf home | ||
| + | sudo mkdir home | ||
| + | |||
| + | cd /mnt/@home | ||
| + | sudo rm -rf bin boot dev etc lib media mnt opt proc root run sbin srv sys tmp usr var | ||
| + | ls -alh | ||
| + | ls -alh home | ||
| + | sudo mv home/* | ||
| + | sudo rm -rf home | ||
| + | </ | ||
| + | Hier schaue ich in die gemounteten Subvolumes 'rein und lösche was jeweils zu viel ist. | ||
| + | |||
| + | < | ||
| + | sudo vi / | ||
| + | UUID=d1c58f64-016a-4c8d-91a2-43de1298c4ee | ||
| + | UUID=d1c58f64-016a-4c8d-91a2-43de1298c4ee | ||
| + | :wq | ||
| + | |||
| + | cd /mnt | ||
| + | findmnt | grep btrfs | ||
| + | sudo mv @ @old_root | ||
| + | findmnt | grep btrfs | ||
| + | sudo mv @new_root @ | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | |||
| + | < | ||
| + | cd /mnt | ||
| + | findmnt | ||
| + | sudo mv @ @old_root | ||
| + | findmnt | ||
| + | sudo mv @new_root @ | ||
| + | |||
| + | sudo reboot | ||
| + | </ | ||
| + | |||
| + | Hier wird das alte Subvolume '' | ||
| + | |||
| + | Mit einem Reboot kommt ''/ | ||
| + | |||
| + | < | ||
| + | sudo btrfs subvolume snapshot /mnt/@ / | ||
| + | sudo btrfs subvolume list / | ||
| + | sudo btrfs subvolume delete / | ||
| + | sudo btrfs subvolume delete / | ||
| + | </ | ||
| + | |||
| + | Hier nochmal, wie man Snapshots erstellt. Ein Befehl wie man diese auflistet. Und eines um ein Snapshot zu löschen. | ||
| + | |||
| + | ==== Snapper einrichten ==== | ||
| + | |||
| + | Prüfen ob snapper installiert ist. Snapper installieren. | ||
| + | |||
| + | < | ||
| + | dpkg -l | grep -e snapper | ||
| + | sudo apt install snapper | ||
| + | </ | ||
| + | |||
| + | ==== Einrichten und testen ==== | ||
| + | |||
| + | Konfiguration mit Namen " | ||
| + | |||
| + | < | ||
| + | sudo snapper -c root create-config / | ||
| + | sudo systemctl status snapper-timeline.timer | ||
| + | sudo snapper -c root create -d " | ||
| + | sudo snapper -c root list | ||
| + | </ | ||
| + | |||
| + | ==== Links ==== | ||
| + | |||
| + | Weitere Kommandos finden sich hier. Sortiert von kurzen nach ausführlicheren Artikeln: | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||
projekte/raspberry_pi.1770409017.txt.gz · Zuletzt geändert: von wene