Astos (Arch Snapshot Tree OS)
Eine unveränderliche Bogenbasis -Verteilung unter Verwendung von BTRFS -Snapshots

Inhaltsverzeichnis
- Was ist Astos?
- ASTOs im Vergleich zu anderen ähnlichen Verteilungen
- AST- und ASTOS -Dokumentation
- Installation
- Post -Installation
- Snapshot -Management und Bereitstellungen
- Paketverwaltung
- Zusätzliche Dokumentation
- Aktualisieren der Pacman -Schlüssel
- Speichern von Konfigurationsänderungen ändert sich in /etc beharrlich
- Doppelstart konfigurieren
- AST selbst aktualisieren
- Debugging ast
- Einrichten der AUR
- Bekannte Fehler
- Beitragen
- Gemeinschaft
Die Astos -Entwicklung ist derzeit inaktiv, siehe #33 (Kommentar)
Was ist Astos?
Astos ist eine moderne Verteilung, die auf Arch Linux basiert.
Im Gegensatz zu Arch verwendet es ein unveränderliches (schreibgeschütztes) Root-Dateisystem.
Die Software ist in einzelnen Snapshot -Bäumen installiert und konfiguriert, die dann bereitgestellt und in die Startseite eingeleitet werden können.
Es verwendet kein eigenes Paketformat oder Paketmanager, sondern stützt sich stattdessen auf Pacman von Arch.
Dies hat mehrere Vorteile:
Sicherheit
- Auch wenn eine Anwendung mit erhöhten Berechtigungen ausgeführt wird, kann sie keine Systembibliotheken durch böswillige Versionen ersetzen
Stabilität und Zuverlässigkeit
- Da das System nur als Lesen montiert wird, ist es nicht möglich, Systemdateien versehentlich zu überschreiben
- Wenn das System auf Probleme läuft, können Sie den letzten funktionierenden Snapshot innerhalb von Minuten problemlos rollen
- Atomic Updates - Das Aktualisieren Ihres Systems gleichzeitig ist zuverlässiger
- Dank der Snapshot -Funktion kann ASTOS innovative Software versenden, ohne instabil zu werden
- ASTOS benötigt wenig Wartung, da es ein integriertes vollautomatisches Update -Tool enthält, mit dem Snapshots vor Updates erstellt werden und automatisch überprüft werden, ob das System vor der Bereitstellung des neuen Snapshots ordnungsgemäß aktualisiert wurde
Konfigurierbarkeit
- Mit den in einem Baum organisierten Schnappschüssen können Sie problemlos mehrere verschiedene Konfigurationen Ihrer Software mit unterschiedlichen Paketen ohne Störungen zur Verfügung haben
- Zum Beispiel: Sie können einen einzelnen Gnome -Desktop installieren und dann 2 Snapshots oben - mit Ihren Videospielen mit dem neuesten Kernel und den Treibern und dem anderen für die Arbeit mit dem LTS -Kernel und der stabileren Software, je nachdem, was Sie versuchen möchten, leicht wechseln können
- Sie können Software auch problemlos ausprobieren, ohne sich Gedanken darüber machen zu müssen, Ihr System zu brechen oder sie mit unnötigen Dateien zu verschmutzen
- Dies kann auch für Multi-User-Systeme verwendet werden, bei denen jeder Benutzer über ein vollständig separates System mit unterschiedlicher Software verfügt und dennoch bestimmte Pakete wie Kernel und Treiber freigeben kann
- Mit ASTOS können Sie Software durch Chrooting in Snapshots installieren. Daher können Sie Software wie die AUR verwenden, um zusätzliche Pakete zu installieren
- Astos ist genau wie Arch, sehr anpassbar, genau auswählen, welche Software Sie verwenden möchten
Dank seiner Zuverlässigkeits- und automatischen Upgrades ist ASTOS für einzelne Verwendung oder eingebettete Geräte gut geeignet
Es sorgt auch für eine gute Workstation oder allgemeine Verwendungsverteilung unter Verwendung von Entwicklungscontainern und Flatpak für Desktop -Anwendungen
ASTOs im Vergleich zu anderen ähnlichen Verteilungen
- Nixos - Im Vergleich zu Nixos ist Astos ein herkömmlicheres System mit der Einrichtung und Aufrechterhaltung. Während Nixos mithilfe der NIX -Programmiersprache vollständig konfiguriert ist, verwendet Astos Arch's Pacman Paket Manager. ASTOS verbraucht weniger Speicher, und das Konfigurieren Ihres Systems ist schneller und einfacher (weniger reproduzierbar). Sie erhalten auch mehr Anpassungsoptionen. ASTOS ist FHS -konform und sorgt für eine ordnungsgemäße Softwarekompatibilität.
- ASTOS ermöglicht eine deklarative Konfiguration mithilfe von Ansible, für etwas ähnliche Funktionalität wie nixos
- Fedora Silverblue/Kinoite - Astos ist anpassungsfähiger, erfordert jedoch mehr manuelle Einrichtung. ASTOS unterstützt im Gegensatz zu Silverblue den Dual -Stiefel.
- OpenSuSe Microos - Astos ist ein anpassbareres System, erfordert jedoch erneut ein bisschen mehr manuelles Setup. Microos arbeitet ähnlich in der Art und Weise, wie es BTRFS -Schnappschüsse verwendet. Astos verfügt über eine offizielle KDE -Installation, unterstützt aber auch andere Desktop -Umgebungen, während Microos GNOME nur ordnungsgemäß unterstützt. ASTOS unterstützt den Dual-Stiefel sowie das Live-Ansehen des Systems und die Installation von Paketen ohne Neustart.
Installation
- Astos ist aus dem offiziellen Arch Linux Live ISO installiert, der unter https://archlinux.org/ verfügbar ist
- Wenn Sie Probleme bei der Installation von Paketen während der Installation treffen, stellen Sie sicher
- Sie benötigen eine Internetverbindung, um ASTOs zu installieren
- Derzeit versendet Astos 4 Installationsprofile, eine für minimale Installationen und zwei für Desktop, eine mit der Gnome -Desktop -Umgebung, eine mit KDE -Plasma und eine mit Mate, aber die Unterstützung für mehr DE wird hinzugefügt
- Das Installationsskript kann leicht konfigurierbar und für Ihre Anforderungen angepasst werden (es funktioniert jedoch ohne Änderungen gut)
Installieren Sie zuerst GIT - damit können wir das Installationskript herunterladen
Klon -Repository
git clone "https://github.com/lambdanil/astOS"
cd astOS
Trenn- und Formatantrieb
- Verwenden Sie bei der Installation auf einem BIOS -System eine DOS -Partitionstabelle (MBR)
- Auf EFI können Sie GPT verwenden
- Die EFI -Partition muss vor dem Ausführen des Installationsprogramms (
mkfs.fat -F32 /dev/<part> ) auf FAT32 formatiert werden.
lsblk # Find your drive name
cfdisk /dev/*** # Format drive, make sure to add an EFI partition, if using BIOS leave 2M free space before first partition
mkfs.btrfs /dev/*** # Create a btrfs filesystem, don't skip this step!
Installationsprogramm ausführen
python3 main.py /dev/<partition> /dev/<drive> /dev/<efi part> # Skip the EFI partition if installing in BIOS mode
Post -Installations -Setup
- Post -Installations -Setup ist nicht erforderlich, wenn Sie eine der Desktop -Editionen installieren (GNOME oder KDE)
- Auf der Archwiki-Seite finden Sie viele Informationen zum Umgang mit dem Einrichtung nach dem Installieren
- Hier ist ein kleines Beispiel für Setup -Prozedur:
- Erstellen Sie zunächst einen neuen Schnappschuss von
base mit ast clone 0 - Chroot in diesem neuen Snapshot (
ast chroot <snapshot> ) und mit dem Setup beginnen- Fügen Sie mit einem neuen Benutzerkonto hinzu:
useradd username - Legen Sie den
passwd username - Legen Sie nun ein neues Kennwort für Root User
passwd root fest - Jetzt können Sie zusätzliche Pakete (Desktop -Umgebungen, Containertechnologien, Flatpak) mit Pacman installieren
- Beenden Sie nach Abschluss den Chroot mit
exit 0 - Dann können Sie es mit
ast deploy <snapshot> bereitstellen
Zusätzliche Dokumentation
- Es wird empfohlen, sich auf das Arch -Wiki für Dokumentation zu beziehen, nicht Teil dieses Projekts
- Melden Sie Probleme/Fehler auf der Seite mit GitHub -Problemen
- Hinweis: Sie können
ast help verwenden, um ein kurzes Cheatsblatt aller verfügbaren Befehle zu erhalten
Basis -Schnappschuss
- Der Snapshot
0 ist für den Basissystem-Snapshot reserviert, kann nicht geändert werden und kann nur mit ast base-update aktualisiert werden
Snapshot -Management
Dateisystembaum anzeigen
- Die Ausgabe kann wie folgt aussehen:
root - root
├── 0 - base snapshot
└── 1 - multiuser system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
Das Sternchen zeigt an, welcher Snapshot derzeit standardmäßig ausgewählt ist
Sie können auch nur die Anzahl der aktuell gebooteten Schnappschüsse erhalten
Fügen Sie Snapshot Descritption hinzu
- Mit Snapshots können Sie ihnen eine Beschreibung hinzufügen, um die Identifizierung zu erleichtern
ast desc <snapshot> <description>
Einen Baum löschen
- Dies entfernt den Baum und alles seine Zweige
Benutzerdefinierte Startkonfiguration
- Wenn Sie eine benutzerdefinierte GRUB -Konfiguration verwenden müssen, Chroot in einen Snapshot und bearbeiten
/etc/default/grub , stellen Sie den Snapshot bereit und starten
Chroot in Snapshot
- Sobald sich im Chroot befindet, verhält sich das Betriebssystem wie normaler Bogen, sodass Sie Pakete mit Pacman oder ähnlichem installieren und entfernen können
- Führen Sie nicht AST in einem Chroot aus, es kann zu Schäden am System führen. Es gibt eine ausfällige Sicherheit, die mit
--chroot umgangen werden kann, wenn Sie wirklich müssen (nicht empfohlen) - Der Chroot muss ordnungsgemäß mit
exit 0 beendet werden, andernfalls werden die vorgenommenen Änderungen nicht gespeichert - Um die vorgenommenen Änderungen zu verwerfen, verwenden Sie stattdessen
exit 1 - Wenn Sie Chroot nicht mit dem "sauberen" Weg mit
exit 0 beenden, wird empfohlen, ast tmp auszuführen, um temporäre zurückgelassene Dateien zu löschen
- Sie können eine entsperrte Shell in den aktuellen Stiefel -Snapshot eingeben
- Die Änderungen an der Live -Sitzung werden nicht auf neuen Bereitstellungen gespeichert
Andere Chroot -Optionen
- Führt in Snapshot einen angegebenen Befehl aus
ast run <snapshot> <command>
- Führt einen bestimmten Befehl in Snapshot und allen Zweigen aus
ast tree-run <tree> <command>
Klonschnappschuss
- Dies klingt den Schnappschuss als neuer Baum
Klon einen Baum rekursiv
- Dadurch kloniert ein ganzer Baum rekursiv
ast clone-tree <snapshot>
Erstellen Sie einen neuen Baumzweig
- Fügt dem angegebenen Snapshot einen neuen Zweig hinzu
ast branch <snapshot to branch from>
Klonschnappschuss unter demselben Elternteil
Klonschnappschuss unter dem angegebenen Elternteil
- Stellen Sie sicher, dass Sie den Baum danach synchronisieren
ast ubranch <parent> <snapshot>
Erstellen Sie einen neuen Basisbaum
Snapshot einsetzen
- Starten Sie nach der Bereitstellung neu, um in den neuen Snapshot zu starten
Aktualisieren Sie die Basis, aus denen neue Schnappschüsse erstellt wurden
- HINWEIS: Die Basis selbst befindet sich at
/.snapshots/rootfs/snapshot-0 , wobei die spezifischen /var Dateien und /etc unter /.snapshots/var/var-0 und /.snapshots/etc/etc-0 liegen, jeweils, wenn Sie einen Konfigurationswechsel benötigen.
Paketverwaltung
Software -Installation
- Software kann auch mit Pacman in einem Chroot installiert werden
- AUR kann unter dem Chroot verwendet werden
- Flatpak kann für die anhaltende Paketinstallation verwendet werden
- Die Verwendung von Containern für zusätzliche Software -Installation ist ebenfalls eine Option. Eine einfache Möglichkeit, dies zu tun, ist mit Distrobox
ast install <snapshot> <package>
- Nach der Installation können Sie die neu installierten Pakete mit allen Zweigen des Baumes mit synchronisieren
- Das Synchronisieren des Baumes aktualisiert auch automatisch alle Schnappschüsse
- Wenn Sie ohne Aktualisierung synchronisieren möchten (könnte eine Paket -Duplikation in der Datenbank verursachen), dann verwenden Sie
AUR -Setup
- Astos unterstützt auch die AUR nativ
- Bevor wir AUR -Unterstützung aktivieren können, müssen wir zunächst sicherstellen, dass
paru nicht installiert ist:
ast remove <snapshot> paru
- Um diese Funktion zu verwenden, müssen wir zunächst die AUR -Unterstützung in der Snapshot -Konfiguration aktivieren:
EDITOR=nano ast edit-conf <snapshot> # set the EDITOR variable
- Jetzt müssen wir die folgende Zeile in die Datei hinzufügen:
- Speichern und aufhören
- Der AUR -Support ist jetzt aktiviert -
ast install und andere Vorgänge können jetzt wie gewohnt AUR -Pakete installieren
Software entfernen
- Für einen einzelnen Schnappschuss
ast remove <snapshot> <package or packages>
ast tree-rmpkg <tree> <pacakge or packages>
Aktualisierung
Es wird empfohlen, vor dem Aktualisieren einen Schnappschuss zu klonen
Dieses Update aktualisiert nur die Systempakete, um AST selbst zu aktualisieren. Siehe diesen Abschnitt
So aktualisieren Sie einen einzelnen Snapshot
- Um einen ganzen Baum rekursiv zu aktualisieren
Dies kann in einem Skript (dh einem Crontab -Skript) für einfache und sichere automatische Updates konfiguriert werden
Wenn das System nach einem Update unbootbar wird, können Sie zuletzt funktionierende Bereitstellung booten (im Men -Men -Menü auswählen) und dann einen Rollback durchführen
- Dann können Sie zu einem Arbeitssystem zurückbleiben
Extras
Behebung von Pacman -beschädigten Paketen / Schlüsselproblemen
- Der Pacman -Paketmanager von Arch's Pacman erfordert manchmal eine Aktualisierung der PGP -Schlüssel
- Um dieses Problem zu beheben, können wir einfach neu installieren, dass sie den Schlüsselbad wölben
ast install <snapshots> archlinux-keyring
Speichern von Konfigurationsänderungen in /etc
- Normalerweise sollte die Konfiguration mit
ast chroot durchgeführt werden, aber manchmal möchten Sie möglicherweise Änderungen anwenden, die Sie an dem Boot -System anhaltend vorgenommen haben - Verwenden Sie dazu den folgenden Befehl
- Auf diese Weise können Sie Ihr System konfigurieren, indem Sie wie gewohnt
/etc ändern und diese Änderungen dann speichern
Doppelstiefel
- ASTOS unterstützt den Dual -Stiefel mit dem Grub -Bootloader
- Verwenden Sie bei der Installation des Systems die vorhandene EFI -Partition
- Um den Dual-Boot zu konfigurieren, müssen wir zunächst das
os-prober Paket installieren:
ast install <snapshot> os-prober
- Jetzt müssen wir GRUB konfigurieren
ast chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit 0
- Stellen Sie jetzt einfach den Snapshot bereit, um den Bootloader neu zu konfigurieren
Wenn Windows erkannt wird, sollte AST die Ausgabe entlang der Found Windows Boot Manager on...
Möglicherweise müssen Sie zuerst ntfs-3g installieren und erneut ablegen, wenn Sie keinen Windows-Eintrag sehen.
AST selbst aktualisieren
- AST wird nicht neben dem System aktualisiert, wenn
ast upgrade verwendet wird - Manchmal kann es notwendig sein, AST selbst zu aktualisieren
- AST kann mit einem einzigen Befehl aktualisiert werden
Debugging ast
- Manchmal kann es notwendig sein, AST zu debuggen
- Kopieren Sie
ast an einen beliebigen Ort:
cp /usr/local/sbin/ast astpk.py
- Der folgende Befehl ist nützlich, da er Ausgänge von Befehlen beim Ausführen von astpk.py anzeigt:
sed -i -e s, 2>&1> /dev/null,,g astpk.py
Wenn Sie die ursprüngliche AST -Datei (möglich, aber nicht empfohlen) geändert haben, stellen Sie sie bitte wieder auf, wenn Sie fertig sind!
Bekannte Fehler
- Wenn Sie AST ohne Argumente ausführen - IndexError: Listenindex außerhalb des Bereichs listen
- Ausführen von AST ohne Root -Berechtigungen zeigt die Erlaubnis ab, die Fehler anstelle einer Fehlermeldung abgelehnt wurden
- Die Swap -Partition funktioniert nicht. Es wird empfohlen, stattdessen eine SwappFile oder ZRAM zu verwenden
- Docker hat Probleme mit Berechtigungen, um den Lauf zu beheben
sudo chmod 666 /var/run/docker.sock
- Wenn Sie auf Probleme stoßen, melden Sie sie auf der Seite der Probleme
Beitragen
- Code- und Dokumentationsbeiträge sind willkommen
- Fehlerberichte sind eine gute Möglichkeit, auch zum Projekt beizutragen
- Bevor Sie einen Pull -Anfrage senden, testen Sie Ihren Code und stellen Sie sicher, dass Sie ihn ordnungsgemäß kommentieren
Gemeinschaft
- Bitte zögern Sie nicht, sich mit uns zu diskordieren, um weitere Diskussionen und Unterstützung zu erhalten!
- Happy Sorge-Free Snapshotting!
Das Projekt ist im Rahmen der AGPLV3 -Lizenz lizenziert