Ситуация, когда операционная система Astra Linux перестает загружаться из-за повреждения или удаления конфигурации загрузчика, является одной из самых стрессовых для системного администратора. Экран с мигающим курсором или сообщение error: no such partition часто свидетельствуют о критическом сбое в работе GRUB, который больше не знает, где искать ядро системы. К счастью, наличие установочного образа или специального Live CD позволяет вернуть систему к жизни без потери данных и переустановки всего дистрибутива.

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

Прежде чем приступать к активным действиям, необходимо убедиться в целостности установочного носителя и возможности загрузки с него на целевом компьютере. Процесс восстановления затрагивает загрузочные секторы диска, поэтому любые неосторожные движения могут привести к полной неработоспособности системы. Критически важно точно идентифицировать имя устройства (например, /dev/sda), на котором resides корневой раздел Astra Linux, чтобы не затереть данные на соседних дисках.

Подготовка среды и анализ дисковой структуры

Первым шагом после загрузки с Live CD является детальный анализ дисковой разметки. Вам необходимо точно определить, на каком физическом диске и логическом разделе установлена поврежденная система, а также где находится раздел /boot, если он выделен отдельно. Стандартные утилиты командной строки предоставляют исчерпывающую информацию о текущем состоянии накопителей.

Используйте утилиту lsblk или fdisk -l для вывода списка всех доступных блочных устройств. В полученном списке нужно найти разделы с файловой системой ext4 или xfs, характерными для Astra Linux. Часто системный раздел имеет наибольший объем, но полагаться только на размер не стоит — лучше выполнить пробное монтирование.

  • 🔍 Запустите команду lsblk -f для просмотра файловой системы и меток разделов.
  • 💾 Определите устройство загрузчика (обычно это весь диск, например /dev/sda) и корневой раздел (например, /dev/sda2).
  • 📂 Проверьте наличие отдельного раздела /boot, который в Astra Linux Special Edition может быть обязателен по требованиям безопасности.

⚠️ Внимание: Никогда не выполняйте операции записи на диск, если вы не уверены на 100% в его идентификаторе. Ошибка в одной букве (например, sda вместо sdb) приведет к безвозвратной потере данных на неправильном накопителе.

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

📊 Какой тип разметки диска используется в вашей системе?
  • MBR (Legacy)
  • GPT (UEFI)
  • Не знаю
  • Смешанный режим

Монтирование файловой системы и подготовка chroot

Для восстановления GRUB необходимо "переместиться" из окружения Live CD в среду установленной системы. Этот процесс называется chroot (change root) и позволяет выполнять команды так, как если бы вы загрузились с жесткого диска. Первым шагом является монтирование корневого раздела установленной Astra Linux в директорию /mnt.

Выполните команду монтирования, указав ранее определенный корневой раздел. Если ваша система использует отдельный раздел для /boot или /boot/efi (в случае UEFI), их также необходимо смонтировать в соответствующие подкаталоги внутри /mnt. Это обеспечит доступ к конфигурационным файлам загрузчика и ядрам системы.

mount /dev/sda2 /mnt

mount /dev/sda1 /mnt/boot

mount --bind /dev /mnt/dev

mount --bind /proc /mnt/proc

mount --bind /sys /mnt/sys

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

☑️ Чек-лист подготовки chroot

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

Теперь, когда все точки монтирования готовы, можно выполнить вход в окружение установленной системы. Команда chroot /mnt изменит корневую директорию для текущего терминала. Вы заметите изменение приглашения командной строки, что будет свидетельствовать об успешном переходе. С этого момента все пути будут вести к файлам на жестком диске, а не в оперативной памяти Live CD.

Процедура переустановки загрузчика GRUB

Находясь внутри окружения chroot, вы получаете полный контроль над конфигурацией системы. Основной задачей является переустановка пакетов загрузчика и обновление его конфигурации. В дистрибутивах семейства Astra Linux за это отвечает пакет grub-common и архитектурно-зависимые пакеты, такие как grub-pc для BIOS или grub-efi-amd64 для UEFI.

Сначала следует проверить, установлен ли пакет загрузчика, и при необходимости переустановить его. Это гарантирует, что все бинарные файлы в директории /boot и модули в /usr/lib/grub соответствуют версии конфигурации. Даже если файлы на месте, повторная установка помогает исправить возможные повреждения метаданных.

apt-get update

apt-get install --reinstall grub-pc grub2-common

После обновления файлов необходимо сгенерировать новую конфигурацию загрузчика. Утилита update-grub (являющаяся оберткой для grub-mkconfig) просканирует смонтированные разделы, найдет установленные ядра Linux и создаст файл /boot/grub/grub.cfg. Именно этот файл читается загрузчиком при старте системы.

  • 🔄 Выполните команду update-grub для автоматического поиска ядер и ОС.
  • 💿 Убедитесь, что в выводе команды обнаружена строка "Found Astra Linux ...".
  • ⚙️ Проверьте отсутствие ошибок в логе при генерации конфигурации.

⚠️ Внимание: Если команда update-grub не находит установленную систему, проверьте правильность монтирования раздела /boot и наличие файлов ядер (vmlinuz-*) в соответствующей директории.

Завершающим этапом внутри chroot является запись загрузочного кода непосредственно в загрузочную область диска (MBR или ESP). Для BIOS-систем используется команда grub-install с указанием целевого устройства (диска, а не раздела). Для UEFI может потребоваться дополнительная настройка через efibootmgr, если запись в NVRAM не произошла автоматически.

Нюансы работы с UEFI

В системах с UEFI загрузчик находится в разделе FAT32 (EFI System Partition). Убедитесь, что он смонтирован в /boot/efi, и используйте флаг --target=x86_64-efi при установке grub-install. Также может потребоваться ручное создание записи в EFI через efibootmgr -c -d /dev/sda -p 1 -L "AstraLinux" -l \\EFI\\astra\\grubx64.efi>

Особенности восстановления в системах с UEFI

Современные компьютеры все чаще используют интерфейс UEFI вместо традиционного BIOS, что вносит свои коррективы в процесс восстановления. В отличие от MBR, где код загрузчика хранится в первых секторах диска, в UEFI используется специальный раздел с файловой системой FAT32, известный как ESP (EFI System Partition). Загрузочные файлы Astra Linux должны находиться именно там.

При работе с UEFI критически важно правильно смонтировать ESP-раздел перед входом в chroot. Обычно он имеет размер около 100-500 Мб и файловую систему FAT32. Если этот раздел не будет доступен по пути /boot/efi (или /boot, если отдельного EFI нет), команда grub-install не сможет скопировать необходимые файлы .efi.

Начало диска (сектора)

Раздел FAT32 (ESP)

grub-install /dev/sdagrub-install --target=x86_64-efi
Параметр BIOS (Legacy) UEFI
Таблица разделов MBR GPT (рекомендуется)
Загрузочный файл core.img + boot sector .efi файл (например, grubx64.efi)
Расположение
Команда установки

В некоторых случаях, особенно после обновления прошивки материнской платы или сброса настроек BIOS, запись о загрузчике Astra Linux может исчезнуть из списка приоритетов загрузки NVRAM. В такой ситуации даже правильно установленный на диск загрузчик не запустится. Для решения проблемы используйте утилиту efibootmgr внутри chroot или из Live CD для создания новой записи.

Типичные ошибки и методы их устранения

Процесс восстановления не всегда проходит гладко, и администратор может столкнуться с различными ошибками. Одна из самых распространенных проблем — сообщение error: failed to get canonical path при выполнении update-grub. Это часто указывает на то, что один из разделов, прописанный в /etc/fstab, не смонтирован или имеет измененный UUID.

Еще одной частой причиной неудачи является попытка установить GRUB на раздел вместо диска. Запомните: команда grub-install для BIOS должна указывать на устройство (например, /dev/sda), а не на раздел (/dev/sda1). В случае UEFI путь должен вести к смонтированному ESP-разделу, но целевым устройством все равно указывается диск.

  • ❌ Ошибка "cannot find GRUB directory": проверьте, правильно ли установлен пакет grub-pc или grub-efi.
  • ⚠️ Ошибка "embedding zone is too small": характерна для GPT без BIOS boot partition, требуется создание специального раздела.
  • 🔒 Ошибка доступа: убедитесь, что вы работаете от имени суперпользователя (root) внутри chroot.

⚠️ Внимание: Если вы используете шифрование диска (LUKS), перед монтированием корневого раздела необходимо раскрыть контейнер. Без этого файловая система останется недоступной для чтения, и восстановление загрузчика будет невозможным.

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

💡

Главный вывод: Большинство ошибок при восстановлении GRUB связано с неправильным определением устройства или отсутствием смонтированных системных каталогов (/dev, /proc, /sys) перед входом в chroot.

Завершение работ и проверка результата

После успешного выполнения команды grub-install и update-grub необходимо корректно завершить сеанс восстановления. Выход из окружения chroot осуществляется командой exit. После этого следует размонтировать все созданные точки монтирования в обратном порядке, чтобы избежать повреждения данных или блокировки устройства.

Размонтирование производится командой umount. Сначала отсоединяются вложенные директории (/mnt/dev, /mnt/proc, /mnt/sys, /mnt/boot/efi), и только в конце — корневой раздел /mnt. Нарушение порядка может привести к сообщению "target is busy", что потребует повторных попыток или перезагрузки Live CD.

exit

umount /mnt/dev

umount /mnt/proc

umount /mnt/sys

umount /mnt/boot/efi

umount /mnt

Финальным аккордом становится перезагрузка компьютера. Извлеките загрузочный носитель (Live CD/USB) и убедитесь, что в BIOS/UEFI выставлен приоритет загрузки с жесткого диска. Если все шаги были выполнены верно, должно появиться меню GRUB с выбором ядра Astra Linux, и система загрузится штатно.

Что делать, если меню GRUB не появляется, но система грузится?

Если система загружается сразу в ОС без показа меню, возможно, таймаут установлен в 0 секунд. Отредактируйте файл /etc/default/grub, изменив параметр GRUB_TIMEOUT на 5 или 10, и снова выполните update-grub.

Можно ли восстановить загрузчик без Live CD, если есть доступ к консоли?

Да, если у вас есть доступ к консоли восстановления (Recovery Mode) в самом меню GRUB или через сеть (SSH), вы можете выполнить те же команды grub-install и update-grub непосредственно из работающей, но частично поврежденной системы.

Как восстановить загрузчик, если диск размечен в GPT, но загружается в режиме Legacy BIOS?

Для такой конфигурации необходим специальный раздел размером 1-2 Мб без файловой системы с флагом bios_grub. В него записывается второй этап загрузчика. Создайте раздел через fdisk или gdisk, установите флаг и повторите процедуру установки GRUB.