Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

Всё сломалось после обновления: алгоритм первой помощи

Обновил систему — и теперь Arch не грузится, или звук пропал, или половина программ падает с ошибками? Не беги переустанавливать систему: около 95% поломок после pacman -Syu лечатся за 10–30 минут по строгому алгоритму. Ниже — чек-лист из 7 шагов: иди по порядку, от самого простого к самому тяжёлому, и почти наверняка остановишься где-то на пятом. Подробный разбор инструментов отката — в статье «Сломалось после обновления: единый гайд по откату», а здесь именно порядок действий.

Шаг 1. Что делать в первую минуту?

Главное правило: не паникуй и не переустанавливай систему сразу. Переустановка — крайняя мера, а не первая реакция. В Arch старые версии пакетов лежат в кэше /var/cache/pacman/pkg, история обновлений — в /var/log/pacman.log, а прошлая загрузка целиком доступна через journalctl. Всё, что нужно для восстановления, уже на диске.

Второе правило: не удаляй и не перезаписывай ничего, пока не понял причину. Не запускай «починку» наугад — случайные команды в ужасе ломают больше, чем само обновление.

Третье правило: зафиксируй симптомы. Что именно перестало работать — загрузка, графика, сеть, звук, одна программа? Запиши ошибку слово в слово. Понятный симптом в начале экономит час в конце.

Шаг 2. Система вообще работает?

Определи, на каком уровне ты находишься. Восемьдесят процентов поломок оказываются не такими страшными, как кажутся.

Работает ли графическое окружение? Если да — почти любая проблема решается прямо в терминале, без спешки.

Есть ли рабочий TTY? Нажми Ctrl+Alt+F3 (или F2–F6). Если командная строка отзывается, у тебя полный набор инструментов: логи, кэш пакетов, сеть.

Грузится ли система вообще? Если после GRUB появляется чёрный экран или ошибки initramfs — шаги 3–6 пока недоступны, сразу переход к шагу 7. Но сначала попробуй выбрать в GRUB предыдущее ядро (шаг 6): часто этого жеста хватает.

Дойди до работающей командной строки — и только потом иди дальше по чек-листу.

Шаг 3. Где посмотреть, что упало?

Логи — главный свидетель. Начни с ошибок текущей загрузки:

journalctl -b -p err

Флаг -b ограничивает вывод текущей загрузкой, -p err — только ошибками и выше. Список покажет, какой сервис или демон падает.

Если система дошла до рабочего стола не с первого раза, загляни в лог прошлой попытки:

journalctl -b -1

Там будет стоп-запись того, на чём всё зависло. Дополнительно помогает dmesg: он показывает, какие модули ядра не поднялись и какие устройства не определились. Разбор флагов и формата вывода — в статье «Читаем journalctl -b: логи первой загрузки».

Составь из логов рабочую гипотезу: упал звуковой сервер, не стартовал display manager, крашится конкретная библиотека. Именно с этой гипотезой иди к следующему шагу.

Шаг 4. Что именно обновилось?

Теперь нужен список подозреваемых. pacman ведёт полный журнал установок и обновлений:

tail -100 /var/log/pacman.log

Найди последний блок upgraded перед моментом, когда всё сломалось. Обычно виноваты два-три пакета из одной записи: библиотека вместе с приложением, ядро вместе с модулями, или пакет, у которого поплыли зависимости.

Полезный приём: вспомни, какая программа сломалась, и найди её имя в этом списке. Если строка есть — подозреваемый номер один.

Дополнительно можно выявить осиротевшие зависимости:

pacman -Qtd

Это не обязательный шаг, но список лишних пакетов иногда подсказывает, что обновление зацепило больше, чем ожидалось. Куда копать дальше и как искать нужную точку отката, подробно описано в статье «Читаем логи обновлений: pacman.log».

Шаг 5. Сломался один пакет — как его откатить?

Классический сценарий: после обновления не запускается 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 тебе не понадобится.

Шаг 6. Всё посыпалось — как вернуть старое ядро?

Симптомы массовые: не стартует X, не поднимаются модули, сеть пропала после обновления ядра. Самый быстрый спасительный ход — загрузиться на прошлой версии ядра.

Перезагрузись и в меню GRUB выбери «Advanced options for Arch Linux». Там будет список установленных ядер: текущее и предыдущее. Выбирай предыдущее — оно осталось в /boot вместе с образом initramfs.

Если старого ядра нет, подойдёт любое LTS-ядро: поставь linux-lts заранее или откати текущее из кэша. Ядро и модули должны быть одной версии, иначе initramfs не соберётся.

Работает? Отлично — теперь спокойно откатывай виновные пакеты из шага 5, пока система не станет стабильной. Механика отката ядра и типичные зависания после обновления разобраны в статье «Зависание после обновления ядра».

Шаг 7. Не грузится вообще — chroot с live USB

Крайний, но рутинный случай. Берёшь загрузочную флешку 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 как запасной вариант. Профилактика дешевле любого отката.

Полезные ресурсы

  • ArchWiki: System maintenance — официальные рекомендации по обновлениям и восстановлению.

Заключение

Запомни главную вещь: после pacman -Syu почти ничего не ломается насовсем. Сначала — не паниковать и оценить уровень (шаг 2), потом — логи (шаг 3), потом — список обновлённого (шаг 4), и только после этого действия: откат пакета, старое ядро или chroot. Семь шагов, четверть часа — и система снова работает. Переустановка остаётся крайней мерой, которую ты выберешь только тогда, когда все остальные варианты исчерпаны.



Не получилось? Поможем настроить

Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.

Telegram Max