В данной статье расскажем как исправить ошибки загрузки ОС Astra Linux. Ошибки могут быть следующими:
«Loading Linux 5.12.0-50-generic …
error: file `/boot/vmlinuz-5.12.0-50-generic’ not found.
error: you need to load the kernel first.
Press any key to continue…»
«error: ELF header smaller than expected»
«error: mismatched names.»
Введение в GRUB, проверка исходных настроек.
Командную оболочку GRUB можете использовать для обнаружения загрузочных образов, ядер и корневых файловых систем. Фактически, он дает вам полный доступ ко всем файловым системам на локальном компьютере независимо от разрешений или других средств защиты.
Когда вы находитесь в grub> режиме, у вас есть множество функций, аналогичных любой командной оболочке, таких как история и завершение табуляции. Режим grub rescue> более ограничен, без истории и табуляции.
Давайте познакомимся с командами Grub.
1. Введите ls , чтобы вывести список всех разделов, которые видит GRUB:
grub > ls (hd0) (hd0,gpt2) (hd0,gpt1)
2. Используйте ls команду, чтобы увидеть, какие файлы находятся в вашей системе:
grub > ls (hd0,1)/ lost+found/ bin/ boot/ cdrom/ dev/ etc/ home/ lib/ lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz vmlinuz.old initrd.img initrd.img.old
3. Мы определили корневую файловую систему. Дополнительно вы можете прочитать любой файл в операционной системе с помощью команды cat:
grub rescue> grub Rescue> cat (hd0,1)/etc/astra/build_version Astra Linux 1.7.4
4. С помощью команды ls увидим вывод директории boot:
grub > ls(hd0,gpt1) /boot ./ ../ efi/ config-5.15.0-70-generic grub/ config ... initrd.img-5.15.0-70-generic vmlinuz-5.15.0-70-generic ...
Загрузка Linux из grub в рабочем режиме.
Далее разберемся как установить загрузочные файлы и загрузить систему из режима grub>
. Благодаря выполнению ls
команды мы знаем, что на сервере существует корневая файловая система Linux (hd0,1).
- Запустите эти команды, используя собственный корневой раздел, ядро и образ initrd:
grub > set root=(hd0,1) grub > linux /boot/vmlinuz-5.15.0-70-generic root=/dev/sda1 grub > initrd /boot/initrd.img-5.15.0-70-generic grub > boot
Первая строка grub > set root=(hd0,1) задает раздел, в котором находится корневая файловая система.
Вторая строка grub > linux /boot/vmlinuz-5.15.0-70-generic root=/dev/sda1 сообщает GRUB расположение ядра, которое вы хотите использовать. Как узнать правильный раздел sda или sdb? hd0,1 = /dev/sda1. hd1,1 = /dev/sdb1, hd3,2 = /dev/sdd2.
Третья строка grub > initrd /boot/initrd.img-5.15.0-70-generic задает initrd
файл, который должен иметь тот же номер версии, что и ядро.
Четвертая строка загружает вашу систему.
2. Теперь мы можем загрузиться с grub>
следующим образом:
grub> set root=(hd0,1) grub> linux /vmlinuz root=/dev/sda1 grub> initrd /initrd.img grub> boot
Загрузка Linux из Grub Rеscue (в режиме восстановления).
Если вы находитесь в аварийной оболочке GRUB — GRUB Rescue,то команды будут другими, и вам придется загрузить модули normal.mod и linux.mod :
grub rescue> set prefix=(hd0,1)/boot/grub grub rescue> set root=(hd0,1) grub rescue> insmod normal grub rescue> normal grub rescue> insmod linux grub rescue> linux /boot/vmlinuz-5.15.0-70-generic root=/dev/sda1 grub rescue> initrd /boot/initrd.img-5.15.0-70-generic grub rescue> boot
После ввода команды boot вы сможете снова загрузиться в ОС, но для того, что бы после перезагрузки системы все снова запустилось, вам нужно из ОС Astra Linux переустановить GRUB через fly-терминал.
Завершаем восстановление системы Astra Linux . Установка и обновление GRUB.
- Вводим следующую команду для обновления:
# sudo update-grub Generating grub configuration file ... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-5.15.0-70-generic Found initrd image: /boot/initrd.img-5.15.0-70-generic ... done
2. Далее, после обновления, выполним установку Grub на загрузочный сектор жесткого диска:
# sudo grub-install /dev/sda Выполняется установка для платформы x86_64-efi. Установка завершена. Ошибок нет.
При запуске grub-install помните, что вы устанавливаете его в загрузочный сектор вашего жесткого диска /dev/sda, а не в раздел, поэтому НЕ ИСПОЛЬЗУЙТЕ номер раздела, например /dev/sda1.
3. Не забываем записать конфиг в соответствующую директорию:
sudo grub-mkconfig -o /boot/grub/grub.cfg Generating grub configuration file... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-5.15.0-70-generic Found initrd image: /boot/initrd.img-5.15.0-70-generic ... done
После данной процедуры вы можете перезапустить Astra Linux и ошибка не повторится.