Portál AbcLinuxu, 5. května 2025 09:12
spejbl efivars # efi-readvar No efivarfs filesystem is mountedPoradíte mi prosím?
(chroot) livecd / # gdisk /dev/sda GPT fdisk (gdisk) version 1.0.0 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): p Disk /dev/sda: 976773168 sectors, 465.8 GiB Logical sector size: 512 bytes Disk identifier (GUID): E8E89B7B-E6D4-4FC4-B7FE-1E03969B56C5 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 976773134 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 206847 100.0 MiB EF00 EFI system partition 2 206848 468991 128.0 MiB 0C01 Microsoft reserved ... 3 468992 262143999 124.8 GiB 0700 Basic data partition 4 262144000 263192575 512.0 MiB 8300 Linux filesystem 5 263192576 338690047 36.0 GiB 8200 Linux swap 6 338690048 342884351 2.0 GiB 8300 Linux filesystem 7 342884352 384827391 20.0 GiB 8300 Linux filesystem 8 384827392 409993215 12.0 GiB 8300 Linux filesystem 9 409993216 514850815 50.0 GiB 8300 Linux filesystem 10 514850816 965738495 215.0 GiB 8300 Linux filesystem 11 965738496 976773134 5.3 GiB 8300 Linux filesystem
proc mas ten disk tak silene deleny ? a k cemu swap o velikosti 36G?
Z toho ale není poznat, jestli firmware Linux zavedl teprve pak se pokazil přechod z EUFI preboot prostředí do operačního systému nebo jestli firmware Linux vůbec nezavedl.
Já mám takto nastavené jádro:
$ zgrep EFI /proc/config.gz 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_RUNTIME_WRAPPERS=y # CONFIG_CACHEFILES is not set CONFIG_EFIVAR_FS=m CONFIG_EARLY_PRINTK_EFI=y
A na ladění zavádění jádra bych doporučil do boot oddílu nainstalovat EUFI shell, nechat firmware spustit ten a teprve z UEFI shellu zkusit zavést Linux samotný. (Případně použít shell dodávaný s firmwarem, pokud je nějaký nebo použitelný.) Až se ti to podaří, tak kýžené umístění jádra a jeho parametry zapiš do bootovací UEFI proměnné pomocí efibootmgr.
Tak, EFIVAR_FS a EFI_VARS jsou dve rozdilne veci. Jeden fs je starsi, druhy novejsi a kazdy tool (efibootmgr vs. efitools) podporuje neco jineho.
Koukam, ze u sebe mam CONFIG_EFIVAR_FS=n a CONFIG_EFI_VARS=y, pricemz efibootmgr funguje bez problemu a efi-readvar vubec, se stejnou hlaskou jako tazatel. Je to zrejme jen otazka portace toolu na nove veci, tohle uz je na lehce starsim systemu a ta kombinace tehdy fungovala, dnes muze byt situace s novymi verzemi odlisna.
jak framebufer pro grub ? v grub2 funguje bez problemu ...¨
a btw. v handbooku je popsana instalace Gentoo s UEFI a dokonco je podporovana
efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi"
a nic se nezapíše. Důvod je ten, že nejsou zavedené jaderné moduly.
jadro zkompilovat jako efi binarka a spustit primo z efi , ale rozhodne bych radeji pouzil grub2 nebo gummi,
sys-boot/efibootmgr
. Grub2 není vůbec instalovaný. Je ale pravda, že na něm mám jen Gentoo.
Ano, presne tak, dokonce neni potreba ani chrootu a staci jen namountovat EFI partition, prip. vedet umisteni kernelu.
Grub potreba neni, taky ho nemam a bootuju kernel stub primo. Na recovery mam UEFI shell desky, da se tam pustit jakakoliv EFI binarka na jakemkoliv disku a jeste k ni pridat parametry dle potreby.
Ano, patláte.
aby se zavedli jaderné moduly a vytvořil se i ESP filesystem je potřeba, aby se opravdu nabootovalo z UEFI
Tabulku rozdělení disku a souborový systém můžete vytvářet v čemkoliv. Na to přítomnost UEFI nemá vliv.
Moduly, mám pocit, je možné zavést také i v režimu CMS, ale samozřejmě nebudou moci kontaktovat UEFI firmware, takže nebudou fungovat a kvůli tomu efibootmgr, který nedělá nic jiného, než že upravuje UEFI proměnné, odmítne pracovat.
Že je nabootováno v UEFI (a zároveň jádro jej podporuje) poznáte (po načtení modulů) tak, že v hlášeních jádra (dmesg) je text o nalezených datových strukturách UEFI:
efi: EFI v32.31 by American Megatrends efi: ACPI=0x8d5a7000 ACPI 2.0=0x8d5a7000 SMBIOS=0x8e59d418 efi: mem00: [Runtime Data |RUN| | | | |WB|WT|WC|UC] range=[0x0000000000000000-0x0000000000001000) (0MB) [...] EFI Variables Facility v0.08 2004-May-17
Takže pokud chcete upravovat proměnné, musíte tak činit ze systému, který běží v režimu UEFI. Nakonec ještě záleží na verzi efibootmgr, protože se tam měnil způsob, jak přistupuje k proměnným. Minimálně je nutný připojený sysfs do /sys a podle verze ještě efivarfs do /sys/firmware/efi/efivars.
Někde jste psal, že už se vám podařilo s UEFI nabootovat, tak jsem předpokládal, že tohle umíte.
Ještě otázka, je jestli mám mít 2 EFI partitiony nebo se kernel může nainstalovat na stejnou partitionu jako Win EFI.
Ne, stačí jedna. Popravdě v GPT můžete (asi podle UEFI specifikace) mít nejvýše jeden ESP oddíl. Všechna jádra a initramdisky (a zavaděče či jiné UEFI aplikace) se dávají tam. Bývá zvykem je ukládat do podadresáře specifického pro distribuci v adresáři EFI (například když ESP oddíl mám v Linuxu připojen do /boot, pak jádra dávám do /boot/EFI/gentoo), ale není to nutné.
Tady je dobré připomenout, že kdybyste chtěl vyzkoušet UEFI shell, tak existuje pro něj standardní umístění EFI/BOOT/BOOTX64.EFI (předpokládám platformu amd64). Pro takto pojmenovanou UEFI aplikace nemusíte mít ani záznam v proměnných, protože to je výchozí cesta, která se zkouší na každém připojeném zařízení, když všechna jádra z ostatních proměnných selžou.
Sice jsem nenašel instalčky rEFInd pro Win, ale to snad není třeba, protože pokud budu potřebovat opravit UEFI, uprvavím ho z Linuxu.
Je třeba vůvec Grub?
Ani jedno není třeba, pokud vypnete secure boot (nebo si jádro podepíšete a certifikát nainstalujete do úložiště důvěryhodných autorit UEFI). Jak jsou na tom ale Windows, netuším. Linux, pokud si jej přeložíte s volbou CONFIG_EFI_STUB, Grub nepotřebuje.
Nakonec (raději napřed) se ujistěte, že ve firmwaru máte nastavný režim UEFI. Nikoliv CMS. Některé implementace jsou dost matoucí a samy (po nějaké chybě či změně bootovacího média) přepínají do CMS.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.