Rescue mode astra linux

РЕШЕНО! После установки оперативного обновления 9 на обновление 6 слетел GRUB на сервере с dmraid

Здравствуйте.
После обновления Astra Linux Special Edition 1.6 с обновления 6 до оперативного обновления 9 на сервере, после перезагрузки системы слетел GRUB: symbol ‘grub_calloc’ not found. И строка grub rescue. Загрузка в режиме EFI.
У сервера был настроен дисковый массив на dmraid, в fstab был прописан корневой раздел по идентификатору массива (UUID). При загрузке дистрибутива с DVD в режиме восстановления массив не видится потому как в ALSE, как я понял, нет нормальных драйверов для RAID.
Посоветуйте что можно сделать в данном случае, чтобы починить загрузку?
Спасибо.

YNA

New member

Мне вот такой способ всегда помогал. Попробуйте, терять то нечего.
https://forum.astralinux.ru/threads/3324/post-16666

Jbanchic

New member

Мне вот такой способ всегда помогал. Попробуйте, терять то нечего.
https://forum.astralinux.ru/threads/3324/post-16666

Спасибо за ответ. Проблема в том, что из-за dmraid в системе нет дисков sda. Если б можно было как-то увидеть массив на dmraid — поправить GRUB можно было бы без особых усилий.

YNA

New member

При чём здесь sda? Это просто пример подвернулся. Вы вообще пробовали? Мне тоже интересно.
Там был пример с новым железом и Астра как то спасовала. После восстановления загрузчика смогла загрузиться. Мне эта утилита помогала не только линуксовые загрузчики восстанавливать, но и виндовые (Win 10) после падения линукс-систем и ихнего Граба.

oko

New member

to Jbanchic
Правильно понимаю, что у вас на руках только DVD-диск с ALSE (базовый, без обновлений) и проблемный сервер, на который кто-то ранее установил пакеты поддержки dmraid? Если так, то пробуйте аналогично вот этому.

to YNA
Никакая утилита не поможет, если ОС, под которой загрузились, не видит накопителей с установленной ОС. Поэтому да, дело как раз в поддержке блочных устройств (те же /dev/sda в обычном случае SATA-дисков или /dev/dm в случае dmraid).

Jbanchic

New member

Правильно понимаю, что у вас на руках только DVD-диск с ALSE (базовый, без обновлений) и проблемный сервер, на который кто-то ранее установил пакеты поддержки dmraid? Если так, то пробуйте аналогично вот этому.

Читайте также:  Astra linux initramfs ошибка

Сервер был установлен с базового диска по вами указанной инструкции с подсовыванием модулей dmraid для того, чтобы система увидела массив и прекрасно работала и грузилась. На нее успешно было накатано оперативное обновление 6. После накатывания последнего оперативного обновления 9, который кстати установился без проблем, после перезагрузки сломался GRUB. На текущий момент времени при старте появляется grub rescue и вышеуказанная ошибка. Для того, чтобы починить GRUB, как я понимаю, нужно подцепить дисковый массив, который голым дистрибом ALSE в режиме восстановления не видится на моменте подключения корневого каталога. Поэтому и задаю вопрос здесь.

P.S.: Особенность dmraid в том, что в fstab сам массив прописан был по UUID. И, как я понимаю, там есть свои особенности. Для того, чтобы подцепить массив по UUID и примонтировать его куда-либо для починки GRUB что нужно сделать?

oko

New member

to Jbanchic
Никогда не пользовался ALSE в режиме восстановления.
В Grub rescue команда ls тоже ничего не показывает?
Остается вариант грузануться с LiveCD с поддержкой dmraid, выполнить chroot в /boot-раздел или корневой (если /boot там) и оттуда восстановить grub через update-grub. Сам подобным не занимался на ALSE с учетом обязаловки паролей на grub и невозможности корректно использовать root (придется chroot выполнять под уч.запись sudo-пользователя, устанавливавшего систему). Поэтому что-то более детальное посоветовать не могу.

oko

New member

to Jbanchic
Кстати, да, можно и дистриб ALSE использовать. Выполнить как по инструкции dmraid=true, чтобы ALSE его увидела. Далее CTRL+ALT+F2, chroot, установить пакеты поддержки dmraid и обновить GRUB. И, не возвращаясь в графику, ребутнуть сервер. По-идее должно помочь.

Jbanchic

New member

Никогда не пользовался ALSE в режиме восстановления.
В Grub rescue команда ls тоже ничего не показывает?

Показывает. Два диска с тремя разделами на каждом. Ну оно и понятно — в RAID зеркало.
hd0 (hd0.gpt3) (hd0.gpt2) (hd0.gpt1) hd1 (hd1.gpt3) (hd1.gpt2) (hd1.gpt1)

Остается вариант грузануться с LiveCD с поддержкой dmraid, выполнить chroot в /boot-раздел или корневой (если /boot там) и оттуда восстановить grub через update-grub

oko

New member

to Jbanchic
Значит, поддержка dmraid не слетела. Тогда без LiveCD (чисто из grub rescue) можете сделать то же самое — ищите hd с /boot, чрутьтесь в него и далее по тексту.

Читайте также:  Office 2003 в linux

Jbanchic

New member

to Jbanchic
Значит, поддержка dmraid не слетела. Тогда без LiveCD (чисто из grub rescue) можете сделать то же самое — ищите hd с /boot, чрутьтесь в него и далее по тексту.

Если можно поподробнее. из grub rescue. Какие команды доступны и какие нужно запустить из rescue? Насколько я знаю, в этом режиме доступны всего 4 команды: ls, set, unset, insmod.
По разделам: gpt3 -скорее всего раздел EFI, gpt2 — /, gpt1 — swap.

oko

New member

to Jbanchic
Не знаю, актуально ли еще, но вот тут испчерпывающе расписаны возможные варианты.
Вообще, у вас, конечно, комбо: dmraid + efi. Imho, в подавляющем большинстве случаев любого сервера и GPT (и, следовательно, EFI) не требуется, и аппаратный (и тем более фейковый) RAID проще заменить программным на базе mdadm. Если речь не идет о каких-нибудь сверхнагруженных системах и обязательном требовании BBU и доп.кэширования.

mister

New member

Jbanchic

New member

Похоже надо трясти техподдержку Астры. Похоже это реально проблема для тех, у кого есть RAID-массивы.

Jbanchic

New member

Проблема с dmraid решена.
Долгое время не было возможности исправить ситуацию из-за того, что загруженная система не распознавала разделы массива, видела только сам массив без разделов. Не помог ни оригинальный дистрибутив ALSE, ни более новый ALCE.
В итоге загрузчик починен. Помог Linux Mint 20.2 Cinnamon загрузочный диск с офсайта. Все три раздела (EFI, root, swap) система увидела без добавления инструкции dmraid=true.
Решение:
1. Создается каталог, к примеру /mnt/1
2. Монтируется корневой каталог (в моем случае /dev/mapper/isw_xxxxx_xxxp2) в /mnt/1
3. mount -o bind /proc /mnt/1/proc
mount -o bind /sys /mnt/1/sys
mount -o bind /dev /mnt/1/dev
4. chroot /mnt/1
5. Если у вас UEFI загрузка, то дополнительно монтируется раздел с EFI (в моем случае /dev/mapper/isw_xxxxx_xxxp1) в раздел, в который он должен монтироваться в /etc/fstab (после chroot он легко смотрится cat /etc/fstab) (в моем случае в /boot/efi)
6. grub-install
7. update-grub

Загрузчик починен, система грузится.

P.S.:Единственное добавлю, что в некоторых случаях, если используется UEFI, в BIOS может появиться другой починенный раздел загрузки и сохранится старый, который не грузит grub. Лишний можно (да и нужно) удалить в BIOS.

Читайте также:  Linux чем отличается от виндовс

roshchindmitriy

New member

1. Ошибка error symbol: `grub_calloc` not found на дисках с UEFI.
2. Загрузиться в AstraLinux Orel 2.13.1 livecd или Linux Mint 20.2 livecd.
3. Список дисков:
# lsblk
4. Монтируем корневой раздел:
# sudo mount /dev/sda2 /mnt/
5. efi:
# sudo mount /dev/sda1 /mnt/boot/efi/
7. # sudo mount -o bind /sys/ /mnt/sys/
# sudo mount -o bind /proc/ /mnt/proc/
# sudo mount -o bind /dev/ /mnt/dev/
8. # sudo chroot /mnt/
9. # grub-install
10. # update-grub
11. Перезагрузка.

roshchindmitriy

New member

Исправить GRUB UNKNOWN ERROR:
1. Список доступных разделов:
# ls
2. Просмотреть содержимое каждого раздела:
# ls (hd0,3)/
Если вы увидели папку boot, значит это наш раздел.
3. # set root=(hd0,3)
# set prex=(hd0,3)/boot/grub
4. # insmod normal
# normal

Если загрузились с текущего диска:

1. Устанавливаем GRUB на диск /dev/sda:
# sudo grub-install
2. # sudo update-grub
3. Перезагрузка.

Источник

Режим восстановления

Для того, чтобы была возможна нормальная работа в консоли режима восстановления (bterm, «синяя консоль») рекомендуется заранее установить пакет ncurses-term, если он не был ранее установлен:

Отсутствие этого пакета не критично, и при его отсутствии для работы в режиме восстановления применим описанный далее прием переключения в псевдотерминал («черная консоль»).

Для входа в режим восстановления:

  • Вставить установочный диск и загрузиться с него;
  • Выбрать язык установки;
  • Выбрать режим Восстановления:
  • Пройти первичную настройку:
  • Согласиться с лицензионным соглашением:
  • Выбрать предпочитаемый способ переключения раскладки клавиатуры :
  • Ввести желаемое имя компьютера:
  • Выбрать часовой пояс:
  • Выбрать корневой раздел. Обычно это /dev/sda1 с таблицей MBR или /dev/sda2 с таблицей GPT:
  • Запустить оболочку в корневом разделе:
  • Запустить интерпретатор :
  • Если в системе отсутствует пакет ncurses-term (например в консоли режима восстановления, не выполняется команда mc), то:
    • перейти в псевдотерминал («черная консоль») с помощью клавиш «Alt+Ctrl+F2»:
    • Нажать клавишу «Enter» для активации консоли:
    • После активации станет доступна командная строка:
    • Для получения доступа к корневому разделу выполнить команду chroot /target:
    • Теперь в псевдотерминале доступен корневой раздел со всеми консольными утилитами и псевдографикой.
  • Выполнить необходимые действия по восстановлению;
  • Если работа выполнялась в псевдотерминале («черная консоль»)), то после окончания работы вернуться в «синюю консоль» (клавиша Ctrl-Alt-F1);
  • Нажать Ctrl-D;
  • Изъять оптический диск из привода;
  • Перезагрузить машину:

Источник

Оцените статью
Adblock
detector