ASTOS (Arch Snapshot Tree OS)
Une distribution basée sur une arche immuable en utilisant des instantanés BTRFS

Table des matières
- Qu'est-ce que ASTOS?
- ASTOS par rapport à d'autres distributions similaires
- Documentation AST et ASTO
- Installation
- Post-installation
- Gestion des instantanés et déploiements
- Gestion des forfaits
- Documentation supplémentaire
- Mise à jour des clés Pacman
- Enregistrer les modifications de configuration dans / etc.
- Configuration du double démarrage
- Mise à jour de l'AST lui-même
- Débogage AST
- Configuration de l'AUR
- Bogues connues
- Contributif
- Communauté
Le développement ASTOS est actuellement inactif, voir # 33 (commentaire)
Qu'est-ce que ASTOS?
ASTOS est une distribution moderne basée sur Arch Linux.
Contrairement à Arch, il utilise un système de fichiers racine immuable (en lecture seule).
Le logiciel est installé et configuré dans des arbres instantanés individuels, qui peuvent ensuite être déployés et démarrés.
Il n'utilise pas son propre format de package ou son gestionnaire de packages, en s'appuyant plutôt sur Pacman depuis Arch.
Cela présente plusieurs avantages:
Sécurité
- Même si l'exécution d'une application avec des autorisations élévées, elle ne peut pas remplacer les bibliothèques du système par des versions malveillantes
Stabilité et fiabilité
- En raison de la montée du système en tant que lecture, il n'est pas possible de remplacer accidentellement les fichiers système
- Si le système rencontre des problèmes, vous pouvez facilement faire reculer le dernier instantané de travail en quelques minutes
- Mises à jour atomiques - La mise à jour de votre système en même temps est plus fiable
- Grâce à la fonction d'instantané, ASTOS peut expédier un logiciel de pointe sans devenir instable
- ASTOS a besoin de peu de maintenance, car il a un outil de mise à jour entièrement automatique intégré qui crée des instantanés avant les mises à jour et vérifie automatiquement si le système a été amélioré correctement avant de déployer le nouveau instantané
Configurabilité
- Avec les instantanés organisés en arbre, vous pouvez facilement avoir plusieurs configurations différentes de votre logiciel disponibles, avec des packages variables, sans aucune interférence
- Par exemple: vous pouvez installer un seul bureau Gnome, puis avoir 2 instantanés sur le dessus - l'un avec vos jeux vidéo, avec le plus récent noyau et les pilotes, et l'autre pour le travail, avec le noyau LTS et un logiciel plus stable, vous pouvez ensuite basculer entre ceux-ci en fonction de ce que vous essayez de faire
- Vous pouvez également essayer facilement un logiciel sans avoir à vous soucier de casser votre système ou de le polluer avec des fichiers inutiles, par exemple, vous pouvez essayer un nouvel environnement de bureau dans un instantané, puis supprimer l'instantané après, sans modifier du tout votre système principal
- Cela peut également être utilisé pour les systèmes multi-utilisateurs, où chaque utilisateur a un système complètement séparé avec différents logiciels, et pourtant ils peuvent partager certains packages tels que les grains et les pilotes
- ASTOS vous permet d'installer un logiciel en chrootant dans des instantanés, vous pouvez donc utiliser des logiciels tels que l'AUR pour installer des packages supplémentaires
- ASTOS est, tout comme Arch, très personnalisable, vous pouvez choisir exactement le logiciel que vous souhaitez utiliser
Grâce à sa fiabilité et à ses mises à niveau automatiques, ASTOS convient bien aux appareils à usage unique ou intégrés
Il en fait également un bon poste de travail ou une distribution générale à l'aide de conteneurs de développement et FlatPak pour les applications de bureau
ASTOS par rapport à d'autres distributions similaires
- Nixos - Par rapport à Nixos, ASTOS est un système plus traditionnel avec la façon dont il est configuré et maintenu. Alors que Nixos est entièrement configuré à l'aide du langage de programmation NIX, ASTOS utilise Pacman Package Manager d'Arch. ASTOS consomme moins de stockage et la configuration de votre système est plus rapide et plus facile (moins reproductible cependant), il vous offre également plus d'options de personnalisation. ASTOS est conforme au FHS, assurant une bonne compatibilité des logiciels.
- ASTOS permet une configuration déclarative en utilisant ANSIBLE, pour des fonctionnalités quelque peu similaires à Nixos
- Fedora SilverBlue / Kinoite - ASTOS est plus personnalisable, mais nécessite plus de configuration manuelle. ASTOS prend en charge le double démarrage, contrairement à SilverBlue.
- OpenSUSE MICROOS - ASTOS est un système plus personnalisable, mais nécessite encore une fois un peu plus de configuration manuelle. Les microos fonctionnent de manière similaire dans la façon dont il utilise des instantanés BTRFS. ASTOS a une installation officielle de KDE, mais prend également en charge d'autres environnements de bureau, tandis que les microos ne prennent en charge que GNOME. ASTOS prend en charge le double démarrage, ainsi que le traitement en direct du système et l'installation de packages sans redémarrage.
Installation
- ASTOS est installé à partir de l'ISO officiel Arch Linux Live disponible sur https://archlinux.org/
- Si vous rencontrez des problèmes d'installation de packages lors de l'installation, assurez-vous d'utiliser le plus récent ISO Arch, et si nécessaire, mettez à jour le pacman clés
- Vous avez besoin d'une connexion Internet pour installer ASTOS
- Actuellement, ASTOS expédie 4 profils d'installation, un pour les installations minimales et deux pour le bureau, une avec l'environnement de bureau Gnome, une avec KDE Plasma, et une avec mate, mais la prise en charge de plus de DE sera ajoutée
- Le script d'installation est facilement configurable et ajusté pour vos besoins (mais cela fonctionne très bien sans aucune modification)
Installer Git First - Cela nous permettra de télécharger le script d'installation
Référentiel de clones
git clone "https://github.com/lambdanil/astOS"
cd astOS
Lecteur de partition et de format
- Si vous installez sur un système de bios, utilisez une table de partition DOS (MBR)
- Sur EFI, vous pouvez utiliser GPT
- La partition EFI doit être formatée sur FAT32 avant d'exécuter le programme d'installation (
mkfs.fat -F32 /dev/<part> )
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!
Exécuter le programme d'installation
python3 main.py /dev/<partition> /dev/<drive> /dev/<efi part> # Skip the EFI partition if installing in BIOS mode
Configuration de la publication
- La configuration du post d'installation n'est pas nécessaire si vous installez l'une des éditions de bureau (Gnome ou KDE)
- Beaucoup d'informations sur la façon de gérer la configuration post-stalle sont disponibles sur la page Archwiki
- Voici un petit exemple de procédure de configuration:
- Commencez par créer un nouveau instantané à partir de
base en utilisant ast clone 0 - Chroot à l'intérieur de ce nouveau instantané (
ast chroot <snapshot> ) et commencez à configurer- Commencez par ajouter un nouveau compte utilisateur:
useradd username - Définir le
passwd username du mot de passe utilisateur - Définissez maintenant un nouveau mot de passe pour Root User
passwd root - Vous pouvez désormais installer des packages supplémentaires (environnements de bureau, technologies de conteneurs, Flatpak) à l'aide de Pacman
- Une fois terminé, quittez le chroot avec
exit 0 - Ensuite, vous pouvez le déployer avec
ast deploy <snapshot>
Documentation supplémentaire
- Il est conseillé de se référer au Wiki Arch pour la documentation ne faisant pas partie de ce projet
- Signaler les problèmes / bogues sur la page des problèmes GitHub
- Astuce: vous pouvez utiliser
ast help pour obtenir une feuille de triche rapide de toutes les commandes disponibles
Instantané de base
- L'instantané
0 est réservé à l'instantané du système de base, il ne peut pas être modifié et ne peut être mis à jour qu'à l'aide ast base-update
Gestion des instantanés
Afficher l'arbre du système de fichiers
- La sortie peut ressembler à ceci:
root - root
├── 0 - base snapshot
└── 1 - multiuser system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
Ajouter une description à un instantané
- Les instantanés vous permettent d'ajouter une description à eux pour une identification plus facile
ast desc <snapshot> <description>
Supprimer un arbre
- Cela supprime l'arbre et toutes ses branches
Configuration de démarrage personnalisée
- Si vous avez besoin d'utiliser une configuration de grub personnalisée, chroot dans un instantané et modifier
/etc/default/grub , déploiez l'instantané et redémarrez
chroot dans un instantané
- Une fois à l'intérieur du chroot, le système d'exploitation se comporte comme une arche ordinaire, afin que vous puissiez installer et supprimer des packages à l'aide de Pacman ou similaire
- Ne pas exécuter AST à l'intérieur d'un chroot, cela pourrait endommager le système, il y a une sécurité en place, qui peut être contournée avec
--chroot si vous en avez vraiment besoin (non recommandée) - Le chroot doit être sorti correctement avec
exit 0 , sinon les modifications apportées ne seront pas enregistrées - Pour éliminer les modifications apportées, utilisez
exit 1 à la place - Si vous ne sortez pas de chroot la manière "propre" avec
exit 0 , il est recommandé d'exécuter ast tmp pour effacer les fichiers temporaires laissés pour compte
- Vous pouvez entrer une coque déverrouillée à l'intérieur de l'instantané démarré actuel avec
- Les modifications apportées à la session en direct ne sont pas enregistrées sur de nouveaux déploiements
Autres options de chroot
- Exécute une commande spécifiée dans Snapshot
ast run <snapshot> <command>
- Exécute une commande spécifiée dans un instantané et toutes ses branches
ast tree-run <tree> <command>
Instantané clone
- Cela clones l'instantané comme un nouvel arbre
Cloner un arbre récursivement
- Cela clones un arbre entier récursivement
ast clone-tree <snapshot>
Créer une nouvelle branche d'arbre
- Ajoute une nouvelle branche à un instantané spécifié
ast branch <snapshot to branch from>
Clone instantané sous le même parent
Clone instantané sous un parent spécifié
- Assurez-vous de synchroniser l'arbre après
ast ubranch <parent> <snapshot>
Créer un nouvel arbre de base
Déploier un instantané
- Redémarrez pour démarrer dans le nouveau instantané après le déploiement
Mettre à jour la base de nouveaux instantanés
- Remarque
/.snapshots/etc/etc-0 La base elle-même est située sur /.snapshots/rootfs/snapshot-0 avec ses fichiers spécifiques /var et /etc situés à /.snapshots/var/var-0
Gestion des forfaits
Installation de logiciels
- Le logiciel peut également être installé à l'aide de Pacman dans un chroot
- Aur peut être utilisé sous le chroot
- Flatpak peut être utilisé pour une installation de forfait persistant
- L'utilisation de conteneurs pour une installation de logiciels supplémentaires est également une option. Un moyen facile de le faire est avec Distrobox
ast install <snapshot> <package>
- Après l'installation, vous pouvez synchroniser les packages nouvellement installés sur toutes les branches de l'arbre avec
- La synchronisation de l'arborescence met également à jour automatiquement tous les instantanés
- Si vous souhaitez vous synchroniser sans mettre à jour (pourrait entraîner la duplication du package dans la base de données), utilisez
Configuration de l'AUR
- ASTOS soutient également l'AUR native
- Avant de pouvoir activer le support AUR, nous devons d'abord nous assurer que
paru n'est pas installé:
ast remove <snapshot> paru
- Pour utiliser cette fonctionnalité, nous devons d'abord activer la prise en charge de l'AUR dans la configuration d'instantané:
EDITOR=nano ast edit-conf <snapshot> # set the EDITOR variable
- Nous devons maintenant ajouter la ligne suivante dans le fichier:
- Enregistrer et arrêter
- La prise en charge de l'AUR est désormais activée -
ast install et d'autres opérations peuvent désormais installer des packages AUR comme d'habitude
Suppression du logiciel
ast remove <snapshot> <package or packages>
ast tree-rmpkg <tree> <pacakge or packages>
Mise à jour
Il est conseillé de cloner un instantané avant de le mettre à jour, afin que vous puissiez revenir en cas d'échec
Cette mise à jour ne met à jour que les packages système, afin de mettre à jour AST lui-même voir cette section
Pour mettre à jour un seul instantané
- Pour mettre à jour récursivement un arbre entier
Cela peut être configuré dans un script (c'est-à-dire un script crontab) pour des mises à jour automatiques faciles et sûres
Si le système devient unootable après une mise à jour, vous pouvez démarrer le dernier déploiement de travail (sélectionner dans le menu Grub), puis effectuer un Rollback
- Ensuite, vous pouvez redémarrer à un système de travail
Extras
Fixation de packages Corrupts Pacman / Problèmes clés
- Le gestionnaire de packages Pacman d'Arch nécessite parfois un rafraîchissement des clés PGP
- Pour résoudre ce problème, nous pouvons simplement réinstaller leur clés
ast install <snapshots> archlinux-keyring
Enregistrer les modifications de configuration apportées en /etc
- Normalement, la configuration doit être effectuée avec
ast chroot , mais parfois vous voudrez peut-être appliquer les modifications que vous avez apportées au système démarré de manière persistante - Pour ce faire, utilisez la commande suivante
- Cela vous permet de configurer votre système en modifiant
/etc comme d'habitude, puis en enregistrant ces modifications
Double démarrage
- ASTOS prend en charge le double démarrage à l'aide du chargeur de démarrage GRUB
- Lors de l'installation du système, utilisez la partition EFI existante
- Pour configurer le double démarrage, nous devons commencer par installer le package
os-prober :
ast install <snapshot> os-prober
- Maintenant, nous devons configurer Grub
ast chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit 0
- Maintenant, déployez simplement l'instantané pour reconfigurer le chargeur de démarrage
Si Windows est détecté, AST doit retourner la sortie sur les lignes de Found Windows Boot Manager on...
Vous devrez peut-être installer ntfs-3g d'abord et redéployer si vous ne voyez pas une entrée Windows.
Mise à jour de l'AST lui-même
- AST n'est pas mis à jour à côté du système lorsque
ast upgrade est utilisée - Parfois, il peut être nécessaire de mettre à jour AST lui-même
- AST peut être mis à jour avec une seule commande
Débogage AST
- Parfois, il peut être nécessaire de déboguer AST
- Copiez
ast à n'importe quel emplacement:
cp /usr/local/sbin/ast astpk.py
- La commande suivante est utile car elle affiche des sorties de commandes lors de l'exécution de Astpk.py:
sed -i -e s, 2>&1> /dev/null,,g astpk.py
Si vous avez modifié le fichier AST d'origine (possible mais pas recommandé), assurez-vous de le revenir en arrière lorsque vous avez terminé!
Bogues connues
- Lors de l'exécution de l'AST sans arguments - Indexerror: lister l'index hors de portée
- L'exécution de AST sans autorisation racine montre les erreurs refusées l'autorisation au lieu d'un message d'erreur
- La partition d'échange ne fonctionne pas, il est recommandé d'utiliser un fichier d'échange ou ZRAM à la place
- Docker a des problèmes avec les autorisations, pour réparer l'exécution
sudo chmod 666 /var/run/docker.sock
- Si vous rencontrez des problèmes, signalez-les sur la page des problèmes
Contributif
- Les contributions du code et de la documentation sont les bienvenues
- Les rapports de bogues sont également un bon moyen de contribuer au projet
- Avant de soumettre un test de demande de traction, votre code et assurez-vous de le commenter correctement
Communauté
- N'hésitez pas à nous rejoindre sur Discord pour une discussion et un soutien supplémentaires!
- Bonnes instantanée sans souci!
Le projet est concédé sous licence AGPLV3