Устанавливать систему вы уже умеете, разбивать правильно диски тоже, даже создавать свой репозиторий. Но как чинить систему? В этой статье, рассмотрим, как чинить систему после неудачного (незавершенного) обновления системы.
Представим ситуацию, вы запустили обновление системы (как обновлять систему, описано здесь), но на 50% обновления, вдруг выключился свет и ваш компьютер оказался обесточен. Знаю много людей из практики, которые в подобных случаях, тратят часы на переустановку, так как переустанавливать они умеют, а чинить - нет. Да, бывает переустановка быстрее, чем разбираться в проблеме, особенно когда нету времени, но это больше относится к неизвестным случаям сбоя системы. До обновить систему на самом деле проще, чем Вам может показаться.
Для восстановлении системы, вам понадобится:
- установочный диск с Astra Linux (можно на флэшке, hdd, cd итд);
- немного времени;
- чашка кофе.
Давайте вернемся к нашему стенду и ситуации. Я намеренно выключил во время обновления на 50% виртуальную машину с астрой и при включении ее, стал замечать трудный запуск. На удивление, даже запустилась fly оболочка, хотя я потушил на установке fly пакетов, что по идеи должно было затронуть зависимости всего fly-all-main, но походу я немного промазал. Спустя пару минут, она запустилась (fly оболочка), хотя в нормальном состоянии, она загружается за секунды.
Загрузив систему, несколько минут в левом, верхнем углу мигает курсор, графика не грузится. Если перейти на другое TTY - комбинацией клавиш (Ctrl + Alt + от F1 до F7), текущая сессия TTY - это 7 (F7), перейдем на TTY 1 с помощью (Ctrl + Alt + F1).
Почему 7: традиционно 6 текстовых консолей (tty1-tty6) + 1 графическая (tty7).
Чем поможет переключение между tty:
- вернуться в текстовую консоль, если графика зависла;
- запустить команды/починить систему;
- держать несколько независимых сессий;

На скриншоте видим, что я авторизовался в TTY1. Далее вывел результат отображения релиза системы и состояние службы fly-dm. Данная служба отвечает за графическое окружение. Видим, что имеется ряд проблем. Связано это с тем, что часть системы обновилось, а часть - нет.
Выключаем нашу систему, работать в ней практически невозможно, да и чинить систему на рабочей системе крайне тяжело, а порой и невозможно. Простой пример, вы же не будите чинить мотор, когда он работает?
Так как мы знаем в чем причина сбоя и диагноз нам понятен, приступим к лечению пациента.
0) Подготовка дистрибутива.
Нам необходим своего рода Live-CD системы, чтобы использовать его в качестве рабочего инструмента для починки нашей системы.
Можно использовать установочный диск Astra Linux, можно использовать Live-CD итак далее, масса вариантов, но для новичка - идеальным вариантом будет загрузиться с установочного диска. На таких дисках. всегда присутствует «Режим восстановления». По поводу диска. Если нужно до обновить систему с внешних (интернет, локальной репы во внутренней сети) реп, либо же внутренний ремонт, то можно использовать абсолютно любой диск с астрой, буд-то 1.6, 1.7 и так далее. А вот если вы хотите починить систему, используя пакеты с этого диска (да, в каждом диске есть необходимая база для работы системы, установив с диска пакеты, можно починить так же систему), то тут уже нужен диск конкретной версии. Если у вас сломалась 1.8.4.48, то и диск нужен от 1.8.4.48. Опять же, если вы планируете устанавливать с данного диска какие-либо пакеты. Если вам просто нужен доступ к системе через данный диск, то подойдет любой.
Предположим, вы достали диск.
1) Вставляем диск/флэшку итд в системник и выставляем загрузку с него.

Выбираем «Режим восстановления»
Далее, соглашаемся с лицензией.

Выбираем настройки клавиатуры

Следом запустятся настройки сети и фоновые процессы

Нас просят ввести имя компьютера, для отображения его в сети. Можете делать, а можете нет. Как хотите.

Домен нас тоже не интересует, просто жмакаем «Enter».

Выбираем часой пояс

А теперь самое интересное

Нас спрашивают, с каким разделом будем работать. Желательно это узнать до режима восстановления. Когда мы загружались в операционную систему, можно было сделать lsblk и увидели бы, где у нас корень, хоум и так далее. Либо если вы сами устанавливали операционную систему и вы знаете порядок создания разделов. Создавал я, но это было давно и я уже не помню, кто есть кто. Но я точно знаю, что sda1 - это boot, а sda2 - это корень / (Root). Это мое кредо разбивки, по этому это 500%, что это так.
Выбор раздела важен, так как мы можем точечно, хирургическим методом чинить разделы не затрагивая все.
Нам нужно получить оболочку нашей системы, а для этого нужно попасть в корень (/ - Root). Так как sda2 - это скорее оно, выбираем его.

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

Далее запускаем оболочку в нашем корневом разделе /dev/sda2. Это даст нам командную строку bash для восстановления системы.


Так как мы сделали все правильно, у нас появился доступ к системе из под root.

Можем кстати проверить, что у нас за остальные разделы.

Кстати, показывает, что система уже 1.8.6, но по факту, только наполовину.
2) Действия по восстановлению.
Вернемся к вводным данным. Во время обновления, на 50% через dist-upgrade, отключилась машины. Значит, сломан apt/dpkg.
Давайте для начала, обновим индексы пакетов.
apt update
sudo - писать необязательно, мы ведь в root сидим.
Как можно заметить, 613 пакетов не были обновлены, что доказывает теорию о незавершенном обновлении системы.
Теперь попробуем запустить починку apt, с помощью команды apt install -f (это упрощенный аналог apt install --fix-broken).

Видим, что система говорит: запусти сначала dpkg --configure -a
Система сама нам подсказывает, что сначала нужно починить. Оно и логично, ведь на 50% обновлении прервалось, а это скорее всего конфигурирование пакетов. Для его устранения, как раз используется dpkg --configure -a.
Давайте выполним эту команду:
dpkg --configure -a

Пошел процесс конфигурирования пакетов.

В конце видим сообщение:

Оно и понятно, не все же пакеты были загружены. Нам нужно догрузить пакеты и до обновить систему. Но для этого, нужно теперь как раз устранить зависимости.
Выполним apt install -f


Видим, что загрузятся новые версии пакетов fly-admin-reflex и fly-reflex-service для удовлетворения зависимостей fly-reflex и fly-all-main из ошибок ранее.

Отлично, зависимости починили, новых ошибок нет.
Теперь запустим снова обновление системы, после того, как починил apt и устранили все ошибки.
apt dist-upgrade
Так как я запускал обновление через эту утилиту, ее же и запустим снова.


Пошел процесс до обновления системы

По завершению обновления, мы снова не наблюдаем никаких ошибок. Значит система полностью обновилась и ошибки все были исправлены. Кстати, иногда обновление системы помогает устранить сломанные процессы. Был как-то случай, что я случайно сломал что-то в системе и пол системы работало некорректно, а вернее вообще перестало работать. Запустил обновление до новой версии и у меня снова, все работает. На практики было пару раз так :D Лень разбираться, проще обновить и тем самым починить уже сломанное.

Снова запустим apt update для проверки наличия обновления.

Отлично, не найдено пакетов для обновления. Значит мы успешно все обновили.
Теперь выходим из оболочки
exit
![]()
и перезагружаем систему.

После перезагрузки, наша система загружается и работает в штатном режиме. Это лишь один пример по восстановлению конкретной проблемы. Данная проблема распространенная, по этому ее и рассмотрели. Так же частая проблема по восстановлению inode, но ее я уже рассмотрел здесь.
Пробуйте восстанавливать, а переустановить всегда успеете, ведь на потраченном времени по восстановлению и приобретается богатый опыт. Удачи в восстановлении!