Portál AbcLinuxu, 5. listopadu 2025 04:44
Zároveň je to má první mašina s UEFI, takže zde popíšu svůj zápas s ním, pro případ, že se to někomu bude hodit. Myslím, že řada laptopů této generace se chová podobně nebo stejně. Pokud to, co tu píšu, už všichni víte, tak se omlouvám.
Laptop se prodává s předinstalovanými Windows 8, která se snaží uživatele nikam jinam nepustit: po spuštění ihned najedou, stisk vypínacího tlačítka je pouze zahibernuje, systém bootuje vždy z vnitřního disku, a pokud se něco podělá, při restartu se bez ptaní spustí automatická obnova, zkrátka Malý Měkký udělal všechno pro to, aby měl uživatel pocit, že jejich systém je neoddělitelnou součástí laptopu. Ale zbavit se jich přece jen dá.
Mé poznatky:
EFI/BOOT/BOOTx64.EFI; všechno ostatní jsou pomocné soubory (několik adresářů a souborů je šalebně pojmenovaných, třeba EFI/Windows/Boot - firmware si jich nevšímá, nevím, jestli tam jsou pro zmatení nepřítele nebo co.)Pro účely instalace se hodí mít USB disk bootovatelný z EFI. Ten lze vyrobit takto:
mkfs.vfat -F32).EFI/BOOT/BOOTx64.efi (velikost písmen není podstatná, je to FAT).
Pro ladění se mi velmi hodil EFI Shell. Podobá se DOSu, takže je to dost hnus, ale umožňuje se pohybovat po filesystému, spouštět EFI aplikace a nastavovat různé věci. Lze ho stáhnout jako součást vývojového kitu pro EFI (soubor Edk 1.06.zip). Předkompilovaná binárka shellu je v Edk/Other/Maintained/Application/UefiShell/bin/x64/Shell_Full.efi a nepotřebuje ke svému běhu žádné další soubory - stačí jen nakopírovat na USB disk jako EFI/BOOT/BOOTx64.efi a mělo by to fungovat.
Od verze 3.6.4 (tuším) lze jádro přeložit tak, že funguje současně i jako EFI binárka, kterou lze přímo spustit třeba v EFI Shellu. V konfiguraci jádra je třeba zapnout volbu CONFIG_EFI_STUB. V nejjednodušším případě stačí výsledný soubor vmlinuz zkopírovat do EFI oddílu (opět pod jménem EFI/BOOT/BOOTx64.efi) a jádro při zapnutí ihned nabootuje stejně jako předtím Windows.
Protože takto spuštěné jádro nemá odkud načíst příkazovou řádku (zejména argument root=...), musí se řádka přímo zabudovat do jádra - přinejmenším argument root=/dev/sd... (volba CONFIG_CMDLINE_BOOL=y a CONFIG_CMDLINE=řetězec). Poznámka: Jádro verze 3.7 už umí načíst příkazovou řádku ze souboru, takže tam tento taneček odpadá.
Jako "opravdový" bootloader je možné použít elilo nebo GRUB2 (prý existuje i patchovaný GRUB 1, který umí EFI).
Elilo se chová mnohem lépe než LILO; instaluje se jednoduše zkopírováním binárky na bootovací disk (opět třeba přejmenovat na BOOTx64.efi), k němu je třeba přiložit textovou konfiguraci elilo.conf a soubory jádra (vmlinuz a případně initrd). To je vše. Elilo umí přepínat při startu mezi více jádry, ale neumí chainload, takže Windows nejde takto spustit.
Příklad elilo.conf (obšlehnutý odtud):
prompt
timeout=50
default=2639
#chooser=textmenu
image=vmlinuz-2.6.38-8-generic
label=linux
initrd=initrd.img-2.6.38-8-generic
read-only
root=/dev/sda4
append=""
image=bzImage-2.6.39
label=2639
initrd=initrd.img-2.6.39
read-only
root=/dev/sda4
append="reboot=a,w"
Dodatek: Díky Tomášovi Chvátalovi (scarabeus) za rady, jak se dostat za bootloader; bez něj bych to dělal ještě měsíc a hrozně bych se u toho nas...
Tiskni
Sdílej:
.
předinstalovanými Windows 8, která se snaží uživatele nikam jinam nepustitMS dělá všechno proto, aby byl prošetřován EU za bundlování? Zajímavé.
Hádám, že v tomto případě (laptop poměrně značně drahý
) jsou relativně zanedbatelnou položkou.
(nehledě na to, že dneska by to mělo jít In Circuit, nebo patice).
Implementace UEFI jsou ve skutečnosti asi třiHmm aneb pro lepší kompatibilitu všechno
.
.
Takže takové začarované kolečko.
osobně tipuju, že do Vánoc to určitě někdo stihne.Nerovná se to vlastně cracknutí UEFI ochrany pro ARM?
.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.