Страница 1 из 1

UEFI, восстановление загрузки

Добавлено: 17 ноя 2024, 16:59
m1kele
Известна проблема загрузки ос при перестановке системного диска с двумя операционными системами(windows, linux) в другую машину, когда при загрузке не удается загрузиться в Linux, его "не видно". И манипуляции с биос не помогают. При этом в некоторых версиях уже отсутствует поддержка Legacy и настройки переключения UEFI/Legacy попросту нет.
Есть статья, в которой довольно подробно описаны действия по восстановлению, и они работают, любой более менее знакомый с linux пользователь справится.
https://www.decker.su/2017/07/ubuntu-ue ... epair.html
Эту тему я пишу для совсем "зеленых" пользователей как я, не особо работающих с командной строкой и не знающих некоторых нюансов линукса.
Как и написано в статье выше, вводим команду sudo fdisk -l и получаем список разделов.

Устр-во начало Конец Секторы Размер Тип
/dev/nvme1n1p1 2048 514047 512000 250M EFI
/dev/nvme1n1p2 514048 776191 262144 128M Зарезервированный раздел Mi
/dev/nvme1n1p3 776192 460611604 459835413 219,3G Microsoft basic data
/dev/nvme1n1p4 963987456 996968447 32980992 15,7G Среда для восстановления Mi
/dev/nvme1n1p5 460613632 961959935 501346304 239,1G Файловая система Linux

Ищем раздел EFI, у меня он называется /dev/nvme1n1p1. Но, два последних символа это номер раздела, и он нам не нужен - оставляем dev/nvme1n1. А Номер раздела у нас p1, понадобится далее*

Далее монтируем его - sudo mount /dev/nvme1n1 /mnt .

Далее прописываем наш вариант загрузчика:
efibootmgr -c -d /dev/nvme1n1 -p НОМЕР_РАЗДЕЛА -L "Ubuntu" -l "\Efi\ubuntu\grubx64.efi"

*НОМЕР_РАЗДЕЛА - на моем примере это раздел p1, нам нужна только цифра.
Так же важно прописать путь к файлу в нужном регистре, например в моем случае это было EFI, в статье, на которую я сослался вначале, в верхнем регистре только первая буква.
Проверяем командой:
ls /mnt
ls /mnt/EFI/

Итоговая команда выглядит так: efibootmgr -c -d /dev/nvme1n1 -p 1 -L "Ubuntu" -l "\EFI\ubuntu\grubx64.efi"