Отказ системы от загрузки с сообщением grub rescue или мигающим курсором — частая проблема при использовании сложной разметки дисков. В среде Astra Linux с применением LVM (Logical Volume Manager) стандартные методы восстановления часто оказываются недостаточными из-за необходимости предварительной активации логических томов. Ошибка может возникнуть после сбоя питания, некорректного обновления ядра или изменения структуры разделов.
Главная сложность заключается в том, что загрузчик должен найти ядро операционной системы, которое физически расположено на логическом томе, скрытом за абстракцией групп томов. Если не выполнить сканирование метаданных и активацию томов перед установкой GRUB, команда установки может завершиться успешно, но система останется неработоспособной.
Подготовка к восстановлению
Перед началом работ убедитесь в наличии актуальной резервной копии важных данных. Ошибки при работе с таблицами разделов могут привести к безвозвратной потере информации. Для ремонта потребуется загрузочный носитель:
- Установочный ISO-образ Astra Linux той же редакции и версии, что установлена на диске.
- LiveCD с поддержкой утилит LVM и шифрования (если используется LUKS).
Загрузитесь с носителя в режиме Live и откройте терминал. Выполните команду lsblk, чтобы оценить текущую структуру дисков. Если автоматическая активация томов не произошла, вы увидите только физические диски без вложенных логических разделов.
Особенности работы с шифрованием
Если корневой раздел или /boot зашифрован через LUKS, процесс усложняется. Команды сканирования LVM не увидят логические тома до тех пор, пока не будет открыт зашифрованный контейнер. В этом случае сначала необходимо ввести пароль для разблокировки диска с помощью cryptsetup, и только затем переходить к активации томов.
Активация томов и монтирование файловой системы
Ключевой этап — ручная инициализация метаданных LVM. Выполните следующие команды для поиска и активации всех доступных групп томов:
sudo vgscan
sudo vgchange -ay
После успешной активации логические тома появятся в дереве устройств. Теперь необходимо смонтировать корневую файловую систему во временную точку, например /mnt. Структура монтирования должна полностью соответствовать реальной архитектуре диска:
- Смонтируйте корневой том:
mount /dev/mapper/vg-root /mnt(путь зависит от имени вашей группы томов). - Если существует отдельный раздел
/boot, смонтируйте его в/mnt/boot. - Для систем UEFI обязательно смонтируйте EFI-системный раздел (ESP) в
/mnt/boot/efi. Файловая система этого раздела должна быть FAT32.
Для корректной работы внутри будущего окружения chroot свяжите виртуальные файловые системы:
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
Также скопируйте файл конфигурации сети из Live-сессии в смонтированную систему, чтобы обеспечить доступ к DNS внутри chroot:
cp /etc/resolv.conf /mnt/etc/resolv.conf
Работа в окружении chroot
Перейдите в контекст восстановленной системы:
sudo chroot /mnt
Находясь внутри chroot, выполните диагностику перед переустановкой загрузчика:
- Проверка /etc/fstab: Убедитесь, что UUID разделов совпадают с реальными значениями (проверить можно командой
blkid). Неверные пути к устройствам LVM предотвратят нормальную загрузку. - Генерация initramfs: Выполните
update-initramfs -u. Это гарантирует, что образ начального загрузчика содержит необходимые модули для поддержки LVM и файловой системы корня. Отсутствие этих модулей приведет к падению системы в shell initramfs сразу после этапа GRUB. - Проверка конфигурации GRUB: Убедитесь, что файл
/boot/grub/grub.cfgсуществует. Если он поврежден, его нужно перегенерировать.
Переустановка GRUB
Команда установки загрузчика отличается в зависимости от типа BIOS вашей системы.
Legacy BIOS
Укажите физическое устройство (диск), а не раздел:
grub-install /dev/sda
update-grub
UEFI
Необходимо указать целевую архитектуру и путь к EFI-разделу. Убедитесь, что пакет efibootmgr установлен:
apt install efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=AstraLinux
update-grub
При успешном выполнении вывод команд не должен содержать ошибок уровня ERROR. Обратите внимание, что параметр --bootloader-id определяет имя записи в NVRAM материнской платы.
Настройка порядка загрузки и проверка
После установки файлов загрузчика проверьте порядок загрузки в BIOS/UEFI. Запись AstraLinux должна стоять первой. Если система продолжает загружать старый загрузчик или уходит в меню выбора устройств, возможно, запись в NVRAM не активна или указан неверный путь к файлу shimx64.efi или grubx64.efi.
Если включена защита Secure Boot, убедитесь, что используются подписанные загрузчики. В Astra Linux строгая политика безопасности может блокировать загрузку модулей ядра с неподписанными цифровыми подписями, особенно после ручной установки драйверов.
Финальным шагом после успешной загрузки основной системы выполните:
update-initramfs -u -k all
Это обновит образы начальной загрузки для всех установленных ядер, предотвращая подобные проблемы в будущем.
Часто задаваемые вопросы
Почему grub-install сообщает об отсутствии устройства?
Обычно это происходит по двум причинам: указана конкретная партиция (например, /dev/sda1) вместо целого диска (/dev/sda) для Legacy BIOS, либо раздел EFI не смонтирован в правильную точку для UEFI. Также проверьте, выполнены ли команды активации LVM.
Нужно ли переустанавливать GRUB после каждого обновления ядра?
Нет. Обновление пакетов ядра и выполнение update-initramfs автоматически пересобирают конфигурацию GRUB. Переустановка самого загрузчика (grub-install) требуется только при повреждении MBR/GPT таблицы или изменении архитектуры дисков.
Как восстановить систему, если /boot зашифрован?
Сначала необходимо открыть зашифрованный контейнер через cryptsetup, затем активировать LVM-томы внутри него, и только после этого монтировать разделы и переходить в chroot. Без дешифровки доступ к файлам загрузчика невозможен.
Можно ли использовать LiveCD другого дистрибутива?
Желательно использовать образ той же версии Astra Linux или совместимый Debian-based дистрибутив. Использование сильно отличающихся версий может вызвать конфликты библиотек или отсутствие необходимых утилит в репозиториях live-системы.