Ситуация, когда операционная система Astra Linux перестает загружаться после обновления ядра или изменения конфигурации дисков, является одной из самых стрессовых для системного администратора. Черный экран с мигающим курсором или сообщение об ошибке GRUB rescue могут застать врасплох даже опытного пользователя, однако в большинстве случаев критические данные на дисках остаются целыми. Проблема кроется исключительно в поврежденном загрузчике, который не может найти путь к ядру операционной системы.

Для успешного решения задачи вам потребуется загрузочный носитель с дистрибутивом, соответствующим версии установленной системы, или любой другой Live-дистрибутив на базе Debian. Процесс восстановления требует внимательности при вводе команд, так как ошибка в определении разделов может привести к некорректной работе системы в будущем. Ниже мы разберем детальный алгоритм действий, который позволит вернуть работоспособность вашему серверу или рабочему месту.

⚠️ Внимание: Перед началом любых манипуляций с загрузчиком убедитесь, что у вас есть актуальная резервная копия важных данных. Работа с разделами диска всегда несет в себе риск потери информации при ошибочном вводе команд.

Диагностика проблемы и подготовка среды

Первым шагом является точное определение характера неисправности, так как симптомы могут быть схожи при разных причинах сбоя. Если при включении компьютера вы видите сообщение error: no such partition или error: unknown filesystem, это указывает на то, что загрузчик поврежден или сместились UUID разделов. В случае, когда система вообще не реагирует на кнопки или сразу уходит в BIOS, проблема может быть аппаратной или связана с настройками контроллера дисков.

Для начала работ необходимо загрузиться с установочной флешки или диска Astra Linux. В меню загрузчика выберите режим "Графический режим" или "Реим портирование", чтобы получить полноценный доступ к файловой системе. После загрузки Live-системы откройте терминал, так как все основные операции будут выполняться через командную строку с правами суперпользователя.

Важно сразу же определить структуру дисков и найти корневой раздел вашей основной системы. Используйте утилиту lsblk или fdisk -l для вывода списка всех подключенных накопителей. Найдите раздел, который по размеру и структуре соответствует вашему системному диску, обычно он отформатирован в файловую систему ext4.

  • 🔍 Проверьте целостность файловой системы с помощью fsck перед монтированием.
  • 💾 Убедитесь, что загрузочный носитель содержит версию ядра, совместимую с установленной системой.
  • 🔌 Отключите лишние USB-устройства, чтобы избежать путаницы с буквами дисков.
📊 Какой тип ошибки вы наблюдаете при загрузке?
  • Черный экран с курсором
  • Сообщение GRUB rescue
  • Ошибка файловой системы
  • Система уходит в BIOS

Монтирование разделов и подготовка chroot

Ключевым этапом восстановления является создание правильной среды для работы с установленной системой через механизм chroot. Это позволяет запустить процессы от имени корневой директории поврежденной системы, находясь внутри Live-окружения. Сначала необходимо смонтировать корневой раздел в директорию /mnt, выполнив команду mount /dev/sdXn /mnt, где вместо sdXn подставляется ваш идентификатор раздела.

Если на вашем компьютере используется отдельный раздел для /boot или /home, их также необходимо смонтировать в соответствующие поддиректории внутри /mnt. Например, для раздела загрузки команда будет выглядеть как mount /dev/sdYn /mnt/boot. Игнорирование этого шага приведет к тому, что при переустановке загрузчика файлы ядер не будут найдены или записаны не туда, куда нужно.

Далее необходимо пробросить системные директории Live-системы в смонтированную среду, чтобы утилита grub-install имела доступ к необходимым библиотекам и устройствам. Это делается последовательным монтированием виртуальных файловых систем /proc, /sys и /dev. Без этих шагов команды внутри chroot не смогут взаимодействовать с железом и ядром.

☑️ Подготовка к chroot

Выполнено: 0 / 4

После выполнения всех монтажных операций можно переходить непосредственно в окружение восстановляемой системы. Команда chroot /mnt изменит корневую директорию текущего терминала, и вы окажетесь "внутри" вашей неработающей Astra Linux. Теперь все выполняемые команды будут применяться к основной системе, а не к Live-носителю.

Восстановление загрузчика в режиме BIOS (Legacy)

Для систем, использующих классический BIOS или режим совместимости CSM, процесс восстановления максимально упрощен и требует выполнения всего одной основной команды. Находясь внутри среды chroot, необходимо запустить утилиту grub-install, указав целевое устройство, а не раздел. Важно не перепутать: аргументом должно быть имя диска, например /dev/sda, а не /dev/sda1.

grub-install /dev/sda

Эта команда запишет первый этап загрузчика (boot sector) в начало диска и установит необходимые модули для第二阶段 загрузки. Если в процессе выполнения возникнут ошибки, связанные с отсутствием файлов, убедитесь, что пакет grub-pc установлен в системе. В редких случаях может потребоваться указать путь к директории boot явно, используя флаг --boot-directory.

⚠️ Внимание: При выполнении команды grub-install в режиме BIOS убедитесь, что вы не перезаписываете загрузчик другого диска, если в системе их несколько. Ошибка в выборе целевого устройства сделает другую ОС не загружаемой.

После успешной установки кода загрузчика необходимо сгенерировать заново конфигурационный файл, который содержит список доступных операционных систем и параметры их запуска. Для этого используется команда update-grub, которая автоматически сканирует диски на наличие ядер Linux и других загрузчиков, таких как Windows.

Настройка загрузчика для UEFI систем

Восстановление загрузчика на компьютерах с интерфейсом UEFI имеет свои особенности, связанные с наличием специального EFI-раздела. Этот раздел обычно отформатирован в файловую систему FAT32 и имеет флаг boot или esp. Перед началом работ убедитесь, что этот раздел смонтирован в директорию /boot/efi внутри вашей chroot-среды.

Процесс установки загрузчика для UEFI требует указания дополнительного параметра, определяющего архитектуру системы. Для большинства современных компьютеров используется архитектура x86_64, поэтому команда будет выглядеть следующим образом:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=AstraLinux

Параметр --bootloader-id задает имя, под которым запись о загрузке появится в меню UEFI материнской платы. Если после перезагрузки система не видит загрузчик, возможно, потребуется добавить запись вручную через настройки BIOS или использовать утилиту efibootmgr. В некоторых случаях требуется копирование файла grubx64.efi в стандартное расположение /EFI/BOOT/BOOTX64.EFI.

  • 🛡️ Проверьте, включена ли опция Secure Boot в BIOS, и при необходимости добавьте ключи или отключите её.
  • 📂 Убедитесь, что EFI-раздел смонтирован именно в /boot/efi, а не в /boot.
  • 🔄 Используйте команду efibootmgr -v для просмотра текущих записей загрузки UEFI.

Конфигурирование GRUB и обновление меню

После физической установки файлов загрузчика на диск критически важно корректно сформировать конфигурационный файл grub.cfg. Именно этот файл читается загрузчиком при старте и определяет, какое ядро загружать и с какими параметрами. В дистрибутиве Astra Linux за это отвечает утилита update-grub, которая является оберткой для grub-mkconfig.

Выполнение команды update-grub запускает скрипты, расположенные в директории /etc/grub.d/, которые собирают информацию о установленных ядрах, операционных системах и параметрах безопасности. В выводимом логе вы должны увидеть строки "Found linux image" и "Found initrd image", подтверждающие успешное обнаружение системных файлов.

Если стандартные параметры загрузки требуют изменения, например, для отключения режима сна или настройки видеовыхода, их можно задать в файле /etc/default/grub. Наиболее часто используемым параметром является GRUB_CMDLINE_LINUX, куда добавляются аргументы ядра. После внесения изменений в этот файл обязательно снова запустите update-grub.

Параметр конфигурации Описание Пример значения
GRUB_TIMEOUT Время ожидания выбора ОС 5
GRUB_DEFAULT Загружаемая ОС по умолчанию 0
GRUB_CMDLINE_LINUX Параметры ядра quiet splash
GRUB_DISABLE_OS_PROBER Поиск других ОС false

Особое внимание стоит уделить параметру GRUB_DISABLE_OS_PROBER. Если после обновления перестала отображаться Windows в меню загрузки, проверьте, не установлен ли этот параметр в значение true. Для включения поиска других операционных систем его необходимо изменить на false и пересобрать конфигурацию.

Проверка результата и устранение ошибок

Финальным этапом восстановления является выход из среды chroot и перезагрузка компьютера. Для корректного завершения работы необходимо размонтировать все ранее подключенные разделы в обратном порядке. Сначала выполните exit для выхода из chroot, затем последовательно размонтируйте /mnt/boot/efi (если есть), /mnt/boot и /mnt.

После размонтирования разделов можно извлечь загрузочный носитель и перезагрузить систему командой reboot. Если все шаги были выполнены правильно, появится меню GRUB с выбором операционной системы. В случае возникновения ошибок на этом этапе, внимательно прочитайте текст сообщения: он часто указывает на конкретный файл или раздел, который вызывает сбой.

Если система загружается, но работает нестабильно, проверьте логи dmesg или /var/log/syslog на наличие ошибок, связанных с диском или файловой системой. Иногда требуется повторное выполнение команды update-initramfs -u для обновления образа начальной загрузки, особенно если менялись модули драйверов дисков.

⚠️ Внимание: Если после восстановления загрузчика система загружается в режиме rescue вместо графического интерфейса, проверьте целостность файла /etc/fstab. Ошибки в этом файле могут препятствовать нормальному монтированию разделов при старте.

Часто задаваемые вопросы (FAQ)

Можно ли восстановить загрузчик Astra Linux без LiveUSB, используя только консоль восстановления?

Да, если в меню GRUB сохранилась запись для загрузки в режим восстановления (Recovery Mode), можно попробовать выполнить команду grub-install оттуда. Однако этот способ работает только если основные модули загрузчика целы, а повреждена лишь конфигурация или второй этап загрузки.

Что делать, если команда update-grub не находит установленную Windows?

Необходимо убедиться, что установлен пакет os-prober и в файле /etc/default/grub параметр GRUB_DISABLE_OS_PROBER установлен в false. Также раздел с Windows должен быть размонтирован или смонтирован в доступном месте, чтобы скрипт мог прочитать его загрузочную запись.

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

В меню GRUB выберите пункт загрузки, нажмите e для редактирования параметров. Найдите строку, начинающуюся с linux, и добавьте в конец init=/bin/bash. После загрузки вы получите консоль с правами root, где можно сменить пароль командой passwd.

Нужно ли переустанавливать систему, если восстановление загрузчика не помогло?

Не обязательно. Если проблема заключается в повреждении системных файлов ядра или библиотек, можно попробовать переустановить пакеты linux-image и astra-linux-keyring через chroot. Переустановка всей системы требуется только при критическом повреждении файловой системы или данных.