ASTOS (Snapshot Tree OS)
Uma distribuição imutável baseada em arco utilizando instantâneos BTRFS

Índice
- O que é ASTOS?
- ASTOS em comparação com outras distribuições semelhantes
- Documentação AST e ASTOS
- Instalação
- Pós -instalação
- Gerenciamento e implantações de instantâneos
- Gerenciamento de pacotes
- Documentação adicional
- Atualizando as chaves do Pacman
- Salvar mudanças de configuração em /etc persistentemente
- Configurando bota dupla
- Atualizando o próprio AST
- Debugando ast
- Configurando o AUR
- Bugs conhecidos
- Contribuindo
- Comunidade
ASTOS Development está atualmente inativo, consulte #33 (comentário)
O que é ASTOS?
ASTOS é uma distribuição moderna baseada no Arch Linux.
Ao contrário do Arch, ele usa um sistema de arquivos root imutável (somente leitura).
O software é instalado e configurado em árvores de instantâneos individuais, que podem ser implantadas e inicializadas.
Ele não usa seu próprio formato de pacote ou gerenciador de pacotes, em vez de confiar no Pacman do Arch.
Isso tem várias vantagens:
Segurança
- Mesmo que execute um aplicativo com permissões elevadas, ele não pode substituir as bibliotecas do sistema por versões maliciosas
Estabilidade e confiabilidade
- Devido ao fato de o sistema ser montado apenas como leitura, não é possível substituir acidentalmente os arquivos do sistema
- Se o sistema tiver problemas, você poderá reverter facilmente o último instantâneo em funcionamento em minutos
- Atualizações atômicas - Atualizar seu sistema de uma só vez é mais confiável
- Graças ao recurso de instantâneo, os ASTOS podem enviar software de ponta sem se tornar instável
- ASTOS precisa de pouca manutenção, pois possui uma ferramenta de atualização totalmente automática que cria instantâneos antes de atualizações e verificar automaticamente se o sistema atualizou corretamente antes de implantar o novo instantâneo
Configurabilidade
- Com os instantâneos organizados em uma árvore, você pode facilmente ter várias configurações diferentes do seu software disponível, com pacotes variados, sem qualquer interferência
- Por exemplo: você pode instalar um único desktop do Gnome e depois ter 2 instantâneos no topo - um com seus videogames, com o mais novo kernel e drivers, e o outro para o trabalho, com o kernel LTS e o software mais estável, você pode alternar facilmente entre eles, dependendo do que você está tentando fazer
- Você também pode experimentar o software facilmente sem ter que se preocupar em quebrar seu sistema ou poluí -lo com arquivos desnecessários, por exemplo, você pode experimentar um novo ambiente de desktop em um instantâneo e depois excluir o instantâneo depois, sem modificar seu sistema principal
- Isso também pode ser usado para sistemas multiusuário, onde cada usuário possui um sistema completamente separado com software diferente e, no entanto, eles podem compartilhar determinados pacotes, como kernels e drivers
- ASTOS permite que você instale o software cocrando em instantâneos; portanto, você pode usar software como a AUR para instalar pacotes adicionais
- ASTOS é, assim como Arch, muito personalizável, você pode escolher exatamente qual software deseja usar
Graças às suas atualizações de confiabilidade e automáticas, o ASTOS é bem adequado para dispositivos de uso único ou incorporado
Também contribui para uma boa estação de trabalho ou distribuição de uso geral, utilizando recipientes de desenvolvimento e aplicações FlatPak para desktop
ASTOS em comparação com outras distribuições semelhantes
- Nixos - Comparado ao Nixos, o ASTOS é um sistema mais tradicional com a forma como é configurada e mantida. Enquanto o Nixos é totalmente configurado usando a linguagem de programação do NIX, o ASTOS usa o Pacman Package Manager da Arch. O ASTOS consome menos armazenamento e a configuração do seu sistema é mais rápida e mais fácil (menos reproduzível, no entanto), também oferece mais opções de personalização. O ASTOS é compatível com o FHS, garantindo a compatibilidade adequada do software.
- ASTOS permite a configuração declarativa usando Ansible, para funcionalidade um tanto semelhante ao NIXOS
- Fedora Silverblue/Kinoite - ASTOS é mais personalizável, mas requer mais configuração manual. O ASTOS suporta bota dupla, ao contrário do SilverBlue.
- OpenSuse Microos - ASTOS é um sistema mais personalizável, mas mais uma vez requer uma configuração um pouco mais manual. O Microos funciona da mesma forma na maneira como utiliza instantâneos BTRFS. O ASTOS possui uma instalação oficial do KDE, mas também suporta outros ambientes de desktop, enquanto o Microos suporta apenas o GNOME. O ASTOS suporta bota dupla, bem como a deputação ao vivo do sistema e a instalação de pacotes sem reinicialização.
Instalação
- ASTOS está instalado no Arch Linux Live ISO disponível em https://archlinex.org/
- Se você tiver problemas para instalar pacotes durante a instalação, verifique se está usando o mais novo Arch ISO e, se necessário, atualize o Pacman Keyring
- Você precisa de uma conexão com a Internet para instalar os ASTOS
- Atualmente, os perfis de instalação do ASTOS Ships 4, um para instalações mínimas e duas para desktop, um com o ambiente da área de trabalho do Gnome, um com plasma KDE e outro com companheiro, mas o suporte para mais DES será adicionado
- O script de instalação é facilmente configurável e ajustado para suas necessidades (mas funciona muito bem sem modificações)
Instale o git primeiro - isso nos permitirá baixar o script de instalação
Repositório de clones
git clone "https://github.com/lambdanil/astOS"
cd astOS
Unidade de partição e formato
- Se instalar em um sistema BIOS, use uma tabela de partição DOS (MBR)
- Na EFI, você pode usar GPT
- A partição EFI deve ser formatada para FAT32 antes de executar o 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!
Execute o instalador
python3 main.py /dev/<partition> /dev/<drive> /dev/<efi part> # Skip the EFI partition if installing in BIOS mode
Publique instalação de instalação
- A instalação de postagem não é necessária se você instalar uma das edições da área de trabalho (Gnome ou KDE)
- Muitas informações sobre como lidar com a configuração pós-instalação estão disponíveis na página Archwiki
- Aqui está um pequeno procedimento de configuração de exemplo:
- Comece criando um novo instantâneo da
base usando ast clone 0 - Chroot dentro deste novo instantâneo (
ast chroot <snapshot> ) e inicie a configuração- Comece adicionando uma nova conta de usuário:
useradd username - Defina a senha do usuário
passwd username - Agora defina uma nova senha para o usuário root
passwd root - Agora você pode instalar pacotes adicionais (ambientes de desktop, tecnologias de contêineres, Flatpak) usando o Pacman
- Uma vez feito, saia do chroot com
exit 0 - Então você pode implantá -lo com
ast deploy <snapshot>
Documentação adicional
- É aconselhável se referir ao Wiki Arch para documentação que não faz parte deste projeto
- Relatar questões/bugs na página de problemas do github
- Dica: você pode usar
ast help para obter uma folha de trapaça rápida de todos os comandos disponíveis
Instantâneo base
- O instantâneo
0 é reservado para o instantâneo do sistema básico, ele não pode ser alterado e só pode ser atualizado usando ast base-update
Gerenciamento de instantâneos
Mostre a árvore do sistema de arquivos
- A saída pode procurar, por exemplo, assim:
root - root
├── 0 - base snapshot
└── 1 - multiuser system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
Adicione descrição ao instantâneo
- Os instantâneos permitem adicionar uma descrição a eles para facilitar a identificação
ast desc <snapshot> <description>
Exclua uma árvore
- Isso remove a árvore e tudo o que seus galhos
Configuração de inicialização personalizada
- Se você precisar usar uma configuração de grub personalizada, chroot em um instantâneo e editar
/etc/default/grub , depois implante o instantâneo e reinicie
Chroot no instantâneo
- Uma vez dentro do chroot, o sistema operacional se comporta como arco comum, para que você possa instalar e remover pacotes usando Pacman ou similar
- Não corra AST de dentro de um chroot, isso pode causar danos ao sistema, há um falhas no lugar, que pode ser ignorado com
--chroot se você realmente precisar (não recomendado) - O chroot deve ser apagado corretamente com
exit 0 , caso contrário, as alterações feitas não serão salvas - Para descartar as mudanças feitas, use
exit 1 em vez disso - Se você não sair da maneira "limpa" com
exit 0 , é recomendável executar ast tmp para limpar os arquivos temporários deixados para trás
- Você pode inserir uma concha desbloqueada dentro do instantâneo atual de botas com
- As alterações feitas para a sessão ao vivo não são salvas em novas implantações
Outras opções de chroot
- Executa um comando especificado dentro do instantâneo
ast run <snapshot> <command>
- Executa um comando especificado dentro do instantâneo e tudo o que são ramos
ast tree-run <tree> <command>
Clone Snapshot
- Este clones o instantâneo como uma nova árvore
Clonar uma árvore recursivamente
- Isso clones uma árvore inteira recursivamente
ast clone-tree <snapshot>
Crie novo galho de árvore
- Adiciona uma nova filial ao instantâneo especificado
ast branch <snapshot to branch from>
Clone Snapshot sob o mesmo pai
Clone Snapshot sob pai especificado
- Certifique -se de sincronizar a árvore depois
ast ubranch <parent> <snapshot>
Crie nova árvore base
Implante instantâneo
- Reinicie para inicializar no novo instantâneo após implantar
Base de atualização de quais novos instantâneos são construídos a partir de
- A própria base está localizada em
/.snapshots/rootfs/snapshot-0 com seus arquivos específicos /var e /etc sendo localizados em /.snapshots/var/var-0 e /.snapshots/etc/etc-0 , portanto, se você realmente precisar e fazer uma mudança de configuração, o que pode ser um snapfot para que você possa fazer uma mudança de snaps/etc/ETC-0, assim como você realmente precisa fazer uma mudança de configuração, o que pode ser relevado, o que pode ser realizado, mas também pode fazer uma mudança de snapShots, que pode ser snaps/etc/ETC-0, portanto, se você realmente precisa fazer uma mudança de configuração, o que pode ser snapfot, que pode ser realizado, mas também pode fazer uma alteração de snapSots/ETC/ETC-0, pois, se você realmente precisar e fazer uma mudança de configuração.
Gerenciamento de pacotes
Instalação de software
- O software também pode ser instalado usando Pacman em um chroot
- Aur pode ser usado sob o chroot
- Flatpak pode ser usado para instalação de embalagem persistente
- O uso de contêineres para instalação adicional de software também é uma opção. Uma maneira fácil de fazer isso é com a distrobóx
ast install <snapshot> <package>
- Depois de instalar, você pode sincronizar os pacotes recém -instalados a todos os galhos da árvore com
- A sincronização da árvore também atualiza automaticamente todos os instantâneos
- Se você deseja sincronizar sem atualizar (pode causar duplicação de pacotes no banco de dados), use
Configuração da AUR
- ASTOS também suporta a AUR nativamente
- Antes de podermos ativar o suporte da AUR, primeiro temos que garantir que
paru não esteja instalado:
ast remove <snapshot> paru
- Para usar esse recurso, primeiro precisamos ativar o suporte da AUR na configuração do instantâneo:
EDITOR=nano ast edit-conf <snapshot> # set the EDITOR variable
- Agora precisamos adicionar a seguinte linha ao arquivo:
- Salvar e desistir
- O suporte da AUR agora está ativado -
ast install e outras operações agora podem instalar pacotes AUR como de costume
Remoção de software
- Para um único instantâneo
ast remove <snapshot> <package or packages>
ast tree-rmpkg <tree> <pacakge or packages>
Atualização
É aconselhável clonar um instantâneo antes de atualizá -lo, para que você possa reverter em caso de falha
Esta atualização apenas atualiza os pacotes do sistema, para atualizar o próprio AST, consulte esta seção
Para atualizar um único instantâneo
- Para atualizar recursivamente uma árvore inteira
Isso pode ser configurado em um script (ou seja, um script crontab) para atualizações automáticas fáceis e seguras
Se o sistema se tornar inalterável após uma atualização, você poderá inicializar a última implantação de trabalho (selecione no menu Grub) e depois executar uma reversão
- Então você pode reiniciar de volta a um sistema de trabalho
Extras
Corrigindo pacotes corrompidos do Pacman / questões -chave
- O gerenciador de pacotes de Pacman's Pacman às vezes exige uma atualização das teclas PGP
- Para corrigir esse problema, podemos simplesmente reinstalar eles arquear
ast install <snapshots> archlinux-keyring
Salvando as alterações de configuração feitas em /etc
- Normalmente, a configuração deve ser feita com
ast chroot , mas às vezes você pode aplicar mudanças que você fez no sistema de inicialização persistentemente - Para fazer isso, use o seguinte comando
- Isso permite que você configure seu sistema modificando
/etc como de costume e, em seguida, salvando essas alterações
Boot dupla
- ASTOS suporta bota dupla usando o carregador de inicialização Grub
- Ao instalar o sistema, use a partição EFI existente
- Para configurar a bota dupla, devemos começar instalando o pacote
os-prober :
ast install <snapshot> os-prober
- Agora temos que configurar o grub
ast chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit 0
- Agora basta implantar o instantâneo para reconfigurar o carregador de inicialização
Se o Windows for detectado, o AST deve retornar a saída ao longo das linhas Found Windows Boot Manager on...
Pode ser necessário instalar ntfs-3g primeiro e re-implantar se você não vir uma entrada do Windows.
Atualizando o próprio AST
- AST não é atualizado ao lado do sistema quando
ast upgrade é usada - Às vezes pode ser necessário atualizar o próprio AST
- AST pode ser atualizado com um único comando
Debugando ast
- Às vezes pode ser necessário depurar ast
- Copie
ast para qualquer local:
cp /usr/local/sbin/ast astpk.py
- O comando a seguir é útil, pois mostra saídas de comandos ao executar ASTPK.PY:
sed -i -e s, 2>&1> /dev/null,,g astpk.py
Se você modificou o arquivo AST original (possível, mas não recomendado), certifique -se de reverter -o de volta quando terminar!
Bugs conhecidos
- Ao executar AST sem argumentos - IndexError: List Index Fora do intervalo
- Executar AST sem permissões de raiz mostra a permissão negado erros em vez de uma mensagem de erro
- A partição de troca não funciona, é recomendável usar um swapfile ou zram em vez disso
- Docker tem problemas com permissões, para corrigir a execução
sudo chmod 666 /var/run/docker.sock
- Se você tiver algum problema, relate -os na página de problemas
Contribuindo
- As contribuições de código e documentação são bem -vindas
- Relatórios de bugs são uma boa maneira de contribuir para o projeto também
- Antes de enviar uma solicitação de tração, teste seu código e certifique -se de comentar corretamente
Comunidade
- Sinta -se à vontade para se juntar a nós na Discord para mais discussões e apoio!
- Feliz instantâneo sem preocupações!
O projeto está licenciado sob a licença AGPLV3