LINUX.ORG.RU

переменные EFI не поддерживаются

 , , ,


0

1

здравствуйте, который раз уже ставлю gentoo, но все проваливается на modprobe efivars, дескать, modprobe: FATAL: Module efivars not found in directory /lib/modules/3.10.0-327.el7.x86_64

делал все по мануалам:

https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/ru#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D0.BA.D0.BE.D0.BC.D0.BF.D0.B8.D0.BB.D1.8F.D1.86.D0.B8.D0.B8 и

https://lorwiki.ru/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Linux_%D0%BD%D0%B0_EFI по второму специально все проверил - все совпадает... и сделал даже Enable built-in kernel parameters отсюда:

https://wiki.gentoo.org/wiki/EFI_stub_kernel

и это засобачил в /etc/fstab : efivarfs /sys/firmware/efi/efivars efivarfs ro,nosuid,nodev,noexec,noatime 0 0 отсюда :

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#UEFI_Variables...

и ничего... дохожу до установки efibootmgr и ловлю, что EFI переменные не поддерживаются... подскажите что может быть не так?

★★

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

А нужен ли тебе этот модуль? Если efibootmgr у тебя работает с установленной системы, то модуль тебе явно не нужен.

DeadEye ★★★★★
()

В ядре-то включено всё? Посмотри внимательно.

CONFIG_EFI_PARTITION=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
# CONFIG_EFI_MIXED is not set
CONFIG_FB_EFI=y
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# EFI (Extensible Firmware Interface) Support
CONFIG_EFI_VARS=y
CONFIG_EFI_ESRT=y
# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_EFIVAR_FS=y
# CONFIG_EARLY_PRINTK_EFI is not set
# CONFIG_EFI_PGT_DUMP is not set
anonymous
()

/lib/modules/3.10

свежак-то какой!

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

как в таком случае ядро пересобрать? чет никак найти не могу... именно пересобрать только его и ничего больше не менять... если так можно вообще(просто не шарю)

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

ну ты же собирал ядро? делаешь make menuconfig, выставляешь пункт и делаешь make (если ничего больше менять не будешь, то можно make bzImage сделать и файл ядра уже скопировать вместо существующего)

modprobe efivars уже потом не делать т.к. все уже в ядре.

irton ★★★★★
()

Ты описываешь какие-то ненужные действия и проблемы, всё намного проще.

Компилируешь ядро c:

CONFIG_EFI_PARTITION=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_FB_EFI=y
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_EFI_VARS=y
CONFIG_EFI_ESRT=y
CONFIG_EFI_VARS_PSTORE=y
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_EFIVAR_FS=m
Нужные опции запуска ядра (ведь grub, как и любой загрузчик не используется, т.к. не нужен) указываешь в CONFIG_CMDLINE, например:
CONFIG_FB_CMDLINE=y
CONFIG_CMDLINE_PARTITION=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE_OVERRIDE=y
CONFIG_CMDLINE="root=PARTUUID=f4e2ace7-8687-4ca2-a270-35c1008e3123 net.ifnames=0"
PARTUUID — ведь используется GPT разметка.

Далее копируешь скомпиленное ядро на EFI (200 мб. FAT32 раздел с флагами: boot,esp) как:

cp /boot/vmlinuz-4.6.1-gentoo /mnt/EFI/EFI/Boot/bootx64.efi 
и всё, система загружается и работает.

l-_-l
()
Ответ на: комментарий от l-_-l

Ты написал:

всё намного проще

, так что тебе виднее. Кстати, GRUB тоже использует efibootmgr для добавления записи, так что если он у него по каким-то причинам не работает, то и с грабом ничего не выйдет.

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

Ты

Я сказал, что при установке и запуске генты через UEFI — не требуется разпердол с efivars и сам efibootmgr в целом, у меня например он вообще не установлен, вот в чем гладиолус.

l-_-l
()
Ответ на: комментарий от Andrew

Я выше дал кусок конфига EFISTUB-ядра, для этого вообще не нужен никакой efibootmgr, еще не хватало, чтобы ядро зависело от какого-то еще пакета, на данный момент хватает смешной зависимости от калькулятора sys-devel/bc, лол.

l-_-l
()
Ответ на: комментарий от Andrew

как ты собираешься добавлять в ефишный бутлоадер EFISTUB-ядро без efibootmgr?

не нужно ничего добавлять, UEFI по-дефолту ищет загрузочные файлы в EFI\Boot. В биосе просто UEFI-загрузку ставишь и достаточно.

l-_-l
()
Ответ на: комментарий от Andrew

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

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

Ай не рассказывай туфтовые сказки, все UEFI-биосы работают по-одинаковому в этом плане.

l-_-l
()
Ответ на: комментарий от l-_-l

У тебя как раз вендовая разметка.

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

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

Что это за туфта? У виндового уэфи дефолтный путь: EFI\Microsoft, как и у макоса: EFI\APPLE.

l-_-l
()
Ответ на: комментарий от l-_-l

Загрузчик в /boot{ia32,x64}.efi, он загружает то, что лежит в /microsoft/boot/ (там лежат несколько uefi приложений). Поздравляю, теперь ты знаешь немного больше.

anonymous
()
Ответ на: комментарий от l-_-l

А кто уефи придумал и продвинул, уж не микрософт ли? Я так понимаю ты считаешь нормой называть линуксовое ядро bootx64.efi, ну а что оно у тебя только 1 будет, так это мелочи, правда? Ну ок.

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

В таком случае уместно ли говорить о «виндовой разметке», если это стандартная разметка по спецификации? :)

называть линуксовое ядро bootx64.efi

учит нас Gentoo wiki, сорян приятель, я настраивал систему по вики своего дистра, понятия не имел, что это виндово.

l-_-l
()
Ответ на: комментарий от l-_-l

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

anonymous
()

Он ставит gentoo с ядром от RHEL 7. Вот это номер! А зачем?

iliyap ★★★★★
()
Ответ на: комментарий от l-_-l

попробовал все что вы написали... в итоге ничего - ничего на экран не выводится а стартует дефолтная система(винда у меня на другом жестком диске)... может я как-то не так ядро пересобрал: оно было собрано, но с описанными мной в топике проблемами... я сделал по-вашему(прописал в COMMAND_CMDLINE все что нужно) и сделал make -j5 и потом make modules_install... сборка прошла моментально(в отличие от первой сборки) и посему видимо я что-то сделал не так... как пересобрать ядро? нужно удалить старое и затем заново новое собрать и скопировать в /mnt/EFI/EFI/Boot? или как нужно

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

Какую-то херню он написал. Монтируй fat32 раздел в /boot/EFI, Boot etc. должно лежать в корне того раздела. Загружайся потом из биоса, там должна быть пометка про efi режим и диск с этим твоим ядром. 2 раз компиляция быстрая, потому что компилировались только файлы, которые затрагивают изменения в конфиге. Да и куда уж подробней, чем в хендбуке? Чтобы несмочь нужно очень постараться.

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

Ой, не, я гоню что-то. /EFI/Boot должно получится.

anonymous
()

елы-палы, у меня оказывается стоит bios legacy mode и uefi... в таком случае нужно устанавливать grub2 как в хэндбуке для установки на bios? или что-то изменить нужно

xperious ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.