pacman -Syu отработал, а после перезагрузки система не грузится: чёрный экран, зависший initramfs или мёртвая графика. Если перед обновлением лежит снапшот, путь к рабочему состоянию занимает пару минут и одно загрузочное меню. Ниже — полный цикл отката: grub-btrfs, snapper rollback, Timeshift и памятка, в каком порядке пробовать решения.
-Syu, если система не грузитсяСначала оцени масштаб. Система не стартует вообще, стартует до определённого места или грузится, но сломана одна подсистема? От ответа зависит, какой инструмент брать. Полный цикл выглядит так:
sudo pacman -Syu.Дальше — каждый шаг по отдельности.
grub-btrfs — пакет из официального репозитория extra, который сканирует снапшоты snapper и добавляет их в меню GRUB отдельным подменю. Ставится одной командой:
sudo pacman -S grub-btrfs
После установки пересобери конфигурацию GRUB:
sudo grub-mkconfig -o /boot/grub/grub.cfg
В меню появится подменю со снапшотами — обычно «Arch Linux snapshots». Каждый пункт подписан номером и описанием, которое ты задавал при создании (-d "before update"). Чтобы новые снапшоты попадали в меню автоматически, включи демон:
sudo systemctl enable --now grub-btrfsd.service
Демону нужен inotify-tools — pacman предложит его как опциональную зависимость, поставь. Дальше каждый снапшот, созданный snapper, сам появляется в GRUB без ручной пересборки.
Выбери в подменю последний снапшот перед обновлением и загрузи в него. По умолчанию снапшоты монтируются read-only: система стартует «из прошлого», но ничего не записывает. Это и защита, и диагностика.
Что проверить после загрузки:
pacman -Q показывает старые версии пакетов — значит, ты действительно в снапшоте.Если в снапшоте всё работает — поломку принесло обновление, и откат можно закреплять. Если и в снапшоте беда — проблема не в обновлении: смотри диск, память, аппаратуру.
Важный нюанс: read-only снапшот не даст pacman записать изменения. Если нужно что-то поправить внутри снапшота (например, откатить один пакет), загружайся в снапшот с опцией rw — в GRUB отредактируй пункт меню клавишей e и замени ro на rw. Изменения останутся только в этом снапшоте и исчезнут после перезагрузки в обычный @.
snapper rollback и когда его использоватьsnapper rollback — команда, которая делает откат постоянным. Она подменяет активный подтом @ на выбранный снапшот: текущий @ переименовывается (обычно в @-old), а снапшот из .snapshots занимает его место. Старый @ не удаляется — если откат не понравится, можно вернуться обратно повторной подменой.
sudo snapper -c root rollback
После команды — перезагрузка, и система грузится уже из снапшота.
Предупреждения:
snapper rollback рассчитан на классическую схему, где .snapshots лежит внутри @. Если ты ставил систему по гайду про установку с btrfs-снапшотами — с отдельным подтомом @snapshots, смонтированным в /.snapshots, — rollback может перепутать подтома. Для такой схемы используй ручную подмену.@ и .snapshots. Из live-среды: смонтируй корень btrfs, переименуй сломанный @ в @.broken, создай новый @ из снапшота:mv /mnt/@ /mnt/@.broken
btrfs subvolume snapshot /mnt/@snapshots/N/snapshot /mnt/@
Перед этим размонтируй точку /.snapshots — иначе переименование пройдёт «в никуда», и снапшоты потеряются из виду.
/home не трогается. Если домашние папки в отдельном подтоме @home, откат корня их не заденет. Конфиги в /etc откатятся, личные файлы — нет.Timeshift на btrfs хранит снапшоты в подтоме @timeshift-btrfs и умеет восстанавливать систему целиком. Если снапшоты делал он, а не snapper, grub-btrfs их не увидит — у Timeshift свой механизм.
Восстановление из работающей системы: открой Timeshift, выбери снапшот и нажми Restore. Программа пересоздаст подтома и перезагрузит систему.
Если система не грузится: загрузись с live-USB, запусти Timeshift оттуда — он найдёт снапшоты на диске и предложит восстановление. Либо сделай то же самое вручную: смонтируй корень btrfs и подмени @ на снапшот из @timeshift-btrfs/snapshots/N/.
Ручной снапшот перед каждым обновлением легко забыть. Автоматика решает это за тебя.
snap-pac — набор ALPM-хуков: перед каждой операцией pacman создаёт снапшот «до», после — «после». Ставится и забывается:
sudo pacman -S snap-pac
Теперь любой pacman -Syu сам оставляет пару снапшотов. Если что-то сломалось — в GRUB уже лежит точка отката.
Расписание snapper. Помимо хуков, snapper умеет делать снапшоты по таймеру — timeline. Включи и задай лимиты в /etc/snapper/configs/root:
TIMELINE_CREATE="yes"
TIMELINE_LIMIT_HOURLY="5"
TIMELINE_LIMIT_DAILY="7"
TIMELINE_LIMIT_WEEKLY="4"
TIMELINE_LIMIT_MONTHLY="6"
TIMELINE_LIMIT_YEARLY="2"
Политика хранения простая: чем свежее снапшот, тем больше их держим. Часовые — на день, дневные — на неделю, недельные — на месяц, месячные и годовые — на годы. Старые снапшоты snapper удаляет сам по расписанию snapper-cleanup.timer.
Когда система сломалась, не кидайся сразу к самому тяжёлому инструменту. Порядок от простого к сложному:
sudo pacman -U /var/cache/pacman/pkg/linux-*.pkg.tar.zst.pacman -U. Общий разбор — в гайде «Сломалось после обновления».snapper rollback или ручная подмена @.Правило: чем меньше действий, тем лучше. Откат одного пакета не трогает остальную систему, а полный откат подтома возвращает всё разом — вместе с возможными новыми проблемами.
Загрузка в снапшот — временная: после перезагрузки система снова стартует из обычного @. snapper rollback — постоянная подмена: @ заменяется снапшотом, и система грузится из него всегда.
@ после rollback?Он не исчезает — переименовывается и остаётся на диске. Если откат не понравился, подмени подтома обратно. Когда убедишься, что всё работает, удали старый @ через btrfs subvolume delete.
/home отдельный подтом?Да, и это плюс: откат корня не трогает @home. Личные файлы остаются, откатываются только системные файлы и конфиги в /etc.
Можно, но не нужно: оба делают одно и то же. Выбери один инструмент, иначе снапшоты будут дублироваться и займут вдвое больше места.
Снапшоты превращают поломку после -Syu из переустановки на полдня в десятиминутный откат. Схема простая: автоматические снапшоты через snap-pac, загрузка в них через grub-btrfs, а при необходимости — snapper rollback или ручная подмена подтома. Настроил один раз — и любое обновление перестаёт быть страшным.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии