EFI rendszerpartíció

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page EFI System Partition and the translation is 92% complete.
Outdated translations are marked like this.
Resources

Az EFI rendszerpartíció ( EFI system partition (ESP) ) tulajdonképpen egy közönséges FAT fájlrendszertípusra megformázott partíció. Az elsődleges EFI rendszerbetöltő(ke)t (boot loader programkódokat), valamint, ezeknek a rendszerbetöltőknek a konfigurációs fájljait tartalmazza a számítógépre telepített operációs rendszerek számára.

Kernel

Engedélyezni kell a speciális partícióválasztást (CONFIG_PARTITION_ADVANCED) és az EFI GUID partíciók támogatását (CONFIG_EFI_PARTITION):

KERNEL A GPT támogatásának a bekapcsolása
-*- Enable the block layer --->
   Partition Types --->
      [*] Advanced partition selection
      [*] EFI GUID Partition support

Az ISO8859-1 kódlapot is engedélyezni kell a FAT EFI partíció csatlakoztatásához:

KERNEL Az ISO8859-1 kódlap és a VFAT támogatásának a bekapcsolása
-*- File Systems --->
   DOS/FAT/EXFAT/NT Filesystems  --->
      <*> VFAT (Windows-95) fs support
      (437) Default codepage for FAT
      (iso8859-1) Default iocharset for FAT
   Native Language support --->
      [*] NLS ISO 8859-1  (Latin 1; Western European Languages)

Jellemzők

A létrehozáshoz szükséges utasításokért, kérjük, tekintse meg a Kézikönyvet.

A parted parancs (amely a sys-block/parted programcsomagban található) megmutatja a fájlrendszeren lévő boot, esp két jelzőt. (Fordítói megjegyzés: Ez a két jelző bekapcsolása nagyon fontos, ugyanis, ezek hiányában nem fog be bootolni a rendszerünk.):

root #parted /dev/sda print
Model: ATA SAMSUNG SSD SM84 (scsi)
Disk /dev/sda: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
 
Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  99.6MB  98.6MB  fat32        EFI System Partition          boot, esp

A gdisk parancs (sys-apps/gptfdisk programcsomagból) az EF00 partíciókóddal jeleníti meg a két jelző meglétét:

root #gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.1
 
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
 
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 500118192 sectors, 238.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 1B59C2C8-8795-4625-9718-4D636B005AC1
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 500118158
Partitions will be aligned on 2048-sector boundaries
Total free space is 2669 sectors (1.3 MiB)
 
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          194559   94.0 MiB    EF00  EFI System Partition

A partíció fájlrendszere az mkfs.fat parancs használatával hozható létre:

root #mkfs.fat -F 32 /dev/sda1

Mérethez kötődő megfontolások

A Gentoo kézikönyv azt javasolja, hogy 1 GiB nagyságú tárterületet rendeljen hozzá az ESP-hez, ami több mint elegendő minden rendszerbetöltő payload (például EFI stub kernelek vagy M$ Window$ rendszerbetöltő) számára.

Opcionális: Felcsatolási pont

An entry in /etc/fstab might be useful for manually mounting the ESP but is not needed for booting.

Optional: autofs

Nem ajánlott az ESP partíciót a /boot/efi/ könyvtárba felcsatolni, mint ahogyan azt hagyományosan tették régebben. A beágyazott setup megnehezíti a bevált gyakorlatú autofs-stílusú felcsatolások megvalósítását, mivel a belső autofs létrehozása kiváltja a külsőt. A VFAT fájlrendszerek adatintegritása és biztonsági jellemzői miatt a VFAT fájlrendszerek adatintegritása és biztonsági jellemzői miatt javasolt ezeknek a partícióknak az autofs-en keresztüli felcsatolása (és kibővítve a felcsatolatlan tartásuk, amikor csak lehetséges).

Ahol elérhető a rendszerbetöltő támogatás, ott használja a /boot könyvtárat az XBOOTLDR partícióhoz, és az /efi könyvtárat az ESP partícióhoz. Ha ez nem lehetséges, akkor egy monolithic ESP partíciót kell felcsatolni a /boot könyvtárba. Továbbra is az autofs-style felcsatolásokat kell használni.

A systemd esetében, ha a partíciók a Felderíthető partíciók specifikációja szerint vannak beállítva, akkor automatikusan fel tudja csatolni az aktuális rendszerindításhoz használt ESP partíciót a /boot vagy a /efi könyvtárba, hacsak nincs ott másik partíció felcsatolva [esetleg az /etc/fstab fájlon keresztül], vagy a felcsatolási pont könyvtára nem üres. Ha az ESP és az XBOOTLDR is létezik, akkor az /efi felcsatolási pont kerül felhasználásra.

A systemd esetén (ha nem használja a GPT auto generátort):

FILE /etc/fstabConfiguring the ESP mountpoint for systemd
UUID=56FE-81E0        /efi       vfat    defaults,noatime,uid=0,gid=0,umask=0077,x-systemd.automount,x-systemd.idle-timeout=600 0 2

Az OpenRC esetében használja az AutoFS parancsot az igény szerinti csatlakoztatáshoz:

root #emerge --ask net-fs/autofs

Állítson be egy közvetlen AutoFS felcsatolást az ESP partícióhoz.

FILE /etc/autofs/auto.masterConfiguring autofs to read the 'boot' file
/- /etc/autofs/auto.boot --timeout=600,sync,nodev

Mondja meg az AutoFS programnak, hogy figyelje a /boot és /efi elérési utakat, és csatolja fel őket az device-ről származó options-al.

FILE /etc/autofs/auto.bootConfiguring the ESP mountpoint
/boot    -fstype=vfat,uid=0,gid=0,umask=0077     UUID=AB12-CD34
/efi     -fstype=vfat,uid=0,gid=0,umask=0077     UUID=EF00-000A

Az AutoFS programnak futnia kell a felcsatolási pontok figyeléséhez:

root #rc-update add autofs default

Ha még újraindítás előtt használni szeretné az automatikus felcsatlakoztatót, akkor indítsa azt el manuálisan:

root #/etc/init.d/autofs start

Ezeket a partíciókat nem kell hozzáadni az /etc/fstab fájlhoz.

Szabványos elrendezés

Van egy szabványos elrendezése az ESP-nek. A szállítóknak és a forgalmazóknak a saját dolgaikat a gyártóspecifikus "saját" könyvtárakba kell elhelyezniük.

user $tree -L 3 /efi
 /efi
 └── EFI
     ├── BOOT
     │   └── BOOTX64.EFI
     ├── Gentoo
     │   ├── grubx64.efi
     │   ├── initramfs-x.y.z.img
     │   ├── kernel-x.y.z.efi
     │   ├── mmx64.efi
     │   └── shimx64.efi
     ├── Linux
     │   └── gentoo-x.y.z.efi
     ├── Microsoft
     │   ├── Boot
     │   └── Recovery
     ├── refind
     │   └── refind_x64.efi
     └── systemd
         └── systemd-bootx64.efi

Itt a Micro$oft részfát – és a rendszerindító részfát is[1] – az M$ Window$ 10 korábbi telepítése hozta létre. A Boot részfa a tartalék könyvtár. Ha az UEFI nem talál egyetlen gyártóspecifikus könyvtárat sem, akkor innen boot-ol. Egy multiboot környezetben megfelelően beállított gyártóspecifikus részfákkal a Boot részfa törölhető.

UEFI boot elemek

Az UEFI-vel rendelkező számítógépek rendszerindítási menüt biztosítanak az ESP rendszerbetöltői számára. Ez a rendszerindító menü a firmware függvénye, és alapértelmezés szerint nem jelenik meg. Sőt, nincs szabvány a rendszerindító menü eléréséhez, de a legáltalánosabb módja az, hogy lenyomva tartjuk (vagy folyamatosan nyomjuk) a billentyűt az UEFI firmware inicializálása során (szintén POST, bekapcsolási önteszt). A legtöbb UEFI firmware-gyártó megjeleníti a rendszerindító menüt, ha a csatlakoztatott billentyűzet valamelyik funkcióbillentyűjét megnyomják. A rendszerindító menü a firmware-beállításból ("BIOS-beállítás") is elérhető lehet, amely egy előre meghatározott billentyű megnyomásával is elérhető. Leggyakrabban Esc, Del, F1, F2, F10, F11 és F12, táblagépeken pedig a Hangerő fel/Le billentyűket használják a firmware beállításába való belépéshez vagy a rendszerindító menü megjelenítéséhez.[2] Kérjük, olvassa el a rendszer vagy az alaplap kézikönyvét a pontos gombjaiért és további részletekért.

A telepítőeszköz nemcsak a rendszerbetöltőt és más szükséges fájlokat kezeli az ESP-n, hanem egy "EFI rendszerindítási bejegyzés" hozzáadását is. Az NVRAM adattárolóban tárolt EFI rendszerindítási bejegyzések olyanok, mint a rendszerbetöltő regisztrációja a firmware-hez. Az EFI általában csak a rendszerindító bejegyzéssel rendelkező rendszerbetöltőket listázza ki a rendszerindító menüben, ezért nem elegendő csak egy rendszertöltőt vagy EFI végrehajtható fájlt másolni az ESP-re. A Linux rendszerbetöltők általában automatikusan hozzáadnak egy EFI rendszerindító bejegyzést egy (U)EFI rendszerbetöltő telepítésekor, mint pl. a GRUB a grub-install paranccsal.

Alternatív megoldásként az UEFI-kompatibilis operációs rendszerek gyakran tartalmaznak konfigurációs eszközt a rendszerindító elemek létrehozására, rendezésére és törlésére. Az ESP tartalma látható ezeknek az eszközöknek, és a rendszerindító elem létrehozása olyan, mintha egy adott kijelölésből kiválasztaná a médiát, majd böngészne az ESP-n és kiválasztaná az elemet, pl. bzImage-4.9.76-r1-gentoo.efi. Linux rendszereken az efibootmgr használható az UEFI rendszerindító (boot) elemek kezelésére.

Abban az esetben, ha egy rendszerbetöltő törlődik az ESP partícióról, az UEFI rendszerint törli az EFI rendszerindító bejegyzést is indításkor, és a rendszerbetöltő a továbbiakban nem lesz elérhető a rendszerindító menüből, még akkor sem, ha a fájlt utólag visszaállítják, azaz ugyanarra az elérési útvonalra visszamásolják az ESP partíción.

Egyetlen kivétel, ahol nincs szükség EFI rendszerindítási bejegyzésre, a cserélhető adathordozó rendszerindítási útvonala. A belső (rögzített) adathordozókon, például a belső HDD-n vagy SDD-n, a legtöbb UEFI rendszeren tartalék rendszerindítási útvonalként is használják.

Cserélhető adathordozó

A cserélhető adathordozón lévő EFI rendszerbetöltők nincsenek rendszerindító bejegyzésként konfigurálva, így nincs szükség olyan eszközökre, mint az efibootmgr. Ehelyett a számítógép firmware azonosítja a cserélhető rendszerindítási lehetőségeket úgy, hogy egy előre meghatározott fájlnevet keres, amely egyedi a használt rendszerarchitektúrára, egy előre meghatározott elérési úton.[3]

A legtöbb (U)EFI implementáció támogatja a cserélhető adathordozó rendszerindítási útvonalának használatát tartalékként a belső meghajtókon.[4] Annak ellenére, hogy ez ellentétes a specifikációkkal, a legtöbb rendszer tartalékként használja, és ez lehet az egyetlen használható rendszerbetöltő a hibás (U)EFI-vel rendelkező rendszereken. Egy adott rendszeren (azaz architektúrán) csak egy ilyen tartalék rendszerbetöltő lehetséges a szabványos rendszerindítási útvonal és a fájlnevek miatt.

Architektúra Rövidítés Fájlnév PE futtatható gép neve
x86 32-bit IA-32 \efi\boot\bootia32.efi 0x14c
x86-64 (amd64) x64 \efi\boot\bootx64.efi 0x8664
Itanium IA-64 \efi\boot\bootia64.efi 0x200
ARM 32-bit AArch32 \efi\boot\bootarm.efi 0x01c2
ARM 64-bit AArch64 \efi\boot\bootaa64.efi 0xAA64
RISC-V 32-bit \efi\boot\bootriscv32.efi 0x5032
RISC-V 64-bit \efi\boot\bootriscv64.efi 0x5064
RISC-V 128-bit \efi\boot\bootriscv128.efi 0x5128
Loongson 32-bit LoongArch32 \efi\boot\bootloongarch32.efi 0x6232
Loongson 64-bit LoongArch64 \efi\boot\bootloongarch64.efi 0x6264
Note
A cserélhető adathordozóról történő rendszerindításhoz a firmware-nek kompatibilis rendszertöltőket kell keresnie a támogatott eszközökön, amelyeket a firmware-beállításban lehet konfigurálni. A legtöbb firmware-hez hasonlóan az (U)EFI is biztosít egy gyorsbillentyűt a rendszerindítási kiválasztás megjelenítéséhez (a hivatalos nevén "BIOS Boot Specification" vagy BBS), ellenkező esetben az (U)EFI a beállított alapértelmezett rendszerindítási bejegyzést használja. A hibás (U)EFI azonban alapértelmezés szerint a cserélhető adathordozó rendszerindítási útvonalát használja még a belső meghajtókon is.

A cserélhető adathordozó rendszerindítási útvonalának használatához elegendő az EFI rendszerbetöltőt a kívánt elérési útra és fájlnévre másolni. Ha a firmware ezt a tartalékot használja, akkor ez a konfigurált rendszerindítási bejegyzések közötti választás lehetőségét is megszüntetheti, ami azt jelenti, hogy a rendszerindítási beállítások (az efibootmgr parancsnál felsoroltak szerint) az (U)EFI-n keresztül nem működnek. Bár minden EFI rendszerbetöltő használható tartalékként, tanácsos lehet olyan rendszerindítás-kezelőt használni, amely maga is képes választani a rendszerindítási lehetőségek közül, például a GRUB. Az x64 (amd64) fenti példájából:

root #cp /efi/EFI/Grub/grubx64.efi /efi/EFI/boot/bootx64.efi
Note
Az EFI System Partition (ESP) FAT fájlrendszere nem különbözteti meg a kis és nagybetűket (tehát nem case-sensitive), hanem karaktermegőrző (case-preserving) (VFAT), míg a Unix a hagyományai szerint szigorúan kis és nagybetűérzékeny, tehát szigorúan megkülönbözteti azokat. A Linux kernelben a vfat alapértelmezés szerint a neveket nem különbözteti meg a kis és nagybetűktől (csatlakozási opció check=r relaxed esetén),[5] így a fenti parancs az ESP-n mindig működni fog. Csak ha a VFAT-ot szigorú kis- és nagybetű-ellenőrzéssel, check=s-vel csatlakoztatjuk, előfordulhat, hogy az /efi/EFI/boot/bootx64.efi elérési út nem működik, mivel a meglévő fájlok és könyvtárak nagybetűket használnak, pl. /efi/EFI/BOOT vagy /efi/EFI/Boot (amely különböző könyvtárak lennének szigorú kis- és nagybetűk érzékenységgel). Ugyanez vonatkozik a bootx64.efi-re is. A tree -L 3 /efi futtatása (ha az ESP az /efi alá van felcsatolva) megmutatja az egyes rendszeren használatos neveket, amelyekre a fenti parancsot ennek megfelelően módosítani kell.
Important
A tartalék rendszerbetöltő nem frissül automatikusan! Minden alkalommal, amikor pl. a GRUB újratelepül (mint egy verziófrissítés után, ami biztonsági javításokat tartalmazhat), akkor ismét át kell másolni a tartalék rendszerindítási útvonalra, felülírva (frissítve) az előző verziót!

A systemd, systemd-boot (formálisan Gummiboot) csomagban található rendszerindítás-kezelő automatikusan települ a cserélhető adathordozó rendszerindítási útvonalára. Amikor a sys-apps/systemd a boot USE jelölőzászlóval frissül, a bootctl parancsot újra kell futtatni mindkét rendszerbetöltő fájl frissítéséhez.

root #bootctl update

További olvasnivaló a témában

Hivatkozások