LINUX.ORG.RU

Debian grub не видит корневой системы

 ,


0

1

Доброго времени суток!

Имею Debian Sid и поймал вчера данный баг.

Проблема была такого рода - после обновления grub, при включении машины вижу на доли секунду надпись Welcome to Grub, потом машина ребутится и выходит в Bios.

Я не сразу понял в чём дело, думал просто слетел разгрузчик. Попытался восстановить его с помощью livecd в rescue mode https://wiki.debian.org/GrubEFIReinstall

Получил

grub-install: warning: EFI variable cannot set on this system

Имею конфигурацию:

-nvme0n1
--nvme0n1p1 - efi
--nvme0n1p2 - boot
--nvme0n1p3 - LUKS root

Решил плюнуть и отформатировал разделы boot и efi. Попробовал повторить процедуру восстановление grub - не помогло.

Узнал о том, что проблема в пакете grub , который в системе. Через chroot обновил до 2.12~rc1-9. Но при выполнении grub-install вижу

grub-install /dev/nvme0n1
Installing for x86_64-efi platform
Installation Finished. No error reported
update-grub проходит, но он не находит мою корневую систему, ядра не добавляются в grub.

Я пробовал grub-mkconfig -o /boot/grub/grub.cfg - не помогает.

Сейчас grub имеет только одну опцию закгрузки - Firmware EFI.

Попробовал откатиться до 2.06-13. Сам grub устанавливается(после предварительного форматирования разделов efi и boot), но не видит мою систему.

Как заставить Grub увидеть мою систему и почему он сам её не определяет?

Я так понимаю, ему не хватает initramfs, но как их сгенерить?



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

Я не Сева, но встряну.

blkid покажет вам диски/разделы

В новых дебианах есть прикол с efi разделом, куда он у вас смонтирован?

Проверьте /etc/fstab на наличие правильных uuid для разделов.

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

blkid покажет вам диски/разделы

Да, это я понимаю. Но какие разделы ему вообще нужны? Система ведь начинает грузиться, ядро проинициализировалось, но дальше модули не грузит.

--nvme0n1p1 - /boot/efi
--nvme0n1p2 - /boot
--nvme0n1p3 - / (LUKS) 
efi смонтирован в /boot/efi

Я уже понял, что допустил большую ошибку, когда форматнул загрузочные разделы... Но не мог знать про баг граба...

Yazov
() автор топика
$sudo tree /boot/efi/
/boot/efi/
├── archive_db
│   └── arcdir
├── EFI
│   ├── BOOT
│   │   ├── BOOTX64.EFI
│   │   ├── fbx64.efi
│   │   ├── grub.cfg
│   │   ├── grubx64.efi
│   │   └── mmx64.efi
│   ├── debian
│   │   ├── BOOTX64.CSV
│   │   ├── fbx64.efi
│   │   ├── fw
│   │   ├── fwupdx64.efi
│   │   ├── grub.cfg
│   │   ├── grubx64.efi
│   │   ├── mmx64.efi
│   │   └── shimx64.efi
│   └── Dell
│       └── Bios
│           └── Recovery
│               ├── BIOS_CUR.RCV
│               └── BIOS_PRE.rcv
└── System Volume Information


так?
uuid ещё в grub.cfg пишутся.
и ещё, efi раздел - fat, со специальным флагом(esp) - по ней uefi bios находит его, и соответствующие файлы в последствии исполняет.
с живчика через gparted посмотри, есть ли.

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 3)
Ответ на: комментарий от Yazov

Но может где-то нужно подправить?

Я смотрю диск у вас размечен уже. Если груб не ставить совсем, значит у вас гпт и для него просто нет места.

Можете переразбить диск по новой при установке, или сместить первый раздел на 1мб.

Но есть способ лучше. В дебиане очень хорошо приготовили системд-бут. Не надо плясок с грубом.

П.С. подправить можно настройки груба. В файл /etc/default/grub добавить что-то типа

root=UUID=%UUID_раздела% rootfstype=%ваша_фс%

utanho ★★★★★
()
Последнее исправление: utanho (всего исправлений: 1)
Ответ на: комментарий от Yazov

Тебе ещё нужна помощь? Я так понимаю, что у тебя EFI раздел, /boot на ext4 и / на LUKS1 в ext4?

Я помогу, просто мне придется поднять виртуалку, и желательно такую же, как у тебя.

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

Похоже это из-за того, что Я начал копировать файлы, уже о переустановке системы задумался. Ну это не проблема.

Увидел, что у меня не совпадает uuid раздела efi - поправил, сейчас проверю

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

Нет. Потому что невозможно выполнить команду

mount -t efivarfs none /sys/firmware/efi/efivars
Так как liveCD был запущен без опции efi=runtime.

Yazov
() автор топика
Последнее исправление: Yazov (всего исправлений: 1)