12 подписчиков

Шпаргалка для Atomic-редакций дистрибутива Fedora

 Fedora Silverblue, Kinoite и Atomic-редакции определённо снискали популярность у пользователей Linux, не в последнюю очередь благодаря усилиям сообщества по активному внедрению передовых технологий.

Fedora Silverblue, Kinoite и Atomic-редакции определённо снискали популярность у пользователей Linux, не в последнюю очередь благодаря усилиям сообщества по активному внедрению передовых технологий.

Их основные преимущества: неизменяемость, чёткое управление слоями RPM-пакетов, а также версионный контроль, в купе со встроенным инструментарием контейнеризации для разработчиков – toolbox, делают Fedora Atomic Desktops весьма желанными.

Однако технология OSTree, лежащая в основе всего вышеперечисленного, не всегда понятна начинающему пользователю. Отличный гайд для базового понимания уже существует, а в этой статье мы рассмотрим шпаргалки и нюансы, о которых найти упоминание в сети крайне трудно.

Данная статья является адаптацией гайда на GitHub.

Закрепление образа

Бытует мнение, что Fedora Atomic Desktops поддерживает только 3 образа в своей истории commit-ов:

  1. текущее развёртывание;
  2. предыдущее развёртывание;
  3. закреплённое развёртывание.

И действительно, почти во всех обзорах, что я находил, количество развёртываний не превышало 3-ёх, где-то даже явно говорилось о невозможности создания большего количества образов.

Однако это абсолютно неверное мнение! OSTree поддерживает практически неограниченное количество развёртываний при помощи закрепления оных.

sudo ostree admin pin N

Здесь N – индекс развёртывания.

С помощью данной команды вы можете закрепить сколько угодно образов, которые будут помечены фразой: «pinned: yes» при выводе статуса системы.

rpm-ostree status

Однако стоит помнить, что за каждый образ нужно платить, и плата эта – пространство вашего дискового накопителя. Потому крайне не рекомендуется создавать большое количество развёртываний.

Выбор основного развёртывания

В предыдущем пункте мы определились, что развёртываний может быть неопределённо много, но как сделать одно из них загружаемым по умолчанию?

Для этого существует команда:

sudo ostree admin set-default N

Будьте внимательны! Эта команда может привести к небольшой путанице в вашем загрузчике GRUB.

Возвращение удалённого базового пакета

Про удаление встроенного в базовый образ пакета гайдов хоть отбавляй:

rpm-ostree override remove firefox

А вот как вернуть системе исходно находившийся в ней пакет без наслаивания RPM?

rpm-ostree override reset firefox

Переключение на commit системной ветки

Иногда существует необходимость вернуться к предыдущему commit-у системной ветки, а его в загрузчике уже нет. В этом случае можно загрузить список commit-ов из удалённого репозитория Fedora.

  • Загрузите 5 последних commit-ов из ветки Fedora Silverblue.

ostree pull --commit-metadata-only --depth 5 fedora fedora/40/x86_64/silverblue

  • Если хотите иметь возможность вернуться к текущему образу, закрепите его
  • Выведите загруженные commit-ы, чтобы выбрать лучший, основываясь на временной метке или другом критерии.

ostree log fedora:fedora/40/x86_64/silverblue

  • Разверните выбранный commit, используя его хеш или версию.

rpm-ostree deploy 520e744c643b85fd14817a3eb948f200e7dec902cad4157e411dfeda2c6d7aab

  • Перед перезагрузкой можно проверить, всё ли верно мы сделали.

rpm-ostree status

Очистка дискового пространства

Иногда случается так, что нам нужно больше места на диске, а commit-ы OSTree не очень-то важны для нас. В таком случае можно очистить неактивные в данный момент развёртывания:

rpm-ostree cleanup -p -b -r -m

Будьте осторожны! Это удалит все образы, кроме текущего, и операция отката станет невозможна.

Для другого сценария очистки можно посмотреть справку:

rpm-ostree cleanup --help

Проверка целостности системных файлов

На мой взгляд, очень редкий сценарий, но на плохих накопителях или при стороннем вмешательстве в систему может иметь место быть – измененные системные файлы.

Для того чтобы проверить образ, выполните команду:

ostree fsck -a

Если добавить к команде флаг --delete, это разрешит OSTree удалить плохие файлы, о чём будет сделана пометка в статусе развёртывания. Впоследствии их можно будет загрузить заново.