Восстановить загрузчик grub astra linux

Есть простой способ восстановить загрузчик?

Каждый раз после сбоя питания слетает загрузчик астры, и остается только виндосный. Обновил загрузчик на Live-usb, он увидел астру на жестком и загрузил ее. А что дальше? Везде ошибки восстановления или установки grub. Почему?

Все что есть в интернете к астре не подходит(((
Дайте плз совет как восстановить этот гребаный загрузчик в астре. А еще лучше — заменить MBR на Grub

townbov

New member

1625653494287.png

даже обновление с ошибкой))))

oko

New member

to townbov
Вообще странное поведение — сбои питания, слет загрузчика. Загрузчик либо есть, либо его нет. Хотя grub мог не сам записаться в нужную область, а дать лишь ссылку на себя, а размещаться на другом разделе. Тут бы знать, как вы его первично инсталлировали (тем более с uefi-flash).
С NVMe под Linux не работал, возможно там имеются свои баги (тем более в Астре, которая не очень за временем поспевает), но. Разве не тупо sudo grub-install /dev/nvme0n1, читай на само устройство, а не в конкретный раздел?
Что касается apt ugrade. Вы там случайно через dpkg не ставили и потом сносили spice? Похоже, что база apt зафиксировала изменения, а пакета-то уже и нет. Трайните его инсталл по-новой, а затем уже upgrade. Так-то может статься, что проблема вовсе не в системе как таковой.

Vosiley

New member

Не-не-не.
Т.к. это UEFI, да еще с Windows, то размечен диск однозначно в GPT.
Загрузчик GRUB ставится таким образом в директорию EFI. Т.е. /dev/nvme0n1p2 монтируем в /mnt , далее

grub-install --efi-directory=/mnt

Vosiley

New member
grub-install --efi-directory=/boot/efi

townbov

New member
grub-install --efi-directory=/boot/efi

Ага EFI именно там). gpt.png
Но при выполнении выдает ошибку. Пробовал перемонтировать в /mnt но это конечно же ничего не меняет)
install2_grub.png
инсталятор ищет папку i386-pc в /usr/lib но она в /boot/efi. Ок) копирую ее туда куда он хочет)
после этого он не может найти kernel.img и его действительно там нет! Ок)) я копирую из платформы x86_64-efi и конечно же его он не устаивает)
install3_grub.png
ошибка в каком то заголовке ELF
я здаюсь)

townbov

New member

to townbov
Вообще странное поведение — сбои питания, слет загрузчика. Загрузчик либо есть, либо его нет. Хотя grub мог не сам записаться в нужную область, а дать лишь ссылку на себя, а размещаться на другом разделе. Тут бы знать, как вы его первично инсталлировали (тем более с uefi-flash).
С NVMe под Linux не работал, возможно там имеются свои баги (тем более в Астре, которая не очень за временем поспевает), но. Разве не тупо sudo grub-install /dev/nvme0n1, читай на само устройство, а не в конкретный раздел?
Что касается apt ugrade. Вы там случайно через dpkg не ставили и потом сносили spice? Похоже, что база apt зафиксировала изменения, а пакета-то уже и нет. Трайните его инсталл по-новой, а затем уже upgrade. Так-то может статься, что проблема вовсе не в системе как таковой.

Читайте также:  Debian 64 битные дистрибутивы linux

Загрузчик так и остается после збоя. Но биос видит только запись майкрософт.
вот записи в папке efi которые биос видел до збоя: efi.png они все остались
появилась только какая то сомнительная копия в папке Boot: boot.png
переименовать пробовал- но все равно грузится только винда((
Знаю точно, что после переустановки Астры, биос ее снова увидит))))
Переустановка как решение — это треш)

Источник

РЕШЕНО! После установки оперативного обновления 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? Если так, то пробуйте аналогично вот этому.

Читайте также:  Цвет папок в linux

Сервер был установлен с базового диска по вами указанной инструкции с подсовыванием модулей 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, чрутьтесь в него и далее по тексту.

Jbanchic

New member

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

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

Читайте также:  Linux mint календарь google

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.

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. Перезагрузка.

Источник

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