Portál AbcLinuxu, 5. června 2024 06:32

UEFI nabootuje kernel bez GRUBu/LILO

31.3.2012 14:28 | Přečteno: 3216× | Gentoo | Výběrový blog

Většina nových systému (SandyBridge) již nemá standardní BIOS, ale je vybavena UEFI. Pro mne první setkání s UEFI nastalo s novým služebním notebookem Dell E6420 s SSD diskem. Protože se neobejdu bez Windows 7 dualbootu, tak jsem řešil jak optimálně rozdělit disk s ohledem na SSD erase bloky a použité filesystémy. První rozhodnutím bylo použít GPT tabulku, protože GPT a gdisk, řeší zarovnání oddílů a taky jsem chtěl zkusit něco nového. Z toho vyplyne omezení, které přinášejí Windows 7. Ty umějí pracovat s GPT tabulkou pouze v 64-bitové verzi a jenom tehdy pokud nabootovali přes UEFI. Takže výsledek: UEFI - GPT - GRUB2. I když dnes už ani ten GRUB není skoro potřeba, jak se ukáže za chvíli. UEFI se vlastně chová jako jednoduchý boot-manažer. Každý nainstalovaný systém si do UEFI přidá vlastní boot-loader jako samostatnou UEFI aplikaci. Víc se lze dočíst třeba zde: Gentoo Wiki.

S verzí jádra 3.3 se objevila zajímavá funkcionalita jmenující se EFI stub. Ta dokáže přeložit samotné jádro jako UEFI aplikaci, takže vůbec není potřeba GRUB2 nebo jiný boot-loader. Pro výběr systému, prioritu, boot order atd, lze použít přímo možností UEFI. Z Linuxu lze konfigurovat UEFI pomocí příkazu efibootmgr. Klíčové volby v konfiguraci jádra jsou tyto.
EFI
EFI_STUB            # umožní bzImage nahrát jako UEFI aplikací
RELOCATABLE
EFI_PARTITION
EFI_VARS
Jádro se zaregistruje do UEFI příkazem:
# efibootmgr -c -L linux-3.3.0-gentoo --load "\\EFI\\gentoo\\bzimage.efi"
kde je udaná cesta na UEFI oddílu. Parametry jádru lze předat přes UEFI, nebo je zakompilovat do jádra natvrdo CONFIG_CMDLINE. Teď by mne ještě zajímalo, zda takto nabootované jádro startuje čistě do 64-bit režimu, nebo jestli se stále provadí lagacy x86 start s reálným režimem atd.? Zda je to vůbec možné na x86 železe?        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

31.3.2012 14:41 Mrkva | skóre: 22 | blog: urandom
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Zda je to vůbec možné na x86 železe?
Jestli najdeš něco co je x86 only a podporuje UEFI tak to můžeš zkusit :)
Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
31.3.2012 14:50 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Myslím samozřejmě 64 bitové systémy.
31.3.2012 15:18 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Ako potom vyzerá dual boot?
31.3.2012 17:37 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
UEFI na to nabízí boot menu (jako u starého BIOSU - výběr CD, USB, HDD0, HDD1, NET), tak tady jsou na výběr ty "UEFI aplikace" a případné mechaniky atd. U mne se to menu dá vyvolat přes F12 nebo nastavit, že se má zobrazit při každém bootu.
pavlix avatar 31.3.2012 16:19 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Proč mi EFI připadá jako kus windowsů strčený do biosu?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
kotyz avatar 31.3.2012 17:20 kotyz | skóre: 25 | blog: kotyzblog | Plzeň
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Žeby to bylo přesně ono? ;-)
Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
31.3.2012 17:38 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
No je to takový moloch. Můj Dell tam má ještě přilepený Intel Management Engine alias Intel vPro a to je také taková patlanice.
31.3.2012 19:30 heh
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
+1 :-D
31.3.2012 18:18 cynan
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Diky za info, jsem zas chytrejsi.
31.3.2012 19:06 sasula
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
To je opravdu zajímavý blog. Jaký to ale má přínos? Bootuje to pak rychleji?
31.3.2012 19:27 uefi
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Podle odezvy v diskuzích na netu je boot až o 3 sec rychlejší. Odměnou je člověku spíše nádherná grafika. Prostě vyšší rozlišení (podpora myší byla už dávno myslím u AMI-BIOSu, ale rozlišení bylo tehdy mizerné).

Proti uefi hovoří problémy s rozjetím některých distribucí. Matlal sem se s tím u netbooku a docela sem se nasral, protože moje oblíbená distribuce nechtěla vůbec nastartovat. Musel sem tam nechat widle, stejně byly v ceně.

Taky sou problémy s některými grafickými kartami, místo té krásné grafiky vidíte s některou starší gk jenom černou obrazovku.

Jinak dík autorovi blogpostu, že o této problematice vůbec začal někdo psát. Člověk aby se bál pořídit kvůli tomu uefi novější stroj.

31.3.2012 19:39 sasula
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Další (teoretický) přínos může být v lepší (rozumnější*) inicializaci hardwaru, viz článek http://www.rodsbooks.com/efi-bootloaders/efistub.html:
Enabling the kernel to boot directly from the EFI can theoretically improve the kernel's ability to initialize the computer's hardware in a sane way. Whether this will translate into improvements in practice is another matter. This method of booting is new enough that I haven't seen many comments about it.
*Co to přesně znamená, ale nevím.
vain avatar 1.4.2012 11:39 vain | skóre: 16
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Matlal sem se s tím u netbooku a docela sem se nasral, protože moje oblíbená distribuce nechtěla vůbec nastartovat. Musel sem tam nechat widle, stejně byly v ceně.
No to mě teď všichni strašíte, nám v pátek dorazily do práce nové PC s Core i7 apod (ještě jsem to nerozbalil, ale je mi jasné, že s UEFI) a opravdu bych nerad zůstal na Windows, které k těm PC byly přikoupeny (nechápejte to zle, nic proti Windows, ale zvyk je železná košile a nechci si zvykat na Windows a nemají pro mne žádnou přidanou hodnotu - nutnost antiviráku je naopak ubraná hodnota z výkonu).
If the only choice you've got is to do the wrong thing, then it's not really the wrong thing, it's more like fate.
1.4.2012 13:42 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Neměl by to být problém. Moje UEFI umožňuje i Legacy boot, takže i starší distribuční media lze nabootovat. Jedině je pak potřeba udělat si vlastní jádro s podporou UEFI. Na druhou stranu je fakt, že to není řešení "zasuň DVD a klikni Next". Na Gentoo jsem to po trošce elaborování rozchodil.

Je to spíš jako s IPv6. Po třiceti letech je tu něco jiného, co funguje jinak. No a je potřeba se naučit s tím pracovat.
vain avatar 1.4.2012 14:28 vain | skóre: 16
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
No já věřím že to nějak půjde, dokud jsem ale nečetl tento blog a komentáře, myslel jsem si, že to bude právě metodou "zasuň DVD a klikni Next".
If the only choice you've got is to do the wrong thing, then it's not really the wrong thing, it's more like fate.
pavlix avatar 1.4.2012 14:34 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Srovnání s IPv6 mě docela pobavilo.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
1.4.2012 22:21 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Tak to je dobře :)
31.3.2012 19:28 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Je to rychlejší o načtení Grubu a případný timeout.
31.3.2012 19:44 sasula
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Na rychlosti bootování hodně zapracoval Microsoft ve Windows 8, viz video Windows 8 "Fast Boot" on laptops. Rychlý start bude jedním z hlavních předpokladů pro úspěch Windowsích tabletů a hybridních notebooků.
31.3.2012 19:49 frdrx | skóre: 29 | blog: frdrx
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
U mě by to bootovat rychleji mohlo. Než deska načte grub trvá dýl než následný boot i s přihlášením.
Patička mi slouží k tomu, abych si lépe poznal svoje příspěvky.
1.4.2012 21:29 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Mám Asus P8H67-M PRO(ktorá vraj podporuje EFI), v jadre mám:
$ zgrep EFI /proc/config.gz 
CONFIG_EFI_PARTITION=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_FB_EFI=y
CONFIG_EFI_VARS=y

A počas boot-u dostanem

$ dmesg |grep EFI
EFI Variables Facility v0.08 2004-May-17

Ale /sys/firmware/ neobsahuje adresár efi. A podľa manuálovej stránky by mi teda efibootmgr nezafungoval. Nejaký nápad?
2.4.2012 11:20 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
A jádro, pod kterým běžíš, nabootovalo přes UEFI? Pokud ne, tak neexistují EFI vars a adresář /sys/firmware/efi.
2.4.2012 12:21 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Podmienkou bootovania cez UEFI je zaregistrovanie linuxového jadra pomocou efibootmgr. A efibootmgr k svojej práci potrebuje /sys/firmware/efi. To vyzerá začarovano rekurzívne ;-)
grubber avatar 3.4.2012 11:49 grubber | skóre: 6 | blog: grubber | Břeclav / Brno
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
# modprobe efivars
grubber avatar 3.4.2012 16:23 grubber | skóre: 6 | blog: grubber | Břeclav / Brno
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Aha, modul už máš natažený. Asi teda budeš muset použít GRUB2 pro EFI boot.
2.4.2012 10:37 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Také mám DELL 6420 a UEFI jsem se snažil zrovoznit, což se mi na konec po dařilo, zatím na fedoře přes grub.efi, ale narazil jsem na problém, že musí být soubor který má EFI načíst na FAT disku, jinak mi to nešlapalo, U tebe to funguje na nějakém EXT[234] disku?

Díky za info.
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
2.4.2012 11:18 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Ne, EFI partition musí být FAT32. S jinou to nejede, to je standard.
Model: ATA SAMSUNG SSD PM83 (scsi)
Disk /dev/sda: 256GB
Sector size (logical/physical): 512B/512B
Tabulka oddílů: gpt

Číslo  Začátek  Konec   Velikost  Systém souborů  Název             Přepínače
 1     1049kB   269MB   268MB     fat32           EFI System        boot
 2     269MB    374MB   105MB     ext2            Linux filesystem
 3     374MB    70,9GB  70,5GB    ntfs
 4     70,9GB   88,0GB  17,2GB    ext4            Linux filesystem
 5     88,0GB   256GB   168GB     ext4            Linux filesystem
2.4.2012 11:42 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Tak to je škoda, protože jsem ve Fedoře nepřišel na způsob, jak používat jeden grub.conf mám teď 2 jeden v /boot/efi/EFI/redhat/grub.conf a jeden v /boot/grub/grub.conf, problém je v aktualizaci kernelu, kdy musím ručně přidat záznam do configu pro efi... OT: koukám, že už máš novou generaci SSD, já mám ještě pomalejší PM81 :-/
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
2.4.2012 12:10 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
OT: Jojo, je to SATA 3G. Btw. používáš dock? Nedaří se mi vylámat nějakou udev událost, když notes cvaknu do docku.
2.4.2012 12:14 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Dock používám, udev rule jsem k němu ale zatím nepotřeboval, ale můžu se zkusit na to kouknout.
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
2.4.2012 12:45 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Mám pocit, že mi na to chybí něco v jádře, ale nemůžu přijít na to co.
14.6.2012 17:34 frr | skóre: 34
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
PCI hotplug?
[:wq]
18.7.2012 00:08 SAM: | skóre: 23 | blog: marsark_linux
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Ten tam mám.
3.4.2012 16:57 Sten
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Teď by mne ještě zajímalo, zda takto nabootované jádro startuje čistě do 64-bit režimu, nebo jestli se stále provadí lagacy x86 start s reálným režimem atd.? Zda je to vůbec možné na x86 železe?
Jádro nebootuje v reálném režimu už dost dlouho a proto u BIOSu potřebuje zavaděč. Nicméně 64bitové jádro se zavaděčem bootuje 32bitově a v UEFI by mohlo bootovat už 64bitově, ale jestli to dělá, to nevím.

Jinak druhý důvod zavedení UEFI (hned po grafickém bootu :-) ) byl právě ten, aby se nemuselo bootovat v reálném režimu.
22.10.2018 11:29 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: UEFI nabootuje kernel bez GRUBu/LILO
Odpovědět | Sbalit | Link | Blokovat | Admin
Ano, protože UEFI je defakto zavaděč, podobně jako GRUB.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.