EFI bootolható USB-Linux

Fórumok

Van egy hordozható Linux image-em, amit ha kiírok USB-re, akkor fel tudom bootolni a nem EFI-s gépeken, de most egy EFI-s gépen kellene.Odáig eljutottam a manualok meg a kugli alapján, hogy létrehoztam egy FAT16 partíciót, azon belül pedig egy efi/boot/ könyvtárstruktúrát. Aztán csináltam egy image-et:

grub-mkimage -o bootia32.efi -p /efi/boot -O i386-efi fat iso9660 part_gpt part_msdos normal boot linux configfile loopback chain efifwsetup efi_gop efi_uga ls search search_label search_fs_uuid search_fs_file gfxterm gfxterm_background gfxterm_menu test all_video loadenv exfat ext2 ntfs btrfs hfsplus udf

Majd a kapott fájlt bemásoltam az előbb létrehozott efi/boot/ könyvtárba. Eztán melléraktam még egy grub.cfg fájlt is, egyelőre egy minimális próbatartalommal:

set timeout=5

menuentry 'Setup firmware'
{
fwsetup
}

Ha felhozom a gép boot menüjét, akkor megjelenik az USB kulcs és ha kiválasztom, akkor be is jön a GRUB, de csak a prompt, nem a menü.

Van valakinek valami ötlete, hogy mit csinálok rosszul?

Hozzászólások

A /boot/efi strukúrába kell beilleszteni, de nem kell azon a partíción létrehozni.
https://wiki.mageia.org/mw-en/images/0/0c/EFI-solo6_1.png

Ha félreértettem, akkor bocsánat! A kernelben engedélyezve van?
KERNEL Enable support for GPT
-*- Enable the block layer --->
Partition Types --->
[*] Advanced partition selection
[*] EFI GUID Partition support
ISO8859-1 codepage must be enabled too, in order to mount the EFI partition:

KERNEL Enable ISO8859-1 codepage
-*- File Systems --->
Native Language support --->
[*] NLS ISO 8859-1 (Latin 1; Western European Languages)

By

dzsolt

Van linked a kész image-hez? (virtualizálva futtatni esetleg vagy csak belenézni az image-be hátha a /usr/src/linux alatt ott a .config?! Nem ismerek minden rendszert, de a legtöbben ez benne szokott lenni.) illetve ha amúgy nem EFI-s gépen működik akkor ott bootolj be és:

cat /proc/config.gz | gunzip |grep EFI

By

dzsolt

Így illeszd be a fájlrendszeredbe (már ha sda meg ha az első partíció az EFI):

mount /dev/sda1 /boot/efi

A grub fog rá másolni ilyesmit, amikor telepíti a boot szekciót:

EFI/linux/valami.cer
grubx64.efi

kb ennyi lesz az EFI partíción összesen, ha egy rendszered van.

Tehát a rendszered gyökerében van a /boot/efi, az EFI/linux-ot a grub csinálja, nem te. Viszont ha mbr-el van partícionálva a kulcsod, akkor hogy fog EFI indulni róla?
Nekem van egy multibootos mentő stickem efi-re, de az gpt és nem msdos, mert anélkül nem megy az efi boot. Lehet, hogy azzal kellene kezdened.

By

dzsolt

Ja, tud ha tud legacy bootot, de a tisztán efi-sek nem. Ez nem bug. Te írtad korábban, hogy nem tud legacy-t, hát akkor helyben vagyunk, próbáld gpt-n. Persze tévedhetek...

(most nézem, hogy eltévesztettem a szálat, bocsánat, nem válaszolok többet telefonról :) )
By

dzsolt

Nagyon szívesen, örülök neki!!! Annó (4 éve kb) sokat szívtam vele, mire sikerült az első gpt-s bootom hiba nélkül! A világ összes boot menedzserét kipróbáltam mire sikerült :) Azóta pár sikeres W10 Rolloutot (pár ezer gép) végigcsináltam és ott mindenféle biosokon volt alkalmam gyakorolni. Néha bugnak tűnhet pár dolog, de ha valami rendszeresen visszatérő, akkor a mintát követve kiderül mi a bibi.
By

dzsolt

Arch linux alatt nekem működik:
- A pendrive formázása GPT-vel, +2 partíció felvétele, egy a boot-nak (ef02 kódú) és egy az EFI-nek (ef00 kódú).
- Partíciók felcsatolása, az EFI partíció a /boot helyére
- Rendszer felmásolása
- Majd a grub telepítése:
grub-install --target=x86_64-efi --efi-directory=/boot \
--boot-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

--
Dell Latitude 5480, Arch Linux & Xfce