Обновление и откат системы
Обновление это новый образ и перезагрузка. Если что-то не так, одна команда возвращает прошлое состояние.
Как обновляется система
Система хранится как образ контейнера в реестре. Обновление скачивает свежий образ в «ожидание» (staged), и после перезагрузки он становится активным целиком, атомарно. Пока вы работаете, текущая система не меняется.
apm system upgrade
sudo rebootapm system upgrade обновляет систему внутри вашего канала (stable остаётся stable, latest остаётся latest). Сменить канал можно командой bootc switch (см. «Ветки»).
Обновления можно запускать и без терминала: из виджета обновлений в панели Niti и из приложения Atomic Booster (вкладка «Atomic Niri»). Перед обновлением Booster проверяет подпись образа.
Ваши данные не затрагиваются. Домашняя папка (/var/home) лежит на отдельном разделе и переживает любые обновления и откаты.
Как откатиться
Система хранит два состояния: текущее и предыдущее. После обновления старое становится «откатным». Если новая сборка вам не подошла, верните прошлую:
sudo bootc rollback
sudo rebootОткат занимает секунды: меняются местами две записи в загрузчике, ничего не скачивается и не пересобирается. Если у вас уже скачано, но ещё не применено обновление (staged), rollback просто отбросит его.
Хранятся только два состояния. После следующего обновления откатное состояние сменится на то, на котором вы сидели до него.
Временные правки в /usr
Нужно что-то быстро поправить или поставить для проверки? sudo bootc usr-overlay делает /usr временно записываемым. Всё исчезнет после перезагрузки, поэтому это удобный способ экспериментировать без риска.
Почему обновления небольшие: chunkah
Образ системы состоит из слоёв. Если при каждой сборке содержимое слоёв перемешивается, то даже при крошечном изменении клиент скачивает почти всё заново. Чтобы этого избежать, образ перед публикацией «нарезают» на слои по смыслу.
chunkah это инструмент от проекта CoreOS (на Rust), который раскладывает файлы образа по слоям по границам пакетов (по базе RPM). Так как состав пакетов между сборками почти не меняется, слои остаются идентичными, и при обновлении клиент докачивает только то, что действительно изменилось: меньше трафика, меньше записи на диск.
- chunkah используется в сборке образа Atomic Niri при публикации в реестр. В экосистеме ALT он пока помечен как экспериментальный.
- Его предшественник, rechunk, сравнивал новую сборку с предыдущей. chunkah обходится без сравнения и работает по составу пакетов, поэтому проще устроен.
- Он дополняет, а не заменяет докачку на стороне клиента (zstd:chunked): chunkah отвечает за то, как слои нарезаны при сборке, а клиент за то, что докачивается.
Размер образа в реестре около 2,6 ГиБ, но при обновлениях скачивается только изменившаяся часть.
Безопасность обновлений: подпись и SBOM
Образы каналов latest, stable и dev-test подписаны ключом проекта (cosign), к образу приложен SBOM (список пакетов и известных уязвимостей, формат CycloneDX). Atomic Booster проверяет подпись и SBOM перед обновлением и сменой канала: если подписи нет или она не сходится, обновление не выполняется.
Проверить вручную (нужен cosign, публичный ключ лежит в образе):
cosign verify --key /usr/share/atomic-booster/release-pubkey.pem \
altlinux.space/plafonlinux/atomic-niri-plafon:latestШпаргалка
| Задача | Команда |
|---|---|
| Обновиться | apm system upgrade, затем sudo reboot |
| Откатиться | sudo bootc rollback, затем sudo reboot |
| Сменить канал | sudo bootc switch altlinux.space/plafonlinux/atomic-niri-plafon:КАНАЛ |
| Что сейчас установлено | bootc status |
Временно править /usr | sudo bootc usr-overlay (слетает после перезагрузки) |