LINUX.ORG.RU

Слетел grub после обновления BIOS UEFI

 ,


1

1

Добрый день. На ноутбуке lenovo ideapad 3 15are05 стоит dualboot Windows 11 + fedora gnome. В центре обновлений винды прилетело обновление bios. Обновился - пропал пункт загрузки fedora в boot menu и грузится в только Винду. При установке Федоры создавал отдельно раздел boot/efi. Обе оси установлены в gpt разделе. Как восстановить загрузчик grub?



Последнее исправление: Pr0ggerMan (всего исправлений: 4)
Ответ на: комментарий от Pr0ggerMan

Повторите те команды, что были даны в первом блоке этого сообщения, только в конце ещё дополнительно выполните sudo mount --bind {,/mnt}/sys/firmware/efi/efivars.

Затем перейдите в chroot и попробуйте переустановить GRUB:

sudo chroot /mnt
grub2-install --target=x86_64-efi /dev/nvme0n1
Rootlexx ★★★★★
()
Ответ на: комментарий от Pr0ggerMan

Не знаю. Потому и говорю из-под Windows удалять, она умная, свой EFI раздел удалить не даст. Надеюсь.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Лично я бы сейчас удалил из-под Windows все разделы EFI, кроме того, что нужен ей, и через chroot переставил бы grub2-efi на её EFI раздел

Ну или так, да.

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

Всё, придумал. В Windows через Win+R вызываем diskmgmt.msc, там удаляем все разделы EFI, кроме виндового, после чего грузимся в Live Fedora и там выполняем:

sudo mount -o subvol=root,compress=zstd:1 UUID=a82cac47-8c1c-405b-aacc-a7873d9750c0 /mnt
sudo mount -o subvol=home,compress=zstd:1 UUID=a82cac47-8c1c-405b-aacc-a7873d9750c0 /mnt/home
sudo mount UUID=1b2b94b8-6723-4d13-aea3-cd24266a6e86 /mnt/boot
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind {,/mnt}/sys/firmware/efi/efivars
sudo chroot /mnt
grub2-install --target=x86_64-efi /dev/nvme0n1
Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Rootlexx

Мля, точно…. а какой он будет? Тогда, наверное:

sudo mount -o subvol=root,compress=zstd:1 UUID=a82cac47-8c1c-405b-aacc-a7873d9750c0 /mnt
sudo mount -o subvol=home,compress=zstd:1 UUID=a82cac47-8c1c-405b-aacc-a7873d9750c0 /mnt/home
sudo mount UUID=1b2b94b8-6723-4d13-aea3-cd24266a6e86 /mnt/boot
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind {,/mnt}/sys/firmware/efi/efivars
sudo chroot /mnt
grub2-install --target=x86_64-efi /dev/nvme0n1

?

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

а какой он будет?

Наверное, /dev/nvme0n1p1. Но всё же пусть автор темы покажет вывод lsblk из-под Live-системы после удаления лишних EFI-разделов.

Rootlexx ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Я через одну программу просмотрел ефи разделы. В разделе на 100 мб хранятся папки федоры и Майкрософт, в остальных только Федора. Следовательно, ефи на 100 мб виндовый?

Pr0ggerMan
() автор топика
Ответ на: комментарий от Pr0ggerMan

Короче, удаляешь лишние EFI разделы, делаешь всё, как в этом комментарии: Слетел grub после обновления BIOS UEFI (комментарий) , и напоследок перед выходом из chroot меняешь через nano /etc/fstab строчку

UUID=B218-B717          /boot/efi               vfat    umask=0077,shortname=winnt 0 2

на

UUID=822B-1521          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Pr0ggerMan

@Vsevolod-linuxoid, @Rootlexx, как и просили

[liveuser@localhost-live ~]$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0   1.8G  1 loop 
loop1         7:1    0   7.6G  1 loop 
├─live-rw   253:0    0   7.6G  0 dm   /
└─live-base 253:1    0   7.6G  1 dm   
loop2         7:2    0    32G  0 loop 
└─live-rw   253:0    0   7.6G  0 dm   /
sda           8:0    1  14.7G  0 disk 
├─sda1        8:1    1   1.9G  0 part /run/initramfs/live
├─sda2        8:2    1   9.9M  0 part 
└─sda3        8:3    1  20.8M  0 part 
zram0       252:0    0   7.2G  0 disk [SWAP]
nvme0n1     259:0    0 476.9G  0 disk 
├─nvme0n1p1 259:1    0   100M  0 part 
├─nvme0n1p2 259:2    0    16M  0 part 
├─nvme0n1p3 259:3    0 376.2G  0 part 
├─nvme0n1p4 259:4    0   512M  0 part 
├─nvme0n1p5 259:5    0     4G  0 part 
├─nvme0n1p6 259:6    0  95.1G  0 part 
└─nvme0n1p7 259:7    0   596M  0 part 
Pr0ggerMan
() автор топика
Ответ на: комментарий от Rootlexx

Выдает такую ошибку

[root@localhost-live /]# grub2-install --target=x86_64-efi /dev/nvme0n1
grub2-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.
Pr0ggerMan
() автор топика
Ответ на: комментарий от Pr0ggerMan

Увы, насчет этого не знаю, как исправить. Но я кое-что вспомнил: так как мы меняли файлы на выключенной ОС, после загрузки может начать ругаться SELinux. Нужно перед выходом из chroot сделать touch /.autorelabel — загрузка будет после этого в первый раз долгой, а потом нормально.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Pr0ggerMan

Я покопался — судя по всему, тебе нужно в chroot сделать dnf install grub2-efi-x64-modules

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Rootlexx

аналогичную ошибку, что и в первый раз

grub2-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.
Pr0ggerMan
() автор топика
Ответ на: комментарий от Rootlexx

а, так вот в чем дело. Я просмотрел директорию /usr/lib/grub

ls /usr/lib/grub
i386-pc

Значит вместо x86_64 надо вставить i386-pc

Pr0ggerMan
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

мне надо отрубить secure boot?

[root@localhost-live /]# grub2-install --target=x86_64-efi /dev/nvme0n1
grub2-install: error: this utility cannot be used for EFI platforms because it does not support UEFI Secure Boot.
Pr0ggerMan
() автор топика
Ответ на: комментарий от Pr0ggerMan

Не знаю, как в fedora, а в debian есть отдельный пакет grub-efi-amd64-signed

И загрузчик потом ставится примерно так:

grub-install /dev/sdd --target x86_64-efi --uefi-secure-boot

попробуй к своей строке добавить ключ «–uefi-secure-boot»

router ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

У меня в grub-install есть опция --uefi-secure-boot, которая выбирает x86_64-efi-signed вместо просто x86_64-efi. Но похоже, что в Fedora такой опции нет.

Rootlexx ★★★★★
()

Силы небесные, какой разврат!

Просто создайте запись с помощью efibootmgr, указывающую на shimx64.efi. И все.

i586 ★★★★★
()
Ответ на: комментарий от Pr0ggerMan

Мда… ну попробуй тогда выполнить:

dnf reinstall grub2-efi-x64 grub2-efi-x64-cdboot grub2-tools-efi shim-x64 grub2-efi-x64-modules
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
touch /.autorelabel
sed -i 's/B218-B717/822B-1521/' /etc/fstab

Потом выход из chroot и перезагрузка.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от i586

Уже удалили прежние EFI разделы, так что поздно. Но вообще херня какая-то — у нас есть рабочий chroot, но нет возможности на уже установленной ОС заново поставить grub2-efi?!

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid
[root@localhost-live /]# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Generating grub configuration file ...
grub2-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
grub2-probe: error: cannot find a GRUB drive for /dev/sdb3.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
done
Pr0ggerMan
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.