efibootmgr
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.
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.
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!
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
- REFInd — a boot manager for UEFI platforms.
- EFI stub — provides instructions on configuring and installing kernels in the EFI System Partition (ESP) of a computer running in EFI mode
- Efivarfs — a filesystem in the Linux kernel that enables users to create, delete, and modify (U)EFI variables
- Második alternatíva: efibootmgr a Gentoo kézikönyvben
Hivatkozások
- ↑ At least for Dell EFI firmware, a workaround was implemented in kernel 5.10: https://lkml.org/lkml/2020/9/18/228