Обновил систему — и теперь Arch не грузится, или звук пропал, или половина программ падает с ошибками? Не беги переустанавливать систему: около 95% поломок после pacman -Syu лечатся за 10–30 минут по строгому алгоритму. Ниже — чек-лист из 7 шагов: иди по порядку, от самого простого к самому тяжёлому, и почти наверняка остановишься где-то на пятом. Подробный разбор инструментов отката — в статье «Сломалось после обновления: единый гайд по откату», а здесь именно порядок действий.
Главное правило: не паникуй и не переустанавливай систему сразу. Переустановка — крайняя мера, а не первая реакция. В Arch старые версии пакетов лежат в кэше /var/cache/pacman/pkg, история обновлений — в /var/log/pacman.log, а прошлая загрузка целиком доступна через journalctl. Всё, что нужно для восстановления, уже на диске.
Второе правило: не удаляй и не перезаписывай ничего, пока не понял причину. Не запускай «починку» наугад — случайные команды в ужасе ломают больше, чем само обновление.
Третье правило: зафиксируй симптомы. Что именно перестало работать — загрузка, графика, сеть, звук, одна программа? Запиши ошибку слово в слово. Понятный симптом в начале экономит час в конце.
Определи, на каком уровне ты находишься. Восемьдесят процентов поломок оказываются не такими страшными, как кажутся.
Работает ли графическое окружение? Если да — почти любая проблема решается прямо в терминале, без спешки.
Есть ли рабочий TTY? Нажми Ctrl+Alt+F3 (или F2–F6). Если командная строка отзывается, у тебя полный набор инструментов: логи, кэш пакетов, сеть.
Грузится ли система вообще? Если после GRUB появляется чёрный экран или ошибки initramfs — шаги 3–6 пока недоступны, сразу переход к шагу 7. Но сначала попробуй выбрать в GRUB предыдущее ядро (шаг 6): часто этого жеста хватает.
Дойди до работающей командной строки — и только потом иди дальше по чек-листу.
Логи — главный свидетель. Начни с ошибок текущей загрузки:
journalctl -b -p err
Флаг -b ограничивает вывод текущей загрузкой, -p err — только ошибками и выше. Список покажет, какой сервис или демон падает.
Если система дошла до рабочего стола не с первого раза, загляни в лог прошлой попытки:
journalctl -b -1
Там будет стоп-запись того, на чём всё зависло. Дополнительно помогает dmesg: он показывает, какие модули ядра не поднялись и какие устройства не определились. Разбор флагов и формата вывода — в статье «Читаем journalctl -b: логи первой загрузки».
Составь из логов рабочую гипотезу: упал звуковой сервер, не стартовал display manager, крашится конкретная библиотека. Именно с этой гипотезой иди к следующему шагу.
Теперь нужен список подозреваемых. pacman ведёт полный журнал установок и обновлений:
tail -100 /var/log/pacman.log
Найди последний блок upgraded перед моментом, когда всё сломалось. Обычно виноваты два-три пакета из одной записи: библиотека вместе с приложением, ядро вместе с модулями, или пакет, у которого поплыли зависимости.
Полезный приём: вспомни, какая программа сломалась, и найди её имя в этом списке. Если строка есть — подозреваемый номер один.
Дополнительно можно выявить осиротевшие зависимости:
pacman -Qtd
Это не обязательный шаг, но список лишних пакетов иногда подсказывает, что обновление зацепило больше, чем ожидалось. Куда копать дальше и как искать нужную точку отката, подробно описано в статье «Читаем логи обновлений: pacman.log».
Классический сценарий: после обновления не запускается Firefox, пропал звук в PulseAudio, вылетает конкретная утилита. Лечится откатом одного пакета.
Смотри, какая версия есть в кэше:
ls /var/cache/pacman/pkg/ | grep <имя-пакета>
И ставь старую напрямую:
sudo pacman -U /var/cache/pacman/pkg/<пакет>-<старая-версия>.pkg.tar.zst
Если нужного файла в кэше нет — поможет downgrade из AUR или Arch Linux Archive: pacman умеет ставить пакеты из любого хранилища по прямой ссылке. Вместе с пакетом часто приходится откатывать и его зависимости: pacman сам перечислит несовпадения.
После отката перезапусти сломанную программу и проверь, ушёл ли симптом. Если да — шаг 6 тебе не понадобится.
Симптомы массовые: не стартует X, не поднимаются модули, сеть пропала после обновления ядра. Самый быстрый спасительный ход — загрузиться на прошлой версии ядра.
Перезагрузись и в меню GRUB выбери «Advanced options for Arch Linux». Там будет список установленных ядер: текущее и предыдущее. Выбирай предыдущее — оно осталось в /boot вместе с образом initramfs.
Если старого ядра нет, подойдёт любое LTS-ядро: поставь linux-lts заранее или откати текущее из кэша. Ядро и модули должны быть одной версии, иначе initramfs не соберётся.
Работает? Отлично — теперь спокойно откатывай виновные пакеты из шага 5, пока система не станет стабильной. Механика отката ядра и типичные зависания после обновления разобраны в статье «Зависание после обновления ядра».
Крайний, но рутинный случай. Берёшь загрузочную флешку Arch, грузишься с неё и работаешь через chroot — «вход» в уже установленную систему.
Сначала смонтируй разделы (пример для одного диска; подставь свои):
mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot
Затем войди внутрь:
arch-chroot /mnt
Ты внутри своей системы. Дальше стандартный набор проверок:
mkinitcpio -P # пересобрать initramfs
grub-install /dev/sda # переставить загрузчик при необходимости
grub-mkconfig -o /boot/grub/grub.cfg
cat /etc/fstab # проверить UUID разделов
mount -a # или просто убедиться, что записи корректны
mkinitcpio -P спасает, когда после обновления ядра initramfs собрался криво. Проверка fstab нужна на случай, если после обновления поплыли UUID дисков. Если GRUB не показывает меню — переставь его по инструкции выше, внутри chroot.
Выйди командой exit, размонтируй umount -R /mnt и перезагрузись. Подробное описание процедуры — в ArchWiki, раздел chroot.
Обычно 10–30 минут. Шаги 1–4 — это пара минут чтения логов. Откат одного пакета (шаг 5) — ещё пять. Даже chroot (шаг 7) при готовой флешке отрабатывает за четверть часа. Полдня на переустановку экономится всегда.
Бери Arch Linux Archive: там лежат все релизы пакетов, и pacman умеет ставить из него по прямой ссылке. Второй вариант — откатить всё обновление целиком, сверяясь с pacman.log построчно. Третий — восстановить из снапшота btrfs, если ты их делаешь (см. гайд по откату в начале статьи).
Читай [testing] и [core] перед обновлением, подпишись на arch-announce, делай снапшот перед крупными обновлениями и держи в системе linux-lts как запасной вариант. Профилактика дешевле любого отката.
Запомни главную вещь: после pacman -Syu почти ничего не ломается насовсем. Сначала — не паниковать и оценить уровень (шаг 2), потом — логи (шаг 3), потом — список обновлённого (шаг 4), и только после этого действия: откат пакета, старое ядро или chroot. Семь шагов, четверть часа — и система снова работает. Переустановка остаётся крайней мерой, которую ты выберешь только тогда, когда все остальные варианты исчерпаны.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии