Astos (Arch Snapshot Tree OS)
Неипленное распределение на основе арки с использованием снимков BTRFS

Оглавление
- Что такое Astos?
- Astos по сравнению с другими подобными распределениями
- Документация AST и ASTOS
- Установка
- После установки
- Управление снимками и развертываниями
- Управление пакетами
- Дополнительная документация
- Обновление ключей Pacman
- Сохранение изменений конфигурации в /и т. Д. Постоянно
- Настройка двойной загрузки
- Обновление самого AST
- Отладка аст
- Настройка AUR
- Известные ошибки
- Внося
- Сообщество
Разработка Astos в настоящее время неактивна, см. #33 (комментарий)
Что такое Astos?
Astos - это современное распределение, основанное на Arch Linux.
В отличие от Arch, она использует неизменную (только для чтения) корневую файловую систему.
Программное обеспечение установлено и настроено на отдельные деревья снимков, которые затем можно развернуть и загрузить.
Он не использует свой собственный формат пакета или менеджер пакетов, вместо этого полагаясь на Pacman из Arch.
Это имеет несколько преимуществ:
Безопасность
- Даже если запустить приложение с линиными разрешениями, оно не может заменить системные библиотеки на злонамеренные версии
Стабильность и надежность
- Из -за того, что система монтируется только в качестве чтения, невозможно случайно перезаписать системные файлы
- Если система сталкивается с проблемами, вы можете легко отказываться от последнего рабочего снимка в течение нескольких минут
- Атомные обновления - обновление вашей системы сразу еще более надежно
- Благодаря функции снимка, Astos может поставлять передовое программное обеспечение, не становясь нестабильными
- Astos требует небольшого обслуживания, так как у него есть встроенный полностью автоматический инструмент обновления, который создает снимки перед обновлениями и автоматически проверяет, правильно ли обновляется система перед развертыванием нового снимка
Конфигурируемость
- С помощью снимков, организованных в дерево, вы можете легко иметь несколько различных конфигураций вашего программного обеспечения, с различными пакетами, без каких -либо помех
- Например: у вас может быть установлен один рабочий стол Gnome, а затем получить 2 снимка сверху - один с вашими видеоиграми, с новейшим ядром и драйверами, а другой для работы, с ядро LTS и более стабильным программным обеспечением, вы можете легко переключаться между ними в зависимости от того, что вы пытаетесь сделать
- Вы также можете легко попробовать программное обеспечение, не беспокоясь о том, чтобы разбить вашу систему или загрязнять его ненужными файлами, например, вы можете попробовать новую среду рабочего стола в снимке, а затем удалить снимок после, без изменения своей основной системы вообще
- Это также можно использовать для многопользовательских систем, где у каждого пользователя есть совершенно отдельная система с различным программным обеспечением, и все же он может поделиться определенными пакетами, такими как ядра и драйверы
- Astos позволяет устанавливать программное обеспечение, Chrooting в снимки, поэтому вы можете использовать программное обеспечение, такое как AUR для установки дополнительных пакетов
- Astos, как Arch, очень настраиваемо, вы можете выбрать именно то, какое программное обеспечение вы хотите использовать
Благодаря его надежным и автоматическим обновлениям Astos подходит для отдельных или встроенных устройств
Это также создает хорошую рабочую станцию или распределение общего использования с использованием контейнеров для разработки и flatpak для настольных приложений
Astos по сравнению с другими подобными распределениями
- Nixos - по сравнению с Nixos, Astos - более традиционная система с тем, как она настроена и поддерживается. В то время как Nixos полностью настроен с использованием языка программирования NIX, ASTOS использует диспетчер пакетов Arch Pacman. Astos потребляет меньше хранилища, а настройка вашей системы более быстрая и проще (однако менее воспроизводимо), что также дает вам больше вариантов настройки. Astos соответствует FHS, обеспечивая правильную совместимость с программным обеспечением.
- Astos позволяет декларативной конфигурации с использованием Ansible, для несколько аналогичной функциональности NIXOS
- Fedora Silverblue/Kinoite - Astos более настраима, но требует большей ручной установки. Astos поддерживает Dual Boot, в отличие от SilverBlue.
- OpenSuse Microos - Astos - более настраиваемая система, но снова требует немного большей ручной настройки. Microos работает так же, как он использует снимки BTRFS. Astos имеет официальную установку KDE, но также поддерживает другие настольные среды, в то время как Microos только правильно поддерживает GNOME. Astos поддерживает двойную загрузку, а также в прямом эфире системы и установку пакетов без перезагрузки.
Установка
- Astos установлен из официального Arch Linux Live ISO, доступный на https://archlinux.org/
- Если вы столкнетесь с проблемами установки пакетов во время установки, убедитесь, что вы используете новейшую Arch ISO, и, если необходимо обновить Pacman Keyring
- Вам нужно подключение к Интернету для установки Astos
- В настоящее время Astos Ships 4 профили установки, один для минимальных установок и два для настольных компьютеров, один с настольной средой Gnome, один с плазмой KDE и один с Mate, но поддержка будет добавлена большего количества DE
- Сценарий установки легко настраивается и регулируется для ваших потребностей (но он работает очень хорошо без каких -либо изменений)
Сначала установить GIT - это позволит нам загрузить сценарий установки
Репозиторий клона
git clone "https://github.com/lambdanil/astOS"
cd astOS
Перегородка и формат
- При установке в системе BIOS используйте таблицу разделов DOS (MBR)
- На EFI вы можете использовать GPT
- Разделение EFI должно быть отформатировано в FAT32 перед запуском установщика (
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!
Запустить установщик
python3 main.py /dev/<partition> /dev/<drive> /dev/<efi part> # Skip the EFI partition if installing in BIOS mode
После установки установки
- Настройка установки не требуется, если вы установите одно из настольных изданий (GNOME или KDE)
- Много информации о том, как обрабатывать настройку после установки, доступно на странице Archwiki
- Вот небольшой пример процедуры настройки:
- Начните с создания нового снимка из
base , используя ast clone 0 - Chroot внутри этого нового снимка (
ast chroot <snapshot> ) и начать настройку- Начните с добавления новой учетной записи пользователя:
useradd username - Установите
passwd username - Теперь установите новый пароль для root user
passwd root - Теперь вы можете установить дополнительные пакеты (настольные среды, контейнерные технологии, Flatpak), используя PACMAN
- После того, как это сделано, выйдите из Chroot с
exit 0 - Тогда вы можете развернуть его с помощью
ast deploy <snapshot>
Дополнительная документация
- Рекомендуется обратиться к Arch Wiki для документации, а не частью этого проекта
- Сообщите о проблемах/ошибках на странице выпусков GitHub
- Подсказка: вы можете использовать
ast help , чтобы получить быстрый лист всех доступных команд
Базовый снимок
- Снимок
0 зарезервирован для снимка базовой системы, его нельзя изменить и может быть обновлен только с помощью ast base-update
Управление снимками
Показать дерево файловой системы
- Вывод может искать, например, например:
root - root
├── 0 - base snapshot
└── 1 - multiuser system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
Звездочка показывает, какой снимок в настоящее время выбирается в качестве дефолта
Вы также можете получить только количество загруженного снимка в настоящее время с
Добавить описание в снимки
- Снимки позволяют добавить им описание для более легкой идентификации
ast desc <snapshot> <description>
Удалить дерево
- Это удаляет дерево и все его ветви
Пользовательская конфигурация загрузки
- Если вам нужно использовать пользовательскую конфигурацию Grub, Chroot в снимок и редактировать
/etc/default/grub , затем разверните снимок и перезагрузку
Chroot в снимок
- Оказавшись внутри Chroot ОС ведет себя как обычная арка, поэтому вы можете установить и удалять пакеты с помощью Pacman или аналогичного
- Не запускайте AST изнутри Chroot, он может нанести ущерб системе, на месте существует сбой, который может быть обойден
--chroot , если вам действительно нужно (не рекомендуется) - Chroot должен быть выведен должным образом с
exit 0 , в противном случае внесенные изменения не будут сохранены - Чтобы отказаться от внесенных изменений, вместо этого используйте
exit 1 - Если вы не выходите из Chroot «чистый» способ с
exit 0 , рекомендуется запустить ast tmp , чтобы очистить временные файлы, оставшиеся позади
- Вы можете ввести разблокированную оболочку в текущий загрузочный снимок с
- Изменения, внесенные в живую сессию, не сохранены в новых развертываниях
Другие варианты Chroot
- Запускает указанную команду внутри снимка
ast run <snapshot> <command>
- Запускает указанную команду внутри снимка и все его ветви
ast tree-run <tree> <command>
Снимок клона
- Это клонирует снимок как новое дерево
Клонировать дерево рекурсивно
- Это клонирует все дерево рекурсивно
ast clone-tree <snapshot>
Создать новую ветвь дерева
- Добавляет новую ветку в указанный снимок
ast branch <snapshot to branch from>
Снимок клона под тем же родителем
Снимок клона под указанным родителем
- Обязательно синхронизируйте дерево после
ast ubranch <parent> <snapshot>
Создать новое базовое дерево
Развернуть снимок
- Перезагрузитесь, чтобы загрузиться в новый снимок после развертывания
Обновить базу, которые построены новые снимки
- Примечание. Сама база расположена по адресу
/.snapshots/rootfs/snapshot-0 с его конкретными /var файлами и /etc расположенными по адресу /.snapshots/var/var-0 и /.snapshots/etc/etc-0 соответственно, поэтому, если вам действительно нужно сделать изменение конфигурации, вы можете снять с помощью Snapshot.
Управление пакетами
Установка программного обеспечения
- Программное обеспечение также может быть установлено с использованием PACMAN в Chroot
- AUR может быть использован под Chroot
- Flatpak можно использовать для постоянной установки пакета
- Использование контейнеров для дополнительной установки программного обеспечения также является опцией. Легкий способ сделать это с Distrobox
ast install <snapshot> <package>
- После установки вы можете синхронизировать недавно установленные пакеты ко всем ветвям дерева с
- Синхронизация дерева также автоматически обновляет все снимки
- Если вы хотите синхронизировать без обновления (может вызвать дублирование пакета в базе данных), тогда используйте
AUR установка
- Astos также поддерживает AUR изначально
- Прежде чем мы сможем включить поддержку AUR, мы сначала должны убедиться, что
paru не установлен:
ast remove <snapshot> paru
- Чтобы использовать эту функцию, нам сначала нужно включить поддержку AUR в конфигурации снимка:
EDITOR=nano ast edit-conf <snapshot> # set the EDITOR variable
- Теперь нам нужно добавить следующую строку в файл:
- Сохранить и уйти
- Поддержка AUR теперь включена -
ast install , а другие операции теперь могут устанавливать пакеты AUR, как обычно
Удаление программного обеспечения
ast remove <snapshot> <package or packages>
ast tree-rmpkg <tree> <pacakge or packages>
Обновление
Перед тем, как обновить его, рекомендуется клонировать снимок, чтобы вы могли откатиться в случае сбоя
Это обновление только обновляет пакеты систем, чтобы обновить сам AST см. В этом разделе
Чтобы обновить один снимок
- Рекурсивно обновить целое дерево
Это можно настроить в скрипте (т.е. сценарий Crontab) для простых и безопасных автоматических обновлений
Если система становится непрерывной после обновления, вы можете загрузить последнее рабочее развертывание (выберите в меню Grub), а затем выполнить откат
- Затем вы можете перезагрузиться в рабочую систему
Дополнения
Исправление коррупционных пакетов Pacman / ключевые проблемы
- Менеджер пакетов Arch Pacman иногда требует обновления ключей PGP
- Чтобы решить эту проблему, мы можем просто переустановить, они архируют кейринг
ast install <snapshots> archlinux-keyring
Сохранение изменений конфигурации, сделанных в /etc
- Обычно конфигурация должна быть выполнена с помощью
ast chroot , но иногда вы можете применить изменения, которые вы внесли в загруженную систему постоянно - Для этого используйте следующую команду
- Это позволяет вам настраивать вашу систему путем изменения
/etc Как обычно, а затем сохраняя эти изменения
Двойная загрузка
- Astos поддерживает двойную загрузку, используя загрузчик Grub
- При установке системы используйте существующий раздел EFI
- Чтобы настроить двойную загрузку, мы должны начать с установки пакета
os-prober :
ast install <snapshot> os-prober
- Теперь мы должны настроить Grub
ast chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit 0
- Теперь просто разверните снимок для реконфигурирования загрузчика
Если Windows обнаружена, AST должен вернуть вывод вдоль линейки Found Windows Boot Manager on...
Возможно, вам потребуется сначала установить ntfs-3g и повторно развернуть, если вы не видите запись Windows.
Обновление самого AST
- AST не обновляется вместе с системой, когда используется
ast upgrade - Иногда может быть необходимо обновить сам AST
- AST может быть обновлен с помощью одной команды
Отладка аст
- Иногда может быть необходимо отлаживать AST
- Скопируйте
ast в любом месте:
cp /usr/local/sbin/ast astpk.py
- Следующая команда полезна, поскольку показывает выходы команд при запуске astpk.py:
sed -i -e s, 2>&1> /dev/null,,g astpk.py
Если вы изменили исходный файл AST (возможно, но не рекомендуется), обязательно верните его обратно, когда закончите!
Известные ошибки
- При запуске AST без аргументов - Индексерр: индекс списка вне диапазона
- Запуск AST без корневых разрешений показывает разрешение, запрещенные ошибки вместо сообщения об ошибке
- Перегородка не работает, рекомендуется использовать Swapfile или ZRAM вместо этого
- У Docker есть проблемы с разрешениями, исправить запуск
sudo chmod 666 /var/run/docker.sock
- Если вы столкнетесь с любыми проблемами, сообщите о них на странице проблем
Внося
- Взносы кода и документации приветствуются
- Отчеты об ошибках - хороший способ внести свой вклад в проект
- Перед отправкой проверки запроса на вытягивание вашего кода и обязательно прокомментируйте его должным образом
Сообщество
- Пожалуйста, не стесняйтесь присоединиться к нам на Discord для дальнейшего обсуждения и поддержки!
- Счастливого беззаботного снимка!
Проект лицензирован по лицензии AGPLV3