
[Čeština] | [中文] | [پارسی]
Wir brauchen Ihre Hilfe, um diese Readme zu übersetzen. Schau hier!
Ashos (jedes hierarchische Snapshot -Betriebssystem)
Eine unveränderliche baumförmige Meta-Verteilung mit Schnappschüssen
(Nein, das ist keine weitere Haut/thematische "Distribution"!)
Bitte beachten Sie, dass die Implementierung für dieses Projekt für den Zweck dieses Projekts nicht wie in Zukunft an Rost, C, C ++ usw.
Inhaltsverzeichnis
- Was ist Ashos?
- Ashos im Vergleich zu anderen ähnlichen Verteilungen
- Dokumentation der Asche und Ashos
- Installation
- Post -Installation
- Snapshot -Management und Bereitstellungen
- Paketverwaltung
- Snapshot -Konfiguration
- Zusätzliche Dokumentation
- Aktualisieren der Pacman -Schlüssel
- Speichern von Konfigurationsänderungen in /etc. hartnäckig vorgenommen
- Doppelstart konfigurieren
- Asche selbst aktualisieren
- Verschiedenes
- Erweiterte Funktionen
- Multi-Boot
- Luks
- Verstürmbarkeitsschaltung
- Asche debuggen
- Debuggin Installer
- Bekannte Fehler
- Beitragen
- Gemeinschaft
- Todos
- Distrospezifische Notizen
- Bogen
- Aur
- Behebung von pacman -beschädigten Paketen oder wichtigen Problemen
- alpin
- Cachyos
- Debian
- Bemühungen
- Proxmox
- Ubuntu
Was ist Ashos?
Sie wollten immer Fedora Rawhide probieren, aber nach ein paar Tagen ging die Zerbrechlichkeit auf die Nerven. Dann haben Sie vielleicht Fedora Silverblue Rawhide ausprobiert, aber dann haben es komplizierte und langsame git-ähnliche Ostree-Operationen Ihre Stimmung getötet! Na ja, nicht mehr! Jetzt können Sie diese Distribose der blutenden Kante (und viele weitere Distributionen wie Debian Sid) mit mehr Seelenfrieden ausprobieren. Ashos bietet ultimative Flexibilität für die Installation von Betriebssystemen, beispielsweise können Sie problemlos ein unveränderliches Proxmox -VE einrichten!
Ashos ist eine einzigartige Meta-Verteilung, die:
- Ziel ist es, Unmutabilität selbst in Distributionen zu bringen, die nicht diese sehr nützliche Funktion haben, dh Arch Linux, Gentoo usw.
- Wickeln Sie sich um jede Linux -Verteilung, die Bootstraße (so ziemlich jede größere Verteilung)
- Ziele, ein universelles Installationsprogramm für verschiedene Distributiere und verschiedene Desktop -Umgebungen/Fenstermanager zu werden
- kann eine beliebige Anzahl von Distributionen installieren, bereitstellen und mehr
Ashos wurde ursprünglich von Arch Linux inspiriert und verwendet ein unveränderliches (schreibgeschütztes) Root-Dateisystem, um sich von jeder anderen Distribution abzuheben. Die Software ist in einzelnen Snapshot -Bäumen installiert und konfiguriert, die dann bereitgestellt und in die Startseite eingeleitet werden können. Es erfindet kein weiteres Paketformat oder Paketmanager, sondern stützt sich auf den nativen Paketmanager beispielsweise Pacman von Arch.
Asche ist eine der ältesten Bäume der Welt und inspirierte die Benennung von Ashos.
In Ashos gibt es mehrere Schlüsselwörter:
- Vanille: Wir versuchen, so nah an der "Vanilla" -Verversion der Installation der Zielverteilung zu sein.
- Minimalismus: Wir halten an einem LEGO -Build -System fest. Beginnen Sie klein und bauen Sie ein so komplexes System auf, wie Sie möchten. Der Schwerpunkt der Entwicklung liegt auf einem soliden minimal installierten Snapshot, basierend auf dem, auf dem der Benutzer unendlich unveränderliche Permutationen haben kann!
- Allgemeinheit: Wir bemühen uns, den häufigsten Nenner zwischen Distribos und Architekturen (X64, Aarch64, Sparc usw.) zu sorgen. Wenn es eine Auswahl zwischen Bequemlichkeit und Vollständigkeit/Allgemeinheit gibt, gehen wir mit letzterem. Um mit einem Beispiel zu klären, ist es möglicherweise einfacher, grub-btrfs zu verwenden, anstatt unseren eigenen GRUB-Update-Mechanismus zu implementieren. Da dieses bestimmte Paket jedoch möglicherweise nicht in allen Distrikten verfügbar ist, entwickeln wir eine aschosspezifische Lösung. Auf diese Weise können wir in Zukunft möglicherweise jede Distribution investieren!
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 ASHOS innovative Software versenden, ohne instabil zu werden
- Ashos benötigt wenig Wartung, da es über ein integriertes vollautomatisches Update -Tool verfügt
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 ASHOS können Sie Software installieren, indem Sie in Schnappschüsse chrootieren. Daher können Sie (z. B. in Bogengeschmack) Software wie die AUR verwenden, um zusätzliche Pakete zu installieren
- Ashos ist sehr anpassbar, Sie können genau auswählen, welche Software Sie verwenden möchten (genau wie Arch Linux)
Dank seiner Zuverlässigkeits- und automatischen Upgrades ist Ashos gut für einzelne Verwendung oder eingebettete Geräte geeignet
Es sorgt auch für eine gute Workstation oder allgemeine Verwendungsverteilung unter Verwendung von Entwicklungscontainern und Flatpak für Desktop -Anwendungen
Wichtiger Hinweis: Probieren Sie zuerst Ashos in einer virtuellen Maschine und lassen Sie sich damit wohlfühlen, bevor Sie es auf Bare Metal installieren. Ashos Installer ist * rücksichtslos und geht davon aus, dass der Benutzer weiß, was er tut. Ausführen von Installateur wie ist die Festplatte!
Da Ashos sich bemüht, minimal solide zu sein und einer LEGO -ähnlichen Struktur zu folgen (kleine, anpassen wie Sie), konzentrieren wir uns hauptsächlich auf die Basis, was bedeutet, dass standardmäßig keine Desktop -Umgebung (nicht einmal Fenstermanager) installiert ist. Dies ist Design, da das Team ansonsten viele DES bei vielen Distributionen unterstützen muss. Was bereitgestellt wird, sind profiles . Da DES/WMS nur Pakete sind, kann man mit der Leistung von Schnappschüsse die gewünschte DE/Wm -Asche installieren. Zum Beispiel, um GNOME in Snapshot 1 zu installieren:
`ash clone 0` : create snapshot #1
`ash install 1 -P gnome` : install gnome in snapshot #1
`ash deploy 1`
`reboot`
Ashos im Vergleich zu anderen ähnlichen Verteilungen
- Nixos / GNU -Guix - Im Vergleich zu Nixos ist Ashos ein herkömmlicheres System mit der Einrichtung und Pflege. Während Nixos mithilfe der NIX-Programmiersprache vollständig konfiguriert ist, verwendet Ashos den nativen Paketmanager der Zielverteilung, beispielsweise Pacman für Arch, APT-GET für Debian usw. Ashos verbraucht weniger Speicher. Die Konfiguration Ihres Systems ist schneller und einfacher (weniger reproduzierbar), bietet es Ihnen auch mehr Anpassungsoptionen. Ashos ist FHS -konform und sorgt für die richtige Softwarekompatierbarkeit. Im Gegensatz zu Nixos müssen Sie keinen Ph.D. in der Informatik, nur ein unveränderliches Betriebssystem auszuführen
- Ashos ermöglicht eine deklarative Konfiguration mit Ansible, für etwas ähnliche Funktionalität wie nixos
- Fedora Silverblue/Kinoite - Ashos ist anpassungsfähiger, erfordert jedoch mehr manuelles Setup. Ashos unterstützt im Gegensatz zu Silverblue den Dual -Stiefel.
- OpenSuse Microos - Ashos ist ein anpassbareres System, erfordert jedoch wieder ein bisschen mehr manuelles Einrichten. Microos arbeitet ähnlich in der Art und Weise, wie es BTRFS -Schnappschüsse verwendet. Ashos verfügt über eine offizielle KDE -Installation, unterstützt aber auch andere Desktop -Umgebungen, während Microos nur ordnungsgemäß GNOME unterstützt. ASHOS unterstützt den Dual-Stiefel sowie das Live-Stapel des Systems und die Installation von Paketen ohne Neustart
Installation
- (Hinweis: Alle Skripte während der Installation sollten mit Super -Benutzer -Berechtigungen ausgeführt werden)
- Ashos ist aus der offiziellen Live -ISO für die Zielverteilung installiert. Zum Beispiel Arch Linux, Debian/Debian NetInstaller usw.
- Arch ISO kann im Allgemeinen verwendet werden, um andere Distributionen zu starten, außer: Verwenden Sie Debian Live Iso-Hybrid, um Debian, Ubuntu ISO, um Ubuntu zu starten
- Abhängig von der Live -ISO ist es sehr wichtig , dass Skripte in
./src/prep/ ausgeführt werden (Vorbereitung der Live -Umgebung sowie Partition/Formatierung). Andernfalls würde es ein Fehler geben - Die Befehle zur Behebung von Paket -DB -Problemen in Live ISO (dh arch_live.iso) benötigen lange, um zu laufen. Man kann diese sagen, dass Installer erheblich schneller ausgeführt wird. Sie sind hauptsächlich für die Installation von virtuellen Maschinen enthalten, bei denen zeitliche Synchronisierungsfragen reichlich vorhanden sind.
- Wenn Sie bei der Installation von Paketen während der Installation Probleme mit dem neuesten ISO verwenden, und den Schlüsselring des Paketmanagers bei Bedarf aktualisieren
- Wenn Sie aus einem alten Arch-ISO ausgeführt werden, führen Sie die Befehle in Abschnitt
# Fix signature invalid error in ./src/prep/arch-live.sh - Sie benötigen eine Internetverbindung, um Ashos zu installieren
- Ashos verwendete mit 3 Installationsprofilen, eine für minimale Installationen und zwei für Desktop (GNOME, KDE -Plasma). Um es modularer zu machen, haben wir es neu gestaltet und standardmäßig nur einen minimalen Basis -Schnappschuss installiert. Sobald dies erledigt ist, können Sie jede Desktop -Umgebung installieren, die Sie möchten. Zum Beispiel für GNOME, einmal in Base Snapshot gebootet, rennen Sie:
ash branch 0 # This produces node #N
ash install N --profile gnome
ash deploy N
- Die Unterstützung für mehr DE's wird hinzugefügt, wird jedoch nicht Teil der Basisinstallation sein.
- 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/ashos/ashos"
cd ashos
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. - Es gibt Vorbereitungsskripte unter
./src/prep/
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 setup.py /dev/<root_partition> /dev/<drive> [/dev/<efi part>] [distro_id] ["distro_name"]# Skip the EFI partition if installing in BIOS mode
Here are 3 example scenarios:
example 1 (BIOS): python3 setup.py /dev/vda1 /dev/vda
This is a simple case when iso from the `same distro` is used
example 2 (UEFI): python3 setup.py /dev/nvm0p2 /dev/nvm0 /dev/nvm0p1 fedora "Fedora Linux"
When installing a distro using another distro's iso, the last two arguments are necessary
example 3 (UEFI): python3 setup.py /dev/sda2 /dev/sda /dev/sda1 cachyos "CachyOS Linux"
If for any reason, there is a mismatch between what distro actually is and its /etc/os-release file, it is [usually] mandatory to pass two additional arguments. Here even though we are using CachyOS iso file (which is based on Arch Linux), by investigating in /etc/os-release file, you would see ID and NAME are same as Arch Linux. In a single boot install, it is okay to not pass the last two arguments, but if you want a multiboot system (say dual boot with Arch Linux), they are required.
Die Argumente in quadratischen Klammern sind optional. In Bezug auf das vierte Argument: Wenn Sie Alpine Linux mit Arch Linux ISO installieren möchten, führen Sie python3 setup.py /dev/vda2 /dev/vda /dev/vda1 alpine aus.
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 Snapshot von
base mit ash clone 0 - Chroot in diesem neuen Snapshot (
ash 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 - Dann können Sie es mit
ash deploy <snapshot> bereitstellen
Zusätzliche Dokumentation
- Für weitere Informationen, die in diesem Projekt nicht behandelt werden, wird empfohlen, sich auf die Zieldistriation zu beziehen, dh Arch Wiki
- Melden Sie Probleme/Fehler auf der Seite mit GitHub -Problemen
- Tipp: Sie können mit
ash --help eine kurze Cheatsblatt aller verfügbaren Befehle erhalten - Idealerweise möchten wir Ash als einzelne Datei ausführen lassen
- Das Ash -Skript ist in 2 Dateien unterteilt: Common Code (Ashpk_core.py) und Distro -spezifischer Code (dh Gentoo.py). Beachten Sie, dass keiner dieser Dateien eigenständig ausgeführt werden kann (ein Skript in das andere importieren ist nicht beabsichtigt). Die Aufteilung dient nur zur Leichterung der Verwendung von Dateien als Vorlagen bei der Entwicklung von Asche für andere Verteilungen. Zum Zeitpunkt der Installation einer Distribution werden die beiden Dateien einfach verkettet.
- Um keine zusätzlichen Schriftarten zu benötigen, verwenden wir beim Drucken von Eschenbaum den ASCII -Stil. Für eine schönere Ausgabe können Sie Asciistyle () durch kontstyle (), controundStyle () oder doubleStyle () ersetzen.
- Das andere Schöne an Ashos ist, dass Ihre damit verbundenen Distros sehr ähnlich gebaut sind. Zum Beispiel sind Installateur für Arch und Manjaro sehr ähnlich, Unterschied ist nur die Paketrepos!
Basis -Schnappschuss
- Der Snapshot
0 ist für den Basissystem-Snapshot reserviert, er kann nicht geändert werden und kann nur mithilfe von ash base-update aktualisiert werden
Snapshot -Management
Dateisystembaum anzeigen
- Die Ausgabe kann wie folgt aussehen:
root - root
├── 0 - base snapshot
└── 1 - multi-user 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
ash 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 keine Asche aus 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 mit
exit ordnungsgemäß beendet werden, andernfalls werden die vorgenommenen Änderungen nicht gespeichert - Wenn Sie Chroot nicht mit dem
exit "sauber" beenden, wird empfohlen, ash 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
ash run <snapshot> <command>
- Führt einen bestimmten Befehl in Snapshot und allen Zweigen aus
ash tree-run <tree> <command>
Klonschnappschuss
- Dies klingt den Schnappschuss als neuer Baum
Klon einen Baum rekursiv
- Dadurch kloniert ein ganzer Baum rekursiv
ash clone-tree <snapshot>
Erstellen Sie einen neuen Baumzweig
- Fügt dem angegebenen Snapshot einen neuen Zweig hinzu
ash branch <snapshot-to-branch-from>
Klonschnappschuss unter demselben Elternteil
Klonschnappschuss unter dem angegebenen Elternteil
- Stellen Sie sicher, dass Sie den Baum anschließend synchronisieren
ash 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
- Führen Sie
ash deploy <snapshot> aus und starten Sie neu, nachdem Sie neue Software für die Anwendung installiert haben (es sei denn, die Live -Installation verwenden, weitere Informationen unten). Dies wird standardmäßig nicht mehr benötigt. - 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
ash 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
- Ash unterstützt auch die Installation von Paketen ohne Neustart. Dies wird nicht mehr benötigt. ### review_later
ash install <snapshot> -p <package> --live
Software entfernen
- Für einen einzelnen Schnappschuss
ash remove <snapshot> <package or packages>
ash tree-rmpkg <tree> <pacakge or packages>
Aktualisierung
Es wird empfohlen, vor dem Aktualisieren einen Schnappschuss zu klonen
Dieses Update aktualisiert nur die Systempakete, um die Asche 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
Snapshot -Konfiguration
- Ashos hat ein pro-snapshot-Konfigurationssystem
- Mit diesem System können wir einige Funktionen umschalten. Schauen Sie sich beispielsweise für AUR (Arch User Repository) unter Arch Notes unten an.
- Sie müssen einen Texteditor haben. Für Nano oder VI überspringen Sie Step0 insgesamt:
STEP0:
set $EDITOR environment variable (i.e. add 'EDITOR=nvim' line in ~/.bashrc)
reload it (i.e. source ~/.bashrc)
Add 'Defaults env_keep = "EDITOR PROMPT"' line to /etc/sudoers
- Änderungen speichern und aufhören
Beachten Sie, dass Sie die Zeile für /etc /sudoers überspringen können, aber jedes Mal, wenn Sie stattdessen "sudo -e ash edit" eingeben sollten, um die Umgebungsvariable mit sudo zu übergeben!
Extras
Speichern von Konfigurationsänderungen in /etc hartnäckig vorgenommen
- Normalerweise sollte die Konfiguration mit
ash 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 ändern
/etc und dann diese Änderungen speichern.
Doppelstiefel
- Ashos 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:
ash install <snapshot> os-prober
- Jetzt müssen wir GRUB konfigurieren
ash chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit
- Stellen Sie jetzt einfach den Snapshot bereit, um den Bootloader neu zu konfigurieren
Wenn Windows erkannt wird, sollte Ash die Ausgabe entlang der Found Windows Boot Manager on... zurückgeben. Möglicherweise müssen Sie zuerst ntfs-3g installieren und erneut ablegen, wenn Sie keinen Windows-Eintrag sehen. ### review_later
Asche selbst aktualisieren
- Ash wird nicht neben dem System aktualisiert, wenn
ash upgrade verwendet wird - Manchmal kann es notwendig sein, die Asche selbst zu aktualisieren
- Asche kann mit einem einzigen Befehl aktualisiert werden
Verschiedenes
Read-Write-Zugriff auf verschiedene Teile des Dateisystems: /.snapshots/rootfs/snapshot-*: ro /.snapshots/etc/etc-*: ro /var: rw /: als RO montiert, aber der Snapshot selbst ist RW /usr: RO /etc: rw: rw: rw: rw: rw
Für GNOME- und KDE -Profile gehen wir davon aus, dass der Benutzer nur dann als Standardeinstellung funktionieren und als solches den Standard -Login -Manager installieren. Für jedes andere Profil konzentrieren wir uns auf Minimalismus und installieren einfach TBSM. Man kann dies offensichtlich leicht ändern, wenn sie dies wünschen.
Stellen Sie bei der Verwendung einer älteren ISO -Datei sicher, dass die FixDB -Zeile im Vorbereitungsskript für die entsprechende Distribution übernommen wird. Andernfalls gibt es Umstände, dass Sie, selbst wenn die Installation erfolgreich zu sein scheint, bei der Startierung in Ihrer Distribution möglicherweise Sync -Paket -Manager -DB -Fehler erhalten. Dieser FixDB kann den anfänglichen Teil des Installationsprozesses sehr langsam machen, könnte sich aber lohnen.
Erweiterte Funktionen
Dies sind eine erweiterte Funktion, und wir empfehlen Ihnen, sie nur zu verwenden, wenn Sie für den Bruch bereit sind, Datensicherungen und gelegentliche Korrekturen durchzuführen. Sie sind möglicherweise nicht bereit.
Multi-Boot
Um unterschiedliche Distributionen zu mehr zu streichen, folgen Sie im Allgemeinen dieses Verfahrens:
- Installieren Sie die erste Distribroa-A mit Option Nummer 2
- Installieren Sie die folgende Distributionen mit Option Nummer 3 (Wichtig: Andere Optionen löschen entweder das Root- oder sowohl die Root- als auch die EFI -Partitionen)
Luks
Die Verschlüsselung mit Vollscheiben mit LUKS2 wird implementiert. Dies bedeutet auch Verschlüsselung /Start, was seit V2.06 ein experimentelles Merkmal von GRUB ist. Derzeit im Mainstream unterstützt es nur PBKDF2 und nicht das Standard -Argon2. Dies wird den Booten erheblich verlangsamen, da die Cryptomount -Entschlüsselung beispielsweise etwa 30 Sekunden auf 8 KB -Schlüsselfile beträgt. Wenn Sie mit einem anderen Betriebssystem ein Multi-Boot-Tiefgang planen, verwenden Sie diese Funktion noch nicht! Wir montieren die Entwicklung von GRUB genau und werden so schnell wie möglich aktualisieren.
Verstürmbarkeitsschaltung
Das Schöne an der Anpassbarkeit von Ashos ist, dass wir eine Mischung aus unveränderlichen und nicht einfühlbaren Knoten haben können! Innerhalb des Waldes/Baums von Ashos kann man jeden Schnappschuss (außer der Basis 0 ) veränderlich machen. Zum Beispiel, um Node 9 mutable sudo ash immen 9 zu machen. Dies macht einen Knoten und alle Kinder (die danach erstellt werden) veränderlich.
Asche debuggen
- Manchmal kann es notwendig sein, Asche zu debuggen
- Der folgende Befehl ist nützlich, da er Ausgänge von Befehlen beim Ausführen von Ashpk.py anzeigt:
sed -e 's| >/dev/null 2>&1||g' /usr/bin/ash > ashpk.py
Debugging Installer
- Bei der Arbeit an einem OS -Entwicklungsprojekt können viele Probleme auftauchen. Es ist nur die Natur des Debuggens in diesem Projekt und braucht Geduld!
- Wenn Sie sich mit Problemen im Installateur oder nach dem ersten Einrichten von Problemen stellen, gehen Sie zu Grub und löschen Sie
quiet aus Argumenten - Starten Sie mit Strg+x und melden Sie, was Sie beobachten
- Wenn möglich, gehen Sie zu TTY2 mit Strg+Alt+F2 und führen Sie
journalctl -b aus und melden Sie sich zurück
Bekannte Fehler
- Am Ende des Installationsprogramms, wenn Luks verwendet wird, wird eine Warnung vorgenommen
remove ioctl device or resource busy . Sie können ignoriert werden. Höchstwahrscheinlich Ursache: Systemd-Journald - 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
- Sterne dieses Repo!
- Bitte schauen Sie unter
./src/profiles/ Bitte versuchen Sie, so minimal und vanille wie möglich zu sein. Wenn ein Paket unterschiedliche Namen in unterschiedlichen Distributionen enthält (wie NetworkManager in Arch und Network-Manager in Debian, erstellen Sie eine Datei mit dem Distribu-Suffix für das Profil unter GNOME: Pakete-Arch.txt vs. Pakete-debian.txt - Wenn Ashos Ihre Distribution noch nicht unterstützt, können Sie dies mit einer relativen Leichtigkeit tun! Ein guter Weg wäre, Arch als Vorlage (./src/distros/arch/) für Installer.py zu verwenden. In der Regel müssen nur einige der nummerierten Abschnitte (angegeben als
# 1. bis # 6. ) an ein neues Betriebssystem angepasst werden. Konvertieren Sie die Befehle für Ashpk.py in den neuen Paketmanager. - Wenn Sie Ashpk_core.py oder Ashpk_distro.py neue Funktionen hinzufügen, fügen Sie sie in alphabetischer Reihenfolge (außer Main () hinzu, was die letzte Funktion in Ashpk_core.py für einen leichteren Zugriff ist).
- Wir möchten Ashpk_distro.py so klein wie möglich halten, daher ist es einfacher, es in andere Distributionen zu übersetzen. Beachten Sie dies, wenn neue Funktionen/Funktionen hinzugefügt werden ... Machen Sie so weit wie möglich Features Distro-Agnostiker. (IE fügen Sie Funktionen in der gemeinsam genutzten Ashpk.py hinzu, wenn möglich, stattdessen)
- Wenn Sie ein neues Profil hinzufügen (Windows Manager, Desktop -Umgebung), enthalten Sie absolut die minimal erforderlichen Pakete. Schauen Sie sich zum Beispiel Gnome, JWM oder i3 an. Um nur minimale praktikable Pakete zu entwickeln, erstellen Sie einen Test -Snapshot, wenn Sie bereits über eine ASHOS -Installation der Zieldistroa (dh Debian, Bogen, Alpine usw.) verfügen, und versuchen Sie, so wenige Pakete zu installieren und zu prüfen, ob es funktioniert. Alternativ können Sie eine saubere Vanille -Umgebung/ein chroot der Zieldistribution oder eine virtuelle Maschine oder ein Docker -Bild verwenden. Einige Zeit -System -Service -Befehle sind möglicherweise erforderlich. Stellen Sie sicher, dass Sie sie auch in die Profile -Konf -Datei einbeziehen.
- 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
- Wenn ein Teil des Codes weiter toDo benötigt wird, geben Sie ihn mit
### YOUR_COMMENT an - Wenn Sie dem Projekt einen beitragenden Code hinzufügen, befolgen Sie immer den Gabel-und-Clone-Ansatz: Fork das Hauptorganisations-Repo (Ashos/Ashos) unter Ihrem persönlichen Git, nehmen Sie die Änderungen vor, drücken Sie Ihre Änderungen an Ihrem Git und erstellen Sie schließlich eine Pull-Anfrage zum Hauptrepo zurück.
Gemeinschaft
- Bitte zögern Sie nicht, sich mit uns auf Matrix oder Discord anzuschließen, um weitere Diskussionen und Unterstützung zu erhalten!
- Happy Sorge-Free Snapshotting!
Todos
- Eine saubere Art, die Asche völlig unistet zu machen
- Implementieren Sie die AUR -Paketwartung zwischen Schnappschüssen
- Machen Sie Ashos für nicht angetante Benutzer zugänglicher
Distrospezifische Notizen
- Für Pakete-Distro.conf würde der schlankste Display-Manager (entweder Xorg oder Wayland), der für die gegebene Distribution im offiziellen Repo enthalten ist, enthalten sein. Zum Beispiel für Arch Linux wäre dies "schlank", obwohl es schlankere Display -Manager wie "Ly", "TBSM", "CDM" usw. gibt, aber leider gibt es zum Zeitpunkt des Schreibens dieses Dokuments in AUR.
Arch Linux
Aur
- Ashos unterstützt die AUR nativ
- Ashos verwendet den Paru Aur -Helfer, um diese Funktionalität bereitzustellen
- Wenn Sie bereits Paru installiert haben
ash remove <snapshot> paru stellen Sie bitte sicher sicher - Öffnen Sie, um die AUR -Unterstützung zu ermöglichen, zuerst die Snapshot -Konfiguration:
EDITOR=nano ash edit-conf <snapshot> # set the EDITOR variable
- Jetzt können wir AUR aktivieren, indem wir die Datei wie SO bearbeiten:
- Änderungen speichern und aufhören
- Jetzt ist der
ash upgrade ash install aktiv
Behebung von pacman -beschädigten Paketen oder wichtigen Problemen
- 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
ash install <snapshots> archlinux-keyring
Wenn dies das Problem nicht gelöst hat, laufen Sie:
Und als letztes Ausweg rennen Sie: (Vorsicht: Dies könnte unerwünschte Effekte haben)
alpin
- Derzeit gibt es ein unberechenbares Verhalten mit Package-GRUB (nicht grub-efi, das, obwohl letztere von ersteren abhängt), zu einer beschädigten APK-Datenbank für eine frische Installation / Neu-Snapshot führt! Dadurch fällt
ash in den Operationen auch aus, da wir auf Fehler suchen. Um dies zu beheben, rennen Sie:
ash un -p grub-efi grub -s <snapshot-number>
ash in -p grub-efi -s <snapshot-number>
Cachyos
- Sie können entweder Arch ISO oder Cachyos ISO zur Installation verwenden. Übergeben Sie zusätzliche Argumente, wenn Sie erstere verwenden (siehe Beispiele oben)
- Das CLI -Installationsprogramm genügt aus, ohne das GUI -Installateur herunterzuladen.
Debian
- Bei der Ausgabe
sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ scheint es, dass das Installationsprogramm gefroren ist, aber es tut tatsächlich sein Ding! Bitte seien Sie geduldig und Sie erhalten eine Aufforderung, die Installation in etwa 30 Sekunden zu initiieren! Aus irgendeinem Grund zeigte es nicht, was auf nette Weise vor sich geht, also habe ich ein set echo off -Befehl gestellt. - Stellen Sie sicher, dass Sie Sudo im obigen Befehl nicht verpassen, andernfalls würde beim Schreiben auf/mnt/.snapshots/...
Bemühungen
- Starten Sie den Startvorgang aus der ISO -Datei
- Wenn Grub aufgefordert wird, drücken Sie Tasten 'e' und addieren Sie dann das Ende der Kernelparameter. Wenn Sie zum Rettungsmodus aufgefordert werden, drücken Sie die Eingabetaste.
- Dadurch werden Sie in den Einzelbenutzermodus anstelle einer Standard -Desktop -Umgebung fallen
- Wenn kein Internetzugang verfügbar ist, führen Sie
sudo dhclient aus - Andernfalls kommentieren Sie bei der Installation aus der Desktop -Umgebung "SU" in endevouros_live.sh, da es nach einem Passwort verlangt wird. Führen Sie stattdessen das Skript als sudo aus.
Proxmox
- Verwenden Sie Debian Live Iso-Hybrid
- Suchen Sie die neueste Version von PVE-Kernel _*-PVE von http://download.proxmox.com/debian/dists/ <Releasedex/pve-no-subscription/binary-amd64/ und aktualisieren Sie Kernel_version.
-
sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ proxmox "Proxmox VE" - Hinweis für das
postfix : Konfigurieren Sie Pakete, für die Benutzereingaben für die Installation entsprechend Ihren Anforderungen erforderlich sind. Wenn Sie einen Mailserver in Ihrem Netzwerk haben, sollten Sie Postfix als Satellitensystem konfigurieren. Ihr vorhandener Mailserver ist dann der Relay -Host, der die von Proxmox VE gesendeten E -Mails an ihren endgültigen Empfänger weiterleitet. Wenn Sie nicht wissen, was Sie hier eingeben sollen, wählen Sie nur lokal und lassen Sie den Systemnamen so wie es ist.
Ubuntu
- Links herunterladen: Link 1, Link 2
- In GRUB können Sie
single als Argument an Linux -Kernel übergeben, um im Einzelmodus zu starten und die Eingabetaste für die Wartung zu drücken (da für diesen Installateur keine GUI erforderlich ist, ist es viel schneller zu starten). - Ab Juli 2022 kann Debian ISO nicht verwendet werden, um 'Jammy' zu starten (ZSTD -Fehler: https://bugs.debian.org/892664)
Dieses Projekt ist unter der AGPLV3 lizenziert.