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

В отличие от Windows, где процесс восстановления часто автоматизирован, в среде Astra Linux требуется ручное вмешательство через консольные утилиты. Однако, зная правильную последовательность действий, можно вернуть работоспособность сервера или рабочей станции за считанные минуты. Мы разберем методы восстановления как для классического режима, так и для специальных режимов безопасности.

Диагностика причин сбоя загрузчика

Прежде чем приступать к восстановлению, необходимо понять, почему система перестала загружаться. Ошибки могут быть вызваны повреждением сектора загрузочной области (MBR или EFI), изменением UUID разделов или конфликтом с другими операционными системами. В терминале Astra Linux часто можно увидеть сообщение «Grub rescue» или «No bootable device found», что указывает на потерю связи между загрузчиком и корневым разделом.

Если вы видите сообщение error: no such partition, это означает, что GRUB не может найти указанный раздел. Такое случается, если вы меняли метки томов или форматировали диск без обновления конфигурации загрузчика. В случае использования Secure Boot проблема может возникнуть из-за неверно подписанного модуля ядра.

Краткий список типичных причин:

  • ❌ Повреждение файловой системы раздела /boot или /boot/efi
  • ❌ Ошибки при обновлении пакета grub-pc или grub-efi
  • ❌ Неправильная конфигурация файла grub.cfg

Подготовка загрузочного носителя LiveCD

Для восстановления системы вам потребуется внешний загрузочный носитель с образом Astra Linux, идентичным установленной версии. Это критически важно, так как утилиты восстановления должны быть совместимы с версией ядра на целевом диске. Если у вас есть доступ к другому компьютеру, скачайте ISO-образ с официального сайта и запишите его на флешку.

Вставьте носитель в компьютер и загрузитесь с него. В меню загрузки выберите режим «Live» или «Запуск без установки». Дождитесь полной загрузки графической оболочки или перехода в консоль. Убедитесь, что вы работаете с правами суперпользователя, так как все следующие команды потребуют root-доступа.

Важно проверить, видят ли диски ваш сервер:

  • 🔍 Используйте команду lsblk для отображения всех блочных устройств
  • 🔍 Проверьте наличие раздела /boot и корневого раздела /
  • 🔍 Убедитесь, что нет ошибок файловой системы при монтировании
⚠️ Внимание: Перед началом любых операций с разметкой диска убедитесь, что у вас есть актуальная резервная копия важных данных. Ошибочная команда может привести к безвозвратной потере информации.
📊 Какой тип загрузки используется в вашей системе?
  • BIOS (MBR)
  • UEFI (GPT)
  • Гибридный режим
  • Не знаю

Монтирование разделов для восстановления

Первым шагом после загрузки с LiveCD является правильное монтирование корневых разделов системы. Вам нужно создать точку монтирования и подключить туда ваш основной раздел. Например, если ваш корневой раздел находится на /dev/sda1, выполните команду mount /dev/sda1 /mnt. Это создаст временную среду, в которой вы сможете работать с файлами поврежденной системы.

Если у вас используется отдельный раздел для загрузчика, его также необходимо смонтировать. Для систем с UEFI это обычно раздел /dev/sda2 (FAT32), который нужно подключить в /mnt/boot/efi. Без правильного монтирования раздела EFI загрузчик не сможет записать свои файлы в правильное место на диске.

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

  • 📂 Выполните mount --bind /dev /mnt/dev
  • 📂 Выполните mount --bind /proc /mnt/proc
  • 📂 Выполните mount --bind /sys /mnt/sys

☑️ Подготовка окружения chroot

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

Вход в среду chroot и переустановка GRUB

Теперь, когда все разделы смонтированы, необходимо перейти в среду вашей системы, используя утилиту chroot. Это позволит вам выполнять команды так, будто вы уже загрузились в свою ОС. Введите команду chroot /mnt. После успешного выполнения вы увидите смену приглашения в терминале, что подтверждает вход в систему.

Внутри среды chroot первым делом обновите список пакетов и переустановите сам загрузчик. Это гарантирует, что все файлы GRUB будут актуальны и не повреждены. Используйте пакетный менеджер apt для выполнения этой задачи. Для систем на базе Astra Linux с архитектурой x86_64 команда будет выглядеть следующим образом:

apt update && apt install --reinstall grub-pc grub-common

Если у вас система с UEFI, вам нужно установить пакет grub-efi и efibootmgr. После установки файлов необходимо установить загрузчик на физический диск. Для BIOS это будет весь диск (например, /dev/sda), а для UEFI — указание на EFI-раздел. Критически важно указать именно диск, а не раздел, иначе загрузчик не сможет корректно инициализироваться при старте.

Пример установки загрузчика для BIOS:

grub-install /dev/sda
Что делать, если chroot выдает ошибку?

Ошибка «No such file or directory» часто возникает, если вы забыли смонтировать /dev, /proc или /sys. Проверьте список примонтированных точек перед входом в chroot.

Генерация нового конфигурационного файла

После переустановки самого загрузчика необходимо сгенерировать новый файл конфигурации grub.cfg. Этот файл содержит меню загрузки и параметры ядра. Без его обновления система может не увидеть установленные ядра или загрузиться в старом режиме. Утилита update-grub автоматически сканирует все доступные разделы и создает актуальный конфиг.

Запустите команду update-grub. В процессе выполнения вы увидите сообщения о поиске образов Linux, инициализации инициализационных скриптов и обнаружении других операционных систем. Если система находит несколько ядер, она создаст для них отдельные записи в меню.

Результат выполнения команды должен содержать строки:

  • ✅ Found linux image: /boot/vmlinuz...
  • ✅ Found initrd image: /boot/initrd.img...
  • ✅ Found memtest86+ image...

Таблица команд для разных сценариев

Ниже приведена сводная таблица действий для различных типов загрузок и сценариев восстановления. Использование правильных утилит зависит от типа интерфейса (BIOS или UEFI) и состояния файловой системы.

Сценарий Тип загрузки Команда установки Команда генерации конфига
Стандартная установка BIOS (MBR) grub-install /dev/sda update-grub
Современные серверы UEFI (GPT) grub-install --target=x86_64-efi --efi-directory=/boot/efi update-grub
Поврежденный конфиг Любой grub-install --recheck /dev/sda grub-mkconfig -o /boot/grub/grub.cfg
Восстановление ядра Любой apt install --reinstall linux-image-generic update-initramfs -u
💡

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

Проверка и перезагрузка системы

После выполнения всех вышеописанных шагов необходимо корректно завершить работу среды восстановления. Выйдите из chroot, набрав exit, затем размонтируйте все разделы командой umount -R /mnt. Это обеспечит целостность файловых систем перед извлечением носителя.

Извлеките флешку или LiveCD и перезагрузите компьютер командой reboot. При загрузке должно появиться меню GRUB с записями вашей системы. Если система загрузилась успешно, проверьте работоспособность сетевых интерфейсов и служб безопасности Astra Linux.

Если меню загрузки не появляется, возможно, настройки BIOS/UEFI сбросились. Проверьте приоритет загрузки в настройках BIOS, убедившись, что диск с ОС стоит первым. В некоторых случаях может потребоваться ручное добавление записи в efibootmgr.

💡

Регулярное обновление пакетов grub и ядра является лучшей профилактикой проблем с загрузкой, но наличие LiveCD под рукой обязательно для администратора.

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

Что делать, если команда grub-install выдает ошибку «no such disk»?

Это означает, что устройство не найдено. Проверьте, правильно ли вы указали имя диска (например, /dev/sda, а не /dev/sda1). Убедитесь, что диск определяется командой lsblk и не поврежден физически.

Как восстановить GRUB, если раздел /boot отдельный?

Необходимо смонтировать корневой раздел в /mnt, а раздел /boot смонтировать в /mnt/boot перед входом в chroot. После этого команда update-grub корректно сгенерирует конфигурацию.

Можно ли восстановить загрузчик без LiveCD?

Если система загружается в режим восстановления (Recovery Mode) или вы можете загрузиться с другого ядра, можно выполнить команду grub-install из работающей системы. Однако при полной потере загрузки LiveCD — единственный вариант.

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

Введите команду df -T /boot. Если файловая система FAT32, скорее всего, это UEFI. Если ext4, проверьте наличие файла /sys/firmware/efi. Если он существует — система UEFI, иначе — BIOS.

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