Система Astra Linux может перестать загружаться из-за повреждения файлов загрузчика GRUB, сбоев после обновления ядра или некорректных изменений в разметке диска. Вместо привычного меню пользователь часто видит черный экран с текстом grub rescue или сообщение об отсутствии раздела. Восстановление работоспособности требует подключения загрузочного носителя (LiveCD или установочной флешки) и использования командной строки для ручной настройки окружения.
Подготовка к восстановлению и диагностика
Перед началом работ необходимо определить тип интерфейса загрузки: Legacy BIOS (таблица MBR) или UEFI (таблица GPT). От этого зависит метод установки загрузчика. Зайдите в настройки материнской платы или используйте утилиту efibootmgr в работающей системе (если доступ еще есть), чтобы уточнить режим.
Загрузитесь с установочного носителя Astra Linux, выбрав режим Trial Mode (попробовать без установки). Это обеспечит доступ к графической среде или консоли с необходимыми утилитами. Перед манипуляциями с дисками настоятельно рекомендуется сделать резервную копию таблицы разделов, так как ошибки в командах монтирования могут привести к потере данных на соседних разделах.
Откройте терминал и выполните команду lsblk или fdisk -l, чтобы найти корневой раздел основной системы. Ищите разделы с файловой системой ext4 или xfs, соответствующие размеру вашего диска. Также отметьте наличие отдельных разделов /boot и /boot/efi.
Монтирование разделов и вход в chroot
Для работы с поврежденной системой используется механизм chroot, который позволяет запустить оболочку так, будто вы загрузились с жесткого диска. Сначала смонтируйте корневой раздел. Замените sda3 на идентификатор вашего корневого раздела:
mount /dev/sda3 /mnt
Если у вас выделен отдельный раздел для загрузочных файлов, смонтируйте его в /mnt/boot. Для систем с UEFI критически важно смонтировать EFI-раздел (обычно FAT32) в директорию /mnt/boot/efi:
mount /dev/sda1 /mnt/boot/efi
Далее необходимо связать системные директории Live-среды с монтируемой системой. Это обеспечит доступ к устройствам и процессам изнутри chroot:
mount --bind /dev /mnt/devmount --bind /proc /mnt/procmount --bind /sys /mnt/sys
После успешного монтирования перейдите в среду новой системы командой chroot /mnt /bin/bash. Приглашение изменится, подтверждая, что вы работаете внутри файловой системы Astra Linux.
Автоматическое восстановление загрузчика
Стандартный путь решения проблемы — автоматическая генерация конфигурационного файла. Убедитесь, что установлен пакет os-prober, который сканирует диск на наличие других операционных систем:
apt install os-proberupdate-grub
Команда update-grub создаст новый файл grub.cfg, найдя актуальные ядра Linux. Если ошибок нет, система готова к установке загрузчика на диск. Для архитектур BIOS используйте команду grub-install /dev/sda (указывается только имя диска, без номера раздела). Вывод должен содержать подтверждение успешной записи.
Особенности восстановления в режиме UEFI
В системах с интерфейсом UEFI загрузчик хранится в виде файла на EFI-разделе. Команда установки включает дополнительные параметры для указания архитектуры и пути:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=AstraLinux
Параметр --bootloader-id создает запись в NVRAM материнской платы. Важно проверить, что EFI-раздел отформатирован в FAT32 и имеет флаг boot или esp. Если стандартная команда не срабатывает из-за блокировки Secure Boot, временно отключите эту функцию в BIOS.
В качестве аварийного варианта можно скопировать файл загрузчика вручную. Переместите /boot/efi/EFI/AstraLinux/grubx64.efi в папку /boot/efi/EFI/BOOT/ с именем BOOTX64.EFI. Многие платы проверяют именно этот путь при отсутствии записей в таблице загрузки.
Ручная настройка и редактирование конфигурации
Если автоматические методы не помогли, проверьте файл настроек /etc/default/grub. Откройте его в редакторе nano и убедитесь, что параметр GRUB_TIMEOUT установлен в значение 5 или 10 секунд. Это даст время на выбор пункта меню при старте. Также проверьте переменную GRUB_CMDLINE_LINUX на наличие корректных параметров драйверов.
После внесения правок заново сгенерируйте конфигурацию командой grub-mkconfig -o /boot/grub/grub.cfg. Проверьте вывод на наличие фатальных ошибок. Если система использует LVM, перед монтированием активируйте тома командой vgchange -ay.
Финальная проверка и перезагрузка
Выполните выход из chroot командой exit. Размонтируйте все разделы в обратном порядке, начиная с корня: umount -R /mnt. Извлеките загрузочную флешку и перезагрузите компьютер командой reboot. При успешном восстановлении появится меню GRUB со списком ядер.
После входа в систему рекомендуется обновить образ начальной загрузки командой sudo update-initramfs -u для синхронизации драйверов. Сохраните копию файла grub.cfg и содержимого EFI-раздела в безопасном месте для быстрого восстановления в будущем.
Часто задаваемые вопросы
Что делать, если grub-install выдает ошибку "efi directory not found"?
Ошибка возникает, когда EFI-раздел не смонтирован в ожидаемую директорию (обычно /boot/efi) перед запуском команды. Необходимо найти раздел FAT32, смонтировать его по правильному пути и повторить установку с указанием флага --efi-directory.
Можно ли восстановить загрузчик без LiveCD, используя только консоль GRUB?
Да, это возможно, но требует знания точных путей к ядру и initrd. В режиме rescue нужно вручную указать команды linux и initrd для загрузки системы, а затем выполнить grub-install из рабочей ОС. Метод с LiveCD надежнее и проще.
Сбросится ли восстановление после обновления ядра?
Нет, если установлены пакеты grub-pc или grub-efi и выполнена генерация конфигурации. Скрипты автоматически добавляют новые ядра в меню. Проблемы возникают только при ручном редактировании grub.cfg без использования update-grub.