Подробный гайд: Откат системы через GRUB в ALT Atomic
Важно:
ALT Atomic построен на базе транзакционной модели обновлений с использованием Btrfs, snapper и grub-btrfs. Данный гайд описывает стандартный механизм отката, применяемый в этой сборке. Если ваша система использует альтернативный стек (например, ostree или кастомную схему субтомов), шаги могут отличаться. Всегда сверяйтесь с официальной документацией ALT Linux.
1. Как работает откат в ALT Atomic
- Система хранит корневую ФС на
Btrfs. - При каждом обновлении автоматически создаётся снапшот (снимок состояния) через
snapper. - Загрузчик GRUB настраивается так, чтобы отображать доступные снапшоты в меню загрузки.
- Откат = загрузка предыдущего снапшота и назначение его активным состоянием системы.
2. Предварительные условия
Перед откатом убедитесь, что:
- Корневая ФС смонтирована как
Btrfs(df -T /илиbtrfs filesystem show /). - Установлены и активны пакеты:
snapper,grub-btrfs(илиgrub2-btrfs),grub2. - Снапшоты создаются автоматически (проверка:
sudo snapper list). - У вас есть доступ к консоли восстановления или Live-USB (на случай, если GRUB не загрузится).
3. Способ 1: Автоматический откат через меню GRUB (рекомендуемый)
Шаг 1. Перезагрузите систему
sudo reboot
Шаг 2. В меню GRUB выберите расширенные параметры
- Если меню GRUB скрыто, удерживайте
Shift(BIOS) илиEsc(UEFI) при загрузке.
- Найдите пункт:
ALT Atomic (Advanced options)
или
ALT Atomic (snapshots)
Шаг 3. Выберите нужный снапшот
- В списке будут записи вида:
ALT Atomic, with Linux ... (snapshot #42)
- Номера и описания соответствуют выводу
snapper list. - Выберите снапшот, созданный до проблемного обновления, и нажмите
Enter.
Шаг 4. Проверьте работу системы
- Система загрузится в состояние выбранного снимка.
- Убедитесь, что проблема устранена, службы работают, данные на месте.
4. Способ 2: Ручной выбор снапшота в GRUB (если меню снапшотов отсутствует)
Шаг 1. В GRUB нажмите e на основной загрузочной записи
Откроется редактор параметров ядра.
Шаг 2. Найдите строку, начинающуюся с linux или linuxefi
В ней будет параметр root=.
Добавьте или измените rootflags:
rootflags=subvol=@/.snapshots/<НОМЕР>/snapshot
Пример:
linux /boot/vmlinuz-... root=UUID=xxxx-xxxx ro quiet splash rootflags=subvol=@/.snapshots/38/snapshot
Точный путь зависит от схемы субтомов. В ALT Atomic по умолчанию используется @/.snapshots/N/snapshot. Проверить можно через sudo btrfs subvolume list /.
Шаг 3. Загрузитесь
Нажмите Ctrl+X или F10.
Шаг 4. После загрузки закрепите откат
sudo snapper rollback <НОМЕР>
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
Теперь система будет загружаться в этот снапшот по умолчанию.
5. Пост-откат: что сделать после возврата
1. Заблокируйте проблемный пакет (если откат вызван обновлением конкретного ПО):
sudo apt-mark hold <имя-пакета>
2. Очистите старые снапшоты (освободите место):
sudo snapper delete <старый_номер>
3. Проверьте целостность Btrfs:
sudo btrfs scrub start /
sudo btrfs scrub status /
6. Особенности и ограничения ALT Atomic
| Аспект | Примечание |
|---|---|
/home и /var |
Обычно не входят в снапшоты. Откат не затрагивает пользовательские файлы, логи, БД. |
snapper конфигурация |
Настройки в /etc/snapper/configs/root. Автоудаление снапшотов регулируется TIMELINE_* и NUMBER_*. |
grub-btrfs |
Демон grub-btrfsd должен быть активен: sudo systemctl enable --now grub-btrfsd. |
| UEFI Secure Boot | Может потребовать переподписи ядра после отката, если используется кастомное ядро. |
| Контейнеры/VM | Если система работает в виртуальной машине, убедитесь, что образ диска не использует thin provisioning с кэшированием на уровне гипервизора. |
7. Устранение типичных проблем
| Симптом | Решение |
|---|---|
| GRUB не показывает снапшоты | sudo systemctl restart grub-btrfsd, проверьте journalctl -u grub-btrfsd |
Ошибка mount: wrong fs type при ручном выборе |
Убедитесь, что в rootflags указан существующий субтом. Проверьте через sudo btrfs subvolume list / |
После snapper rollback система всё равно грузит старую версию |
Обновите GRUB: sudo grub2-mkconfig -o /boot/grub2/grub.cfg и проверьте default в /boot/grub2/grubenv |
| Нет места на Btrfs | Удалите ненужные снапшоты: sudo snapper cleanup или sudo snapper delete <id> |
8. Полезные команды
# Список снапшотов
sudo snapper list
# Просмотр файлов в снапшоте
sudo snapper status <id1>..<id2>
# Откат с подтверждением
sudo snapper rollback <id>
# Перестроить меню GRUB
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# Проверить активный субтом
findmnt -n -o SOURCE,TARGET,FSTYPE,OPTIONS /
Заключение
ALT Atomic спроектирован для безопасного отката без потери данных. Если вы регулярно обновляете систему, механизм snapper + grub-btrfs позволяет вернуться к рабочей версии за 2–3 клика. При возникновении нестандартных ситуаций используйте Live-USB ALT Linux для ручного монтирования субтомов и восстановления через btrfs subvolume set-default.