Astos (Arch Snapshot Tree OS)
Una distribución basada en arco inmutable que utiliza instantáneas BTRFS

Tabla de contenido
- ¿Qué es Astos?
- Astos en comparación con otras distribuciones similares
- documentación de AST y ASTOS
- Instalación
- Instalación post
- Gestión de instantáneas e implementaciones
- Gestión de paquetes
- Documentación adicional
- Actualización de las teclas Pacman
- Guardar los cambios de configuración en /etc de manera persistente
- Configuración de arranque dual
- Actualización de AST en sí misma
- Depuración AST
- Configurando el aur
- Errores conocidos
- Que contribuye
- Comunidad
El desarrollo de Astos está actualmente inactivo, ver #33 (comentario)
¿Qué es Astos?
Astos es una distribución moderna basada en Arch Linux.
A diferencia de Arch, utiliza un sistema de archivos raíz inmutable (de solo lectura).
El software se instala y se configura en árboles de instantáneas individuales, que luego se pueden implementar y iniciar.
No utiliza su propio formato de paquete o administrador de paquetes, sino que confía en Pacman desde Arch.
Esto tiene varias ventajas:
Seguridad
- Incluso si ejecuta una aplicación con permisos elevados, no puede reemplazar las bibliotecas del sistema con versiones maliciosas
Estabilidad y confiabilidad
- Debido a que el sistema se monta solo como leída, no es posible sobrescribir accidentalmente los archivos del sistema
- Si el sistema se encuentra con problemas, puede revertir fácilmente la última instantánea de trabajo en cuestión de minutos
- Actualizaciones atómicas: actualizar su sistema a la vez más confiable es más confiable
- Gracias a la función de instantánea, Astos puede enviar software de vanguardia sin volverse inestable
- ASTOS necesita poco mantenimiento, ya que tiene una herramienta de actualización totalmente automática incorporada que crea instantáneas antes de las actualizaciones y verifica automáticamente si el sistema se actualizó correctamente antes de implementar la nueva instantánea
Configurabilidad
- Con las instantáneas organizadas en un árbol, puede tener fácilmente múltiples configuraciones diferentes de su software disponibles, con diferentes paquetes, sin ninguna interferencia.
- Por ejemplo: puede tener un solo escritorio de gnomo instalado y luego tener 2 instantáneas en la parte superior: una con sus videojuegos, con el núcleo y los controladores más nuevos, y el otro para trabajar, con el kernel LTS y un software más estable, puede cambiar fácilmente entre estos dependiendo de lo que esté tratando de hacer
- También puede probar fácilmente el software sin tener que preocuparse por romper su sistema o contaminarlo con archivos innecesarios, por ejemplo, puede probar un nuevo entorno de escritorio en una instantánea y luego eliminar la instantánea después, sin modificar su sistema principal en absoluto.
- Esto también se puede utilizar para sistemas de usuarios múltiples, donde cada usuario tiene un sistema completamente separado con un software diferente y, sin embargo, puede compartir ciertos paquetes, como núcleos y controladores.
- ASTOS le permite instalar software al verse en las instantáneas, por lo tanto, puede usar software como el AUR para instalar paquetes adicionales
- Astos es, al igual que Arch, muy personalizable, puede elegir exactamente qué software desea usar
Gracias a sus actualizaciones confiables y automáticas, ASTOS es bien adecuado para dispositivos de uso único o integrado
También es una buena estación de trabajo o distribución de uso general que utiliza contenedores de desarrollo y platera para aplicaciones de escritorio
Astos en comparación con otras distribuciones similares
- NIXOS : en comparación con Nixos, ASTOS es un sistema más tradicional con la forma en que está configurada y mantenida. Mientras que Nixos está completamente configurado utilizando el lenguaje de programación NIX, ASTOS usa el Administrador de paquetes Pacman de Arch. ASTOS consume menos almacenamiento, y la configuración de su sistema es más rápida y fácil (sin embargo, menos reproducible), también le brinda más opciones de personalización. Astos cumple con FHS, asegurando la compatibilidad adecuada del software.
- ASTOS permite la configuración declarativa usando Ansible, para una funcionalidad algo similar a NIXOS
- Fedora SilverBlue/Kinoite : Astos es más personalizable, pero requiere más configuración manual. Astos admite botas duales, a diferencia de SilverBlue.
- OpenSuse Microos : ASTOS es un sistema más personalizable, pero una vez más requiere un poco más de configuración manual. Microos funciona de manera similar en la forma en que utiliza instantáneas BTRFS. ASTOS tiene una instalación oficial de KDE, pero también admite otros entornos de escritorio, mientras que Microos solo admite correctamente GNOME. ASTOS admite arranque dual, así como en vivo, el sistema e instalación de paquetes sin reinicio.
Instalación
- Astos se instala desde el ISO oficial de Arch Linux Live disponible en https://archlinux.org/
- Si se encuentra con problemas de instalación de paquetes durante la instalación, asegúrese de usar el nuevo Arch ISO, y si es necesario, actualice el Pacman Keyring
- Necesita una conexión a Internet para instalar ASTOS
- Actualmente, Astos envía 4 perfiles de instalación, uno para instalaciones mínimas y dos para escritorio, uno con el entorno de escritorio de gnomo, uno con plasma kde y otro con compañero, pero se agregará soporte para más DE
- El script de instalación es fácilmente configurable y ajustado para sus necesidades (pero funciona bien sin ninguna modificación)
Instalar Git primero: esto nos permitirá descargar el script de instalación
Repositorio de clon
git clone "https://github.com/lambdanil/astOS"
cd astOS
Partition and Format Drive
- Si se instala en un sistema BIOS, use una tabla de partición DOS (MBR)
- En EFI puedes usar GPT
- La partición EFI debe formatearse a FAT32 antes de ejecutar el instalador (
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!
Ejecutar instalador
python3 main.py /dev/<partition> /dev/<drive> /dev/<efi part> # Skip the EFI partition if installing in BIOS mode
Configuración de la instalación post
- La configuración de la instalación posterior no es necesaria si instala una de las ediciones de escritorio (GNOME o KDE)
- Una gran cantidad de información sobre cómo manejar la configuración posterior a la instalación está disponible en la página Archwiki
- Aquí hay un pequeño procedimiento de configuración de ejemplo:
- Comience por crear una nueva instantánea desde
base usando ast clone 0 - Chroot dentro de esta nueva instantánea (
ast chroot <snapshot> ) y comience a configurar- Comience agregando una nueva cuenta de usuario:
useradd username - Establezca la contraseña de usuario
passwd username - Ahora establezca una nueva contraseña para el usuario root
passwd root - Ahora puede instalar paquetes adicionales (entornos de escritorio, tecnologías de contenedores, plano) usando Pacman
- Una vez hecho, salga del chroot con
exit 0 - Luego puede implementarlo con
ast deploy <snapshot>
Documentación adicional
- Se recomienda referirse al Arch Wiki para que la documentación no sea parte de este proyecto
- Informar problemas/errores en la página de problemas de GitHub
- Sugerencia: puede usar
ast help para obtener una hoja de trucos rápida de todos los comandos disponibles
Instantánea base
- La instantánea
0 está reservada para la instantánea del sistema base, no se puede cambiar y solo se puede actualizar usando ast base-update
Gestión de instantáneas
Mostrar el árbol del sistema de archivos
- La salida puede verse, por ejemplo, así:
root - root
├── 0 - base snapshot
└── 1 - multiuser system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
Agregue la descripción a la instantánea
- Las instantáneas le permiten agregar una descripción para una identificación más fácil
ast desc <snapshot> <description>
Eliminar un árbol
- Esto elimina el árbol y todas sus ramas
Configuración de arranque personalizada
- Si necesita usar una configuración de grub personalizada, coloque en una instantánea y editar
/etc/default/grub , luego implementa la instantánea y reinicie
chroot en instantánea
- Una vez dentro del chroot, el sistema operativo se comporta como un arco normal, por lo que puede instalar y eliminar paquetes con Pacman o similar
- No ejecute AST desde el interior de un chroot, podría causar daños al sistema, hay un fallas a prueba de fallas, que se puede pasar por alto con
--chroot si realmente necesita (no recomendado) - El chroot debe salir correctamente con
exit 0 , de lo contrario los cambios realizados no se guardarán - Para descartar los cambios realizados, use
exit 1 en su lugar - Si no sale de la manera "limpia" con
exit 0 , se recomienda ejecutar ast tmp para borrar los archivos temporales que quedan
- Puede ingresar una carcasa desbloqueada dentro de la instantánea de arranque actual con
- Los cambios realizados en la sesión en vivo no se guardan en nuevas implementaciones
Otras opciones de chroot
- Ejecuta un comando especificado dentro de la instantánea
ast run <snapshot> <command>
- Ejecuta un comando especificado dentro de la instantánea y todas sus ramas
ast tree-run <tree> <command>
Instantánea de clon
- Esto cliona la instantánea como un árbol nuevo
Clonar un árbol recursivamente
- Esto cliona un árbol entero recursivamente
ast clone-tree <snapshot>
Crear una nueva rama de árbol
- Agrega una nueva rama a la instantánea especificada
ast branch <snapshot to branch from>
Instantánea de clon bajo el mismo padre
Instantánea clon bajo el padre especificado
- Asegúrese de sincronizar el árbol después
ast ubranch <parent> <snapshot>
Crear un nuevo árbol base
Implementar instantánea
- Reiniciar para iniciar la nueva instantánea después de implementar
Actualizar la base de la cual se construyen nuevas instantáneas desde
- NOTA: La base en sí se encuentra en
/.snapshots/rootfs/snapshot-0 con sus archivos específicos /var y /etc que se ubica en /.snapshots/var/var-0 y /.snapshots/etc/etc-0 respectivamente, por lo tanto, si realmente necesita hacer un cambio de configuración, puede montar instantáneas esto como lectura y luego snapshot de retroceso, por lo tanto.
Gestión de paquetes
Instalación de software
- El software también se puede instalar utilizando Pacman en un chroot
- AUR se puede usar debajo del chroot
- Flatpak se puede usar para la instalación de paquetes persistentes
- El uso de contenedores para la instalación de software adicional también es una opción. Una forma fácil de hacer esto es con DistroBox
ast install <snapshot> <package>
- Después de instalar, puede sincronizar los paquetes recién instalados a todas las ramas del árbol con
- Sincronizar el árbol también actualiza automáticamente todas las instantáneas
- Si desea sincronizar sin actualizar (podría causar la duplicación de paquetes en la base de datos), use
Configuración de AUR
- Astos también admite el Aur de forma nativa
- Antes de que podamos habilitar el soporte AUR, primero debemos asegurarnos de que
paru no esté instalado:
ast remove <snapshot> paru
- Para usar esta función, primero debemos habilitar el soporte AUR en la configuración de la instantánea:
EDITOR=nano ast edit-conf <snapshot> # set the EDITOR variable
- Ahora necesitamos agregar la siguiente línea al archivo:
- Guardar y salir
- El soporte AUR ahora está habilitado:
ast install y otras operaciones ahora pueden instalar paquetes AUR como de costumbre
Eliminación de software
- Para una sola instantánea
ast remove <snapshot> <package or packages>
ast tree-rmpkg <tree> <pacakge or packages>
Actualización
Se recomienda clonar una instantánea antes de actualizarla, para que pueda retroceder en caso de falla
Esta actualización solo actualiza los paquetes del sistema, para actualizar AST, consulte esta sección
Para actualizar una sola instantánea
- Para actualizar recursivamente un árbol completo
Esto se puede configurar en un script (es decir, un script crontab) para actualizaciones automáticas fáciles y seguras
Si el sistema se vuelve incomitable después de una actualización, puede iniciar la última implementación de trabajo (seleccione en el menú Grub) y luego realizar una reversión
- Entonces puedes volver a reiniciar a un sistema de trabajo
Extras
Fijar paquetes corruptos de Pacman / problemas clave
- Arch's Pacman Package Manager a veces requiere una actualización de las teclas PGP
- Para solucionar este problema, simplemente podemos reinstalar el arco arqueado
ast install <snapshots> archlinux-keyring
Guardar cambios de configuración realizados en /etc
- Normalmente, la configuración debe hacerse con
ast chroot , pero a veces es posible que desee aplicar los cambios que ha realizado en el sistema de arranque persistentemente - Para hacer esto, use el siguiente comando
- Esto le permite configurar su sistema modificando
/etc como de costumbre, y luego guardando estos cambios
Bota dual
- ASTOS admite arranque dual usando el gotador de arranque grub
- Al instalar el sistema, use la partición EFI existente
- Para configurar el arranque dual, debemos comenzar instalando el paquete
os-prober :
ast install <snapshot> os-prober
- Ahora tenemos que configurar grub
ast chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit 0
- Ahora implementa la instantánea para reconfigurar el cargador de arranque
Si se detecta Windows, AST debe devolver la salida en la línea del Found Windows Boot Manager on...
Es posible que deba instalar ntfs-3g primero y volver a implementar si no ve una entrada de Windows.
Actualización de AST en sí misma
- AST no se actualiza junto con el sistema cuando se usa
ast upgrade - A veces puede ser necesario actualizar AST
- AST se puede actualizar con un solo comando
Depuración AST
- A veces puede ser necesario depurar AST
- Copie
ast a cualquier ubicación:
cp /usr/local/sbin/ast astpk.py
- El siguiente comando es útil, ya que muestra salidas de comandos al ejecutar astpk.py:
sed -i -e s, 2>&1> /dev/null,,g astpk.py
Si ha modificado el archivo AST original (posible pero no recomendado), ¡asegúrese de revertirlo cuando esté listo!
Errores conocidos
- Al ejecutar AST sin argumentos - IndexError: Index de lista fuera de rango
- Ejecutar AST sin permisos raíz muestra los errores denegados por permiso en lugar de un mensaje de error
- La partición de intercambio no funciona, se recomienda usar un archivo de intercambio o zram en su lugar
- Docker tiene problemas con los permisos, para arreglar la ejecución
sudo chmod 666 /var/run/docker.sock
- Si se encuentra con algún problema, infórmelos en la página de problemas
Que contribuye
- Las contribuciones de código y documentación son bienvenidos
- Los informes de errores también son una buena forma de contribuir al proyecto
- Antes de enviar una solicitud de extracción, pruebe su código y asegúrese de comentarlo correctamente
Comunidad
- ¡No dude en unirse a nosotros en Discord para una mayor discusión y apoyo!
- ¡Feliz instantánea sin preocupaciones!
El proyecto tiene licencia bajo la licencia AGPLV3