efibootmgr

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Efibootmgr and the translation is 100% complete.

Az efibootmgr egy eszköz az UEFI rendszerindító bejegyzések kezelésére.

Fontos tisztázni, hogy ez az eszköz nem rendszerbetöltő (nem bootloader). Ez egy olyan eszköz, amely együttműködik a rendszer EFI firmware-ével, amely önmagában rendszerindítás-kezelőként (boot manager -ként) működik. Az efibootmgr segítségével rendszerindító bejegyzéseket lehet létrehozni, átrendezni és eltávolítani.

Telepítés

Kernel

A CONFIG_EFIVAR_FS támogatást engedélyezni kell.

Note
Az efivarfs nem használható az EFI futásidejű szolgáltatásai nélkül, amelyeket (ha alapértelmezés szerint letiltottak, azaz CONFIG_EFI_DISABLE_RUNTIME=y értékre van állítva) az efi=runtime kernel parancssori paraméterrel is engedélyezni lehet.

Emerge

A sys-boot/efibootmgr programcsomagnak nincs USE jelölőzászlója. Egyszerűen csak telepíteni kell a szokásos módon:

root #emerge --ask sys-boot/efibootmgr

Konfiguráció

EFI változók

Az efibootmgr sikeres használatához az EFI-változókat tartalmazó fájlrendszernek elérhetőnek kell lennie. Ez a feltétel megköveteli, hogy a rendszer EFI módban legyen indítva (és nem a firmware MBR módján keresztül), mert különben maguk az EFI változók nem lesznek elérhetőek. Ha a rendszer MBR módban van, akkor mindenképp indítsa újra számítógépet, és tegye meg a szükséges lépéseket annak érdekében, hogy a rendszer firmware-je EFI módban induljon el. Ez általában a firmware-beállítások egy beállításának megváltoztatását vagy egy EFI rendszerindítási bejegyzés kiválasztását jelenti a rendszerindítási menüben.

Amikor a rendszer EFI módban van, futtassa a következő parancsot, hogy ellenőrizze a csatolt efivarfs meglétét:

root #mount | grep efivars
efivarfs on /sys/firmware/efi/efivars type efivarfs (ro,relatime)

Csak olvasható módon ( read-only (ro) ) van felcsatolva a sysfs init szkripten keresztül, ezért manuálisan kell újra felcsatolni írható-olvasható módban ( read-write (rw) ) a következő parancs kiadásával:

root #mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars

Előzfeltételek

Ha nem létezik EFI rendszerpartíció (ESP), akkor létre kell hozni egyet. Tekintse meg a Rendszerpartíció cikket.

Használat

Rendszerindító bejegyzések listázása

Az efibootmgr régebbi verziójának használatakor a --verbose vagy -v paraméter szükséges:

root #efibootmgr
BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0003,0003,0002,0000,0004
Boot0000* CD/DVD Drive  BIOS(3,0,00)
Boot0001* Hard Drive    BIOS(2,0,00)
Boot0002* Gentoo        HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\boot\bootx64.efi)
Boot0003* Hard Drive    BIOS(2,0,00)P0: ST1500DM003-9YN16G

Rendszerindító bejegyzés készítése

EFI rendszerindító bejegyzés létrehozásához néhány argumentumot át kell adni az efibootmgr parancsnak:

  • --create vagy -c - Az új bejegyzés létrehozásához.
  • --part vagy -p - Ezt követi a partíció száma, amelyen a EFI rendszerpartíció található.
  • --disk vagy -d - Ezt követi a lemez, amelyen az EFI rendszerpartíció található.
  • --label vagy -L - Ezt követi a rendszerindító bejegyzésként használandó címke.
  • --loader vagy -l - Ezt követi az EFI képfájl elérési útja a rendszerindításhoz.
Important
A rendszerbetöltéshez használt EFI képfájl útvonalának a meghatározására a \ (visszafelé perjel) karaktert kell használni. Nem szabad a / (előre perjel) karaktert használni. Erre figyeljen nagyon oda!
Important
Ezen túlmenően, ha az ESP-t már egy másik operációs rendszer hozta létre (például a Winhulladék), akkor előfordulhat, hogy eltérően hívják a /efi/EFI elnevezéstől. Ha az ESP-t valóban egy másik operációs rendszer hozta létre, akkor kezdje el az EFI Boot bejegyzést ezzel a könyvtárnévvel, amely közvetlenül az /efi után következik.

Az alábbiakban néhány példa látható arra, hogyan lehet UEFI bejegyzést létrehozni. Ha ez a mappastruktúra:

root #tree /efi/ -L 3
/efi/
└── EFI
    ├── Grub
    │   └── grubx64.efi
    └── Gentoo
        └── bzImage.efi

akkor a betöltő útvonalak a következők lesznek:

root #efibootmgr -c -L "Grub" -l '\EFI\Grub\grubx64.efi'
root #efibootmgr -c -L "Gentoo" -l '\EFI\Gentoo\bzImage.efi'

Például:

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l '\efi\boot\bootx64.efi'

Lehetőség van a kernel parancssorában paraméterek hozzáadására is. (Előfordulhat, hogy nincs támogatás minden UEFI implementációban[1] erre a műveletre):

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l '\efi\boot\bootx64.efi' -u 'root=/dev/sda3 initrd=\efi\boot\initramfs.img quiet'

Opcionálisan további kernelek is telepíthetőek és ismertté tehetőek az UEFI firmware számára. Ez különösen akkor hasznos, ha több rendszermagot (kernelt) szeretne tesztelni, vagy kettős rendszerindítást szeretne másik operációs rendszerrel elérni. Ezek a rendszerindítás alkalmával a megjelentő menüben jelennek meg, általában a billentyűzet gyorsbillentyűjének megfelelő időben történő megnyomása után a rendszer inicializálása során. A legutóbb hozzáadott bejegyzés mindig a legmagasabb rendszerindítási prioritást kapja, így ez lesz az alapértelmezett. Ha a gyorsbillentyű-kombináció ismeretlen, akkor keresse meg a számítógép gyártójának a hivatalos dokumentációjában. Ezeket az információkat a cikk írásának és fordításának pillanatában (a társadalmi elbutítás ezen szakaszában) még nem nehéz megtalálni, mivel egyelőre a gyártók közzéteszik azokat.

Egy indítóbejegyzés törlése

Egy bejegyzés törlése előtt először derítse ki, mi a bejegyzés azonosítója.

A fent látható Gentoo bejegyzés törléséhez (amelynek Boot0002 az azonosítója), kérje meg az efibootmgr-t, hogy törölje a 2-es azonosítójú bejegyzést, a --bootnum vagy -b argumentumok átadásával az azonosítóval, és a --delete-bootnum vagy -B argumentumokkal a bejegyzés törléséhez:

root #efibootmgr -b 2 -B

Cserélhető adathordozó

A cserélhető adathordozón lévő EFI rendszerbetöltők nincsenek rendszerindító bejegyzésként konfigurálva, így az efibootmgr nem szükséges. Tekintse meg a cserélhető adathordozó boot bejegyzései az ESP-n leírást a részletekért.

Eltávolítás

Eltávolítás az emerge parancs segítségével

root #emerge --ask --depclean --verbose sys-boot/efibootmgr

További olvasnivaló a témában

Hivatkozások

  1. At least for Dell EFI firmware, a workaround was implemented in kernel 5.10: https://lkml.org/lkml/2020/9/18/228