Installkernel
Az Installkernel egy szkriptgyűjtemény, amely automatikusan telepíti az új verziójú kerneleket és frissíti a bootloader beállítását.
A sys-kernel/installkernel szoftvercsomag két különböző lehetőséget kínál a kernel telepítés kezelésére. Az első a systemd által biztosított kernel-install, a második pedig a hagyományos, Debianból származó installkernel.
A systemd USE jelölőzászló megváltoztatja, hogy melyik eszközt használja alapértelmezés szerint, ezt az alapértelmezést felül lehet írni a SYSTEMD_KERNEL_INSTALL környezeti változóval. Általában a systemd kernel-install a korszerűbb megvalósítás, ezért ez az ajánlott, és alapértelmezés szerint engedélyezve van a systemd profilokon. Azok a felhasználók, akik nem kívánják használni a systemd eszközöket, alternatívaként választhatják a Debianból származó installkernel megvalósítást.
További automatizálási beépülők, például:
- Egy initramfs legenerálása.
- Egy Unified Kernel Image létrehozása.
- Bootloader beállításának a frissítése.
a sys-kernel/installkernel szoftvercsomagon található USE jelölőzászlókkal telepíthetők és/vagy engedélyezhetők, az alábbi áttekintés szerint:
USE flags for sys-kernel/installkernel Gentoo fork of installkernel script from debianutils
dracut
Generate an initramfs or UKI on each kernel installation
efistub
EXPERIMENTAL: Update UEFI configuration on each kernel installation
grub
Re-generate grub.cfg on each kernel installation, used grub.cfg is overridable with GRUB_CFG env var
refind
Install a Gentoo icon for rEFInd alongside the (unified) kernel image, used icon is overridable with REFIND_ICON env var
systemd
Use systemd's kernel-install to install kernels, overridable with SYSTEMD_KERNEL_INSTALL env var
systemd-boot
Use systemd-boot's native layout by default
ugrd
Generate an initramfs using UGRD on each kernel installation
uki
Install UKIs to ESP/EFI/Linux for EFI stub booting and/or bootloaders with support for auto-discovering UKIs
ukify
Build an UKI with systemd's ukify on each kernel installation
Systemd kernel-install -je
Ennek a telepítési módszernek a kiválasztásához engedélyezze a systemd USE jelölőzászlót, vagy állítsa be a SYSTEMD_KERNEL_INSTALL=1 értéket a környezetben.
/etc/portage/package.use/installkernelsys-kernel/installkernelsystemd
root #emerge --ask sys-kernel/installkernelVagy
/etc/env.d/99systemd-kernel-installSYSTEMD_KERNEL_INSTALL=1
root #env-updateA systemd kernel-install nemcsak a kernelek telepítésére alkalmas (kernel-install add), hanem a kernel eltávolításának kezelésére is (kernel-install remove). Ha a kernel-install telepítve van, akkor automatikusan meg lesz hívva az eclean-kernel program által.
Beállítás
A kernel-install beállítása a /etc/kernel/install.conf és a /usr/lib/kernel/install.conf fájlokban történik, ahol az előbbi elsőbbséget élvez az utóbbival szemben. Három beállítási opció állítható be:
/etc/kernel/install.conflayout= initrd_generator= uki_generator=
Az alapértelmezett /usr/lib/kernel/install.conf beállításfájlt a sys-kernel/installkernel szoftvercsomag biztosítja. Természetesen a beállítás manuálisan is módosítható a /etc/kernel/install.conf fájlban.
Az /etc/kernel/install.conf teljes egészében felülírja a /usr/lib/kernel/install.conf fájlt! Amikor a /etc/kernel/install.conf létezik, akkor a /usr/lib/kernel/install.conf összes beállítása figyelmen kívül marad. Ezért, ha a cél csak egy beállítás felülírása, akkor a felhasználónak másolnia kell azokat a beállításokat, amelyeket nem kíván felülírni a /usr/lib/kernel/install.conf fájlból a /etc/kernel/install.conf fájlba.
Elrendezés
Az upstream systemd támogatja a Boot Loader Specification 1-es típusú (layout=bls) és 2-es típusú (layout=uki) elrendezést. Az 1-es típusú elrendezést a systemd-boot használja, míg a 2-es típusú elrendezés Unified Kernel Images-hez készült, és támogatja a GRUB, a systemd-boot és a refind.
A Gentoo támogat egy hagyományosabb elrendezést is, amely a GRUB használatára lett tervezve (layout=grub). Ez az elrendezés nagyon hasonló (de nem teljesen azonos) a Debian installkernel által használt elrendezéshez, ahogyan azt fentebb leírtuk. Ez az elrendezés más esetekben is használható, ahol egyszerűbb és hagyományosabb elrendezésre van szükség. A GRUB és az Unified Kernel Images kombinációjának használatához a uki elrendezést használja.
Amikor a grub , systemd-boot , efistub és uki USE jelölőzászlók mind le vannak tiltva, akkor a kernelek olyan elrendezésben lesznek telepítve, amely többnyire visszamenőlegesen kompatibilis a Debian installkernel segédprogrammal (layout=compat).
Amikor több elrendezést meghatározó jelölőzászló van engedélyezve, az uki elrendezés (engedélyezve a uki USE jelölőzászlóval) elsőbbséget élvez a bls elrendezéssel szemben (engedélyezve a systemd-boot USE jelölőzászlóval), amely viszont elsőbbséget élvez a grub elrendezéssel szemben (engedélyezve a grub USE jelölőzászlóval).
Az egyes elrendezések áttekintése az alábbi szekciókban található:
compat
A compat elrendezés nagyon hasonló, de nem azonos a Debian hagyományos installkernel által használt elrendezéssel:
/boot/initramfs-x.y.z-gentoo-dist.img# Ha USE=dracut (vagy más initramfs generátor) van érvényben.
/boot/kernel-x.y.z-gentoo-dist
efistub
Az efistub elrendezés azonos a compat elrendezéssel, de át lett helyezve a EFI rendszerpartícióra a EFI stub bootoláshoz. A bináris kernelképfájl megkapja a .efi kiterjesztést, mivel néhány firmware gyártó ezt írja elő:
/${ESP}/EFI/Gentoo/initramfs-x.y.z-gentoo-dist.img# Ha USE=dracut (vagy más initramfs generátor) van érvényben. /${ESP}/EFI/Gentoo/kernel-x.y.z-gentoo-dist.efi
Az, hogy az (automatikus) EFI stub bootolás működik-e vagy sem, nagymértékben függ a UEFI gyártójától. Ez egy fejlett és kísérleti funkciónak tekinthető.
grub
A grub elrendezés azonos a compat elrendezéssel, egy hozzáadott grub.cfg fájllal, amelyet a GRUB használ:
/boot/grub/grub.cfg
/boot/initramfs-x.y.z-gentoo-dist.img# Ha USE=dracut (vagy más initramfs generátor) van érvényben.
/boot/kernel-x.y.z-gentoo-dist
bls
A Bootloader Specification Type 1, vagy bls elrendezés, amelyet a systemd-boot használ:
/${ESP}/gentoo/x.y.z-gentoo-dist/initrd# Ha USE=dracut (vagy más initramfs generátor) van érvényben. /${ESP}/gentoo/x.y.z-gentoo-dist/linux /${ESP}/loader/entries/gentoo-x.y.z-gentoo-dist.conf
uki
A Bootloader Specification Type 2, vagy uki elrendezés:
/boot/grub/grub.cfg# Ha USE=grub. /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
initrd_generator
Ez a beállítás szabályozza, hogy melyik bővítmény használható az initramfs létrehozásához. Jelenleg az egyetlen szoftvercsomag, amely ilyen bővítményt telepít, a Dracut a sys-kernel/dracut szoftvercsomagból. Ez a beállítás a bővítmények számára ${KERNEL_INSTALL_INITRD_GENERATOR} néven érhető el. Ha a dracut USE jelölőzászló engedélyezve van, akkor ez a beállítás automatikusan dracut értékre van állítva. Ellenkező esetben automatikusan none értékre állítódik.
uki_generator
Ez a beállítás szabályozza, hogy melyik bővítményt kell használni az Unified Kernel Image generálásához. Jelenleg két szoftvercsomag biztosít ilyen bővítményt: A sys-kernel/dracut és a systemd (a ukify jelölőzászlón keresztül a sys-apps/systemd és a sys-apps/systemd-utils csomagokban). Ez a beállítás a bővítmények számára ${KERNEL_INSTALL_UKI_GENERATOR} formájában érhető el. Ha a ukify USE jelölőzászló engedélyezve van, akkor ez a beállítás automatikusan ukify értékre áll. Ha a ukify USE jelölőzászló le van tiltva, de a dracut és uki USE jelölőzászlók engedélyezve vannak, akkor ez a beállítás automatikusan dracut értékre áll. Egyébként ez a beállítás automatikusan none értékre állítódik.
kernel-install parancsok
Az alábbiakban áttekintést talál a systemd kernel-install elérhető parancsairól.
kernel-install add
Egy adott verziójú kernelt (újra)telepít. Ha a systemd USE jelölőzászló engedélyezve van, akkor ezt a parancsot a sys-kernel/installkernel hívja meg.
root #kernel-install [OPTIONS...] add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE...]kernel-install remove
Egy adott verziójú kernelt eltávolít. Ha elérhető, akkor ezt a parancsot a app-admin/eclean-kernel hívja meg.
root #kernel-install [OPTIONS...] remove KERNEL-VERSIONkernel-install inspect
Egy áttekinthető listát jelenít meg azokról a paraméterekről, amelyeket egy adott verziójú kernel telepítésekor használni fognak.
root #kernel-install [OPTIONS...] inspect [KERNEL-VERSION] [KERNEL-IMAGE] [INITRD-FILE...]kernel-install list
Egy áttekinthető listát jelenít meg az összes telepített kernelverzióról. Ez azt jelenti, hogy minden kernelverziót kilistáz, amelyhez található könyvtár a /lib/modules alatt.
root #kernel-install [OPTIONS...] listkernel-install add-all
Újratelepíti az összes kernelverziót. Végighalad a kernel-install add parancson minden kernelen, amelyhez egy vmlinuz fájl található a kapcsolódó /lib/modules könyvtárban.
root #kernel-install [OPTIONS...] add-allFuttatási felülírások
Amikor a dracut és ukify bővítmények engedélyezve vannak (azaz a dracut és/vagy ukify USE jelölőzászlók engedélyezettek), akkor azok futásidőben kihagyhatók a sys-kernel/installkernel által a /usr/lib/kernel/install.conf fájlban megadott alapértelmezett beállítás egy egyedi /etc/kernel/install.conf beállítással való felülírásával. Ez hasznos lehet olyan rendszereken, ahol mind a disztribúció által biztosított kernelek, mind a manuálisan beállított kernelek telepítve vannak, ahol az előbbi megköveteli a dracut USE jelölőzászló engedélyezését, míg az utóbbi esetleg egyáltalán nem igényel bináris futtatható initramfs képfájlt.
Például:
/etc/kernel/install.conflayout=compat initrd_generator=none uki_generator=none
Vegye figyelembe, hogy ez a felülírás minden telepített kernelre alkalmazható. Lehetőség van több különböző beállítás megadására is, és lehetőség van ezek között futásidőben váltani a KERNEL_INSTALL_CONF_ROOT környezeti változó használatával.
Például:
/etc/manual-kernel/install.conflayout=compat initrd_generator=none uki_generator=none
root #KERNEL_INSTALL_CONF_ROOT=/etc/manual-kernel make installEgy másik módszer az alapértelmezett kernel telepítés felülírására a KERNEL_INSTALL_PLUGINS környezeti változó használata. Ha ez a változó be van állítva, akkor csak a megadott bővítmények futnak.
Például:
root #KERNEL_INSTALL_PLUGINS="90-compat.install 90-loaderentry.install 90-uki-copy.install" make installTestreszabás
Egyedi bővítmények, amelyek például initramfs képfájlt vagy UKI képfájlt generálnak, vagy frissítik a bootloader beállítását, a /etc/kernel/install.d könyvtárba telepíthetők. Egy initramfs bővítménynek egy initrd nevű fájlt kell telepítenie a ${KERNEL_INSTALL_STAGING_AREA} területre. Egy UKI bővítménynek egy uki.efi nevű fájlt kell telepítenie a ${KERNEL_INSTALL_STAGING_AREA} területre. Minden bővítményfájlnak a .install utótaggal kell végződnie. A /etc/kernel/install.d könyvtárban található bővítmények felülírják az azonos nevű alapértelmezett bővítményeket a /usr/lib/kernel/install.d könyvtárban.
Bővitményszkriptek leírása
Végrehajtási sorrendben az install.d bővítmények:
- /usr/lib/kernel/install.d/00-00machineid-directory.install
- Create the ENTRY_DIR_ABS directory where kernels will be installed for systemd-boot.
- Installed by: sys-kernel/installkernel
- Executed if: layout=bls and kernel-install command is add
- /usr/lib/kernel/install.d/10-copy-prebuilt.install
- Copy prebuilt initramfs and Unified Kernel Image to the staging area if they exist. A prebuilt initramfs and Unified Kernel Image are present when the distribution kernels are installed with the generic-uki USE flag enabled.
- Installed by: sys-kernel/installkernel
- Executed if: kernel-install command is add
- /usr/lib/kernel/install.d/35-amd-microcode-systemd.install
- Builds an AMD CPU microcode early initramfs if an initramfs generator is used that does not already bundle the CPU microcode.
- Installed by: sys-kernel/linux-firmware if the initramfs is enabled.
- Executed if: kernel-install command is add and initrd_generator!=dracut.
- /usr/lib/kernel/install.d/35-intel-microcode-systemd.install
- Builds an Intel CPU microcode early initramfs if an initramfs generator is used that does not already bundle the CPU microcode.
- Installed by: sys-firmware/intel-microcode if the initramfs is enabled.
- Executed if: kernel-install command is add and initrd_generator!=dracut.
- /usr/lib/kernel/install.d/40-dkms.install
- Automatically rebuild kernel modules registered with DKMS on kernel installation, and clean them up on kernel removal.
- Installed by: sys-kernel/dkms
- Executed if: Always
- /usr/lib/kernel/install.d/50-depmod.install
- Update kernel module dependencies on kernel installation, and cleanup depmod files on kernel removal.
- Installed by: sys-apps/systemd or sys-apps/systemd-utils
- Executed if: Always
- /usr/lib/kernel/install.d/50-dracut.install
- Builds a initramfs or Unified Kernel Image (UKI) with dracut. A initramfs is built if initrd_generator=dracut. If uki_generator=dracut and not layout=bls then an UKI is built, this will be the case if the uki USE flag is enabled on sys-kernel/installkernel but the ukify USE flag is disabled.
- Installed by: sys-kernel/dracut
- Executed if: kernel-install command is add and initrd_generator=dracut (USE dracut ) or uki_generator=dracut (USE dracut and USE uki but not USE ukify ). Also executed if layout is set to an unsupported value.
- /usr/lib/kernel/install.d/51-dracut-rescue.install
- Build a dracut rescue initramfs image, currently not supported in combination with Unified Kernel Images.
- Installed by: sys-kernel/dracut
- Executed if: kernel-install command is add and dracut_rescue_image=yes in any dracut configuration file
- /usr/lib/kernel/install.d/52-ugrd.install
- Builds an initramfs using the ugrd initramfs generator.
- Installed by: sys-kernel/ugrd
- Executed if: kernel-install command is add and initrd_generator=ugrd.
- /usr/lib/kernel/install.d/85-check-diskspace.install
- Checks if there is enough disk space on the target partition to install the kernel.
- Installed by: sys-kernel/installkernel
- Executed if: Always
- /usr/lib/kernel/install.d/90-compat.install
- Install the staged (unified) kernel image (and initramfs) in a backwards compatibility layout similar to Debian's installkernel. And clean them up when the kernel is removed.
- Installed by: sys-kernel/installkernel
- Executed if: layout=compat or layout=grub
- /usr/lib/kernel/install.d/90-loaderentry.install
- Install the staged kernel image (and initramfs) in systemd-boot's native format and register the new kernel with systemd-boot. And clean up these files when the kernel is removed.
- Installed by: sys-apps/systemd or sys-apps/systemd-utils
- Executed if: layout=bls
- /usr/lib/kernel/install.d/90-runlilo.install
- Update LILO's configuration.
- Installed by: sys-boot/lilo
- Executed if: Always
- /usr/lib/kernel/install.d/90-uki-copy.install
- Copy the staged Unified Kernel Image to the EFI/Linux directory on the EFI System Partition. And clean it up on kernel removal. This plugin script will exit fatally if there is no UKI to install.
- Installed by: sys-apps/systemd or sys-apps/systemd-utils
- Executed if: layout=uki
- /usr/lib/kernel/install.d/90-zz-update-static.install
- Update version-less files or symlinks if they exist at the target location.
- Installed by: sys-kernel/installkernel
- Executed if: kernel-install command is add and layout=uki or layout=efistub or layout=compat or layout=grub
- /usr/lib/kernel/install.d/91-grub-mkconfig.install
- Update GRUB's configuration by running grub-mkconfig. Automatically finds Unified Kernel Images in the EFI/Linux directory on the EFI System Partition. Which grub.cfg to use is overridable with the GRUB_CFG environment variable.
- Installed by: sys-kernel/installkernel with grub
- Executed if: layout=uki or layout=grub
- /usr/lib/kernel/install.d/91-sbctl.install
- Sign the installed (unified) kernel image with sbctl's keys and add it to the sbctl database. Upon kernel removal it is removed from the database. The plugin script will exit fatally if sbctl's keys are not already setup. Note that both dracut and ukify are capable of signing generated unified kernel images by themselves and distribution kernels can already be signed using the secureboot USE flag. This plugin may be useful however for manually compiled kernels.
- Installed by: app-crypt/sbctl
- Executed if: Always
- /usr/lib/kernel/install.d/95-efistub-kernel-bootcfg.install
- Adds and removes UEFI boot entries on kernel installation or removal using kernel-bootcfg from app-emulation/virt-firmware .
- Installed by: sys-kernel/installkernel with USE efistub
- Executed if: layout=efistub or layout=uki
- /usr/lib/kernel/install.d/95-refind-copy-icon.install
- Install a Gentoo icon for the rEFInd bootloader alongside the (unified) kernel image. Which icon file to use is overridable with the REFIND_ICON environment variable.
- Installed by: sys-kernel/installkernel with USE refind
- Executed if: layout=uki or layout=compat
- /usr/lib/kernel/install.d/99-write-log.install
- Appends last installed kernel to /var/log/installkernel.log and updates state file at /var/lib/installkernel.
- Installed by: sys-kernel/installkernel
- Executed if: Always
Debian installkernel szkriptgyűjteménye
Ennek a telepítési módszernek a kiválasztásához tiltsa le a systemd USE jelölőzászlót, vagy állítsa be a SYSTEMD_KERNEL_INSTALL=0 értéket a környezetben.
/etc/portage/package.use/installkernelsys-kernel/installkernel-systemd
root #emerge --ask sys-kernel/installkernelroot #emerge --ask sys-kernel/installkernelVagy
/etc/env.d/99no-systemd-kernel-installSYSTEMD_KERNEL_INSTALL=0
root #env-updateMivel a hagyományos installkernel a initramfs képfájlt és/vagy a Unified Kernel Image képfájlt (UKI) ugyanarra a helyre telepíti, mint a kernelképfájl a kernel forráskód fájában, ezért ezek a fájlok hátramaradhatnak, amennyiben egy olyan beállításról váltunk, amely tartalmaz initramfs képfájlt és/vagy Unified Kernel Image képfájlt, egy olyanra, amely nem tartalmaz. Ebben az esetben ezeket a fájlokat kézzel kell eltávolítani a kernel forrásfájából annak biztosítása érdekében, hogy a installkernel ne találja meg és telepítse őket.
Beállítás
A kernel-install beállítása a /etc/kernel/install.conf és a /usr/lib/kernel/install.conf fájlokban történik, ahol az előbbi fájl prioritást élvez az utóbbi fájllal szemben. Három beállítási opció adható meg:
/etc/kernel/install.conflayout= initrd_generator= uki_generator=
Az alapértelmezett /usr/lib/kernel/install.conf beállításfájlt a sys-kernel/installkernel szoftvercsomag biztosítja. Természetesen a beállítás manuálisan is módosítható a /etc/kernel/install.conf fájlban.
A /etc/kernel/install.conf teljes egészében felülírja a /usr/lib/kernel/install.conf fájlt! Ha a /etc/kernel/install.conf fájl létezik, akkor a /usr/lib/kernel/install.conf fájl összes beállítása figyelmen kívül lesz hagyva. Ezért, ha csak egy beállítást szeretne felülírni, akkor a felhasználónak másolnia kell a többi, nem felülírandó beállítást is a /usr/lib/kernel/install.conf fájlból a /etc/kernel/install.conf fájlba.
Elrendezés
A Debian hagyományos installkernel-je a kernelképfájlt és az initramfs képfájlt vagy az Egységes Kernel Képfájlt (Unified Kernel Image) a következő elrendezésben telepíti:
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/grub/grub.cfg# Ha USE=grub /boot/initramfs-x.y.z-gentoo-dist.img# Ha USE=dracut (vagy egy másik initramfs generátor). /boot/vmlinuz-x.y.z-gentoo-dist /boot/vmlinuz-x.y.z-gentoo-dist.png# Ha USE=refind
efistub
Ha az efistub USE jelölőzászló engedélyezve van, akkor a telepítési fában található elemek áthelyezésre kerülnek az EFI System Partition (ESP) területre, és a kernelképfájl megkapja a .efi kiterjesztést.
/${ESP}/EFI/Gentoo/System.map-x.y.z-gentoo-dist /${ESP}/EFI/Gentoo/config-x.y.z-gentoo-dist /${ESP}/EFI/Gentoo/initramfs-x.y.z-gentoo-dist.img# Ha USE=dracut (vagy egy másik initramfs generátor). /${ESP}/EFI/Gentoo/vmlinuz-x.y.z-gentoo-dist.efi
uki
Amennyiben engedélyezve van a uki USE jelölőzászló, akkor a létrehozott Unified Kernel Image telepítésre kerül az EFI rendszerpartíció (ESP) EFI/Linux könyvtárába.
/boot/grub/grub.cfg# Ha USE=grub . /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png# Ha USE=refind .
initrd_generator
Ez a beállítás meghatározza, hogy melyik bővítményt kell használni a initramfs létrehozásához. Jelenleg az egyetlen szoftvercsomag, amely ilyen bővítményt telepít, az a Dracut a sys-kernel/dracut szoftvercsomagból. Ez a beállítás a bővítmények számára ${INSTALLKERNEL_INITRD_GENERATOR} formában van elérhetővé téve. Amikor engedélyezve van a dracut USE jelölőzászló, akkor ez a beállítás automatikusan dracut értékre van állítva. Más esetekben ez a beállítás automatikusan none értékre van állítva.
uki_generator
Ez a beállítás meghatározza, hogy melyik bővítményt kell használni az Unified Kernel Image létrehozásához. Jelenleg két szoftvercsomag biztosít ilyen bővítményt: sys-kernel/dracut és systemd (a sys-apps/systemd és sys-apps/systemd-utils szoftvercsomagokon belüli ukify jelölőzászlón keresztül). Ez a beállítás a bővítmények számára ${INSTALLKERNEL_UKI_GENERATOR} formában érhető el. Amikor az ukify USE jelölőzászló engedélyezve van, ez a beállítás automatikusan ukify értékre van állítva. Amikor a ukify USE jelölőzászló le van tiltva, de a dracut és a uki USE jelölőzászlók engedélyezve vannak, akkor ez a beállítás automatikusan dracut értékre van állítva. Egyéb esetekben ez a beállítás automatikusan none értékre van állítva.
Futásidejű felülírások
Amikor a dracut és ukify bővítmények telepítve vannak (azaz a dracut és/vagy a ukify USE jelölőzászlók engedélyezve vannak), azok futásidőben kihagyhatók a INSTALLKERNEL_INITRD_GENERATOR és INSTALLKERNEL_UKI_GENERATOR környezeti változók használatával. Ez hasznos lehet olyan rendszereken, ahol mind az elosztott kernelek, mind a manuálisan beállított kernelek telepítve vannak, ahol az előbbi megköveteli a dracut USE jelölőzászló engedélyezését, míg az utóbbi esetleg egyáltalán nem igényel initramfs képfájlt.
root #INSTALLKERNEL_INITRD_GENERATOR=none INSTALLKERNEL_UKI_GENERATOR=none make installAlternatívaként ezek a beállítások tartósan megadhatók a /etc/kernel/install.conf fájlban:
/etc/kernel/install.conflayout=compat initrd_generator=none uki_generator=none
Vegye figyelembe, hogy ez a felülírás minden telepített kernelre vonatkozni fog. Az is lehetséges, hogy több különböző beállítást határozzon meg, és azok között futásidőben váltson a INSTALLKERNEL_CONF_ROOT környezeti változó segítségével.
Például:
/etc/manual-kernel/install.conflayout=compat initrd_generator=none uki_generator=none
root #INSTALLKERNEL_CONF_ROOT=/etc/manual-kernel make installEgy másik módja az alapértelmezett kerneltelepítés felülírásának az INSTALLKERNEL_PREINST_PLUGINS és INSTALLKERNEL_POSTINST_PLUGINS környezeti változók használata. Ha ezek a változók be vannak állítva, akkor csak a megadott bővítmények futnak.
Például:
root #INSTALLKERNEL_POSTINST_PLUGINS="91-grub-mkconfig.install" make installTestreszabás
Egyedi bővítmények, amelyek például initramfs vagy Unified Kernel Image (UKI) generálására szolgálnak, a /etc/kernel/preinst.d könyvtárba telepíthetők. Egy initramfs bővítménynek egy initrd nevű fájlt kell telepítenie a ${INSTALLKERNEL_STAGING_AREA} területre, és tiszteletben kell tartania az INSTALLKERNEL_INITRD_GENERATOR környezeti változót. Egy UKI bővítménynek egy uki.efi nevű fájlt kell telepítenie a ${INSTALLKERNEL_STAGING_AREA} területre, és tiszteletben kell tartania az INSTALLKERNEL_UKI_GENERATOR környezeti változót.
Ezenkívül egyedi bővítmények, amelyek például frissítik a bootloader beállítását, telepíthetők a /etc/kernel/postinst.d könyvtárba.
A /etc/kernel/preinst.d vagy /etc/kernel/postinst.d könyvtárban található bővítmények felülírják az azonos nevű alapértelmezett bővítményeket a /usr/lib/kernel/preinst.d és /usr/lib/kernel/postinst.d könyvtárban.
Bővítményszkriptek leírásai
Végrehajtási sorrendben a preinst.d bővítmények:
- /usr/lib/kernel/preinst.d/35-amd-microcode.install
- Builds an AMD CPU microcode early initramfs if an initramfs generator is used that does not already bundle the CPU microcode.
- Installed by: sys-kernel/linux-firmware if the initramfs is enabled.
- Executed if: initrd_generator!=dracut.
- /usr/lib/kernel/preinst.d/35-intel-microcode.install
- Builds an Intel CPU microcode early initramfs if an initramfs generator is used that does not already bundle the CPU microcode.
- Installed by: sys-firmware/intel-microcode if the initramfs is enabled.
- Executed if: initrd_generator!=dracut.
- /usr/lib/kernel/preinst.d/50-dracut.install
- Builds a initramfs or Unified Kernel Image (UKI) with dracut. To build a UKI instead of a initramfs, set uefi=yes in /etc/dracut.conf.
- Installed by: sys-kernel/installkernel with USE dracut
- Executed if: initrd_generator=dracut.
- /usr/lib/kernel/preinst.d/52-ugrd.install
- Builds an initramfs using the ugrd initramfs generator.
- Installed by: sys-kernel/ugrd
- Executed if: initrd_generator=ugrd.
- /usr/lib/kernel/preinst.d/60-ukify.install
- Builds a Unified Kernel Image with systemd's ukify, will include a initramfs if one was built by an earlier plugin.
- Installed by: sys-kernel/installkernel with USE ukify
- Executed if: uki_generator=ukify and layout=uki.
- /usr/lib/kernel/preinst.d/99-check-diskspace.install
- Checks if there is enough disk space on the target partition to install the kernel.
- Installed by: sys-kernel/installkernel
- Executed if: Always
Végrehajtási sorrendben a postinst.d bővítmények:
- /usr/lib/kernel/postinst.d/40-dkms.install
- Automatically rebuild kernel modules registered with DKMS on kernel installation.
- Installed by: sys-kernel/dkms
- Executed if: Always
- /usr/lib/kernel/postinst.d/91-grub-mkconfig.install
- Update GRUB's configuration by running grub-mkconfig. Automatically finds Unified Kernel Images in the EFI/Linux direcotry on the EFI System Partition. Which grub.cfg to use is overridable with the GRUB_CFG environment variable.
- Installed by: sys-kernel/installkernel with USE grub
- Executed if: Always
- /usr/lib/kernel/postinst.d/95-efistub-uefi-mkconfig.install
- Adds UEFI boot entries for newly installed kernels and removes entries for removed kernels using sys-boot/uefi-mkconfig .
- Installed by: sys-kernel/installkernel with USE efistub
- Executed if: Always
- /usr/lib/kernel/postinst.d/95-refind-copy-icon.install
- Install a Gentoo icon for the rEFInd bootloader alongside the (unified) kernel image. Which icon file to use is overridable with the REFIND_ICON environment variable.
- Installed by: sys-kernel/installkernel with USE refind
- Executed if: Always
- /usr/lib/kernel/postinst.d/99-write-log.install
- Appends last installed kernel to /var/log/installkernel.log and updates state file at /var/lib/installkernel.
- Installed by: sys-kernel/installkernel
- Executed if: Always
- /usr/lib/kernel/postinst.d/90-runlilo.install
- Update LILO's configuration.
- Installed by: sys-boot/lilo
- Executed if: Always
USE beállítás a boot elrendezés leképezése számára
A forráskód dobozok lentebb a lehetséges sys-kernel/installkernel USE beállításokat térképezik fel annak megfelelően, hogy miként települ a kernelképfájl és a hozzá kapcsolódó fájlok. Ez hasznos lehet azon felhasználók számára, akik nem biztosak benne, hogy melyik USE beállítás illik az operációs rendszerükhöz. Az ESP az EFI System Partition csatolási pontjára utal, ami lehet /efi, /boot, /boot/efi vagy /boot/EFI. A generic-uki a generic-uki USE jelölőzászlóra utal a Distribution kernels esetében.
Minden elrendezéshez (kivéve a bls type 1 elrendezést a systemd-boot esetében) a sys-kernel/installkernel szoftvercsomag támogatja egy verziófüggetlen szimbolikus link vagy fájl frissítését ugyanazon a helyen, ahol a telepített bináris kernelképfájlok találhatók. Például, ha a bináris kernelképfájlok /efi/EFI/Gentoo/kernel-x.y.z-gentoo-dist.efi -ként kerülnek telepítésre, akkor a /efi/EFI/Gentoo/kernel.efi fájl minden alkalommal frissül, amikor egy bináris kernelfájl telepítésre kerül, ha ez a fájl vagy szimbolikus link létezik.
Systemd kernel-install (USE=+systemd)
Elrendezések GRUB-al
Egyszerű kernelképfájl telepítése.
/boot/grub/grub.cfg /boot/kernel-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítése. Sz initramfs képfájl a dracut által generálva.
/boot/grub/grub.cfg /boot/initramfs-x.y.z-gentoo-dist.img /boot/kernel-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítése. Az initramfs képfájl előre le lett generálva a disztribúció kernel szoftvercsomagja által.
/boot/grub/grub.cfg /boot/initramfs-x.y.z-gentoo-dist.img /boot/kernel-x.y.z-gentoo-dist
Egyesített kernelképfájlok (Unified Kernel Images) elrendezései
Egyesített kernelképfájl (Unified Kernel Image) telepítése. Az uki az ukify segítségével generálva, majd telepítve az ESP partícióra.
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egyesített kernel képfájl telepítése. Az uki a dracut segítségével le van generálva, majd telepítve van az ESP partícióra.
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egyesített kernelképfájl telepítése. Az uki az ukify segítségével le van generálva. Tartalmaz egy initramfs képfájlt, amelyet a dracut generált le, majd telepítve lett az ESP partícióra.
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egyesített kernel képfájl telepítése. Az uki előre le van generálva a disztribúció kernel szoftvercsomagja által.
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Elrendezések a systemd-boot -tal
Egyszerű kernelképfájl telepítése.
/${ESP}/gentoo/x.y.z-gentoo-dist/linux /${ESP}/loader/entries/gentoo-x.y.z-gentoo-dist.conf
Eszerű kernelképfájl telepítése. Az initramfs képfájl a dracut által van legenerálva.
/${ESP}/gentoo/x.y.z-gentoo-dist/initrd /${ESP}/gentoo/x.y.z-gentoo-dist/linux /${ESP}/loader/entries/gentoo-x.y.z-gentoo-dist.conf
Egyszerű kernelképfájl telepítése. Az initramfs képfájl előre előre le van generálva a disztribúció kernel szoftvercsomagja által.
/${ESP}/gentoo/x.y.z-gentoo-dist/initrd /${ESP}/gentoo/x.y.z-gentoo-dist/linux /${ESP}/loader/entries/gentoo-x.y.z-gentoo-dist.conf
Egyesített kernelképfájlok (Unified Kernel Images) elrendezései
Egyesített kernelképfájl telepítése. Az uki az ukify segítségével le van generálva, majd telepítve van az ESP partícióra.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az UKI a dracut segítségével van legenerálja, majd az ESP partícióra van telepítve.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Az egyesített kernelképfájl (Unified Kernel Image) telepítése. Az uki az ukify segítségével kerül létrehozásra, magában foglalva egy dracut által generált initramfs képfájlt, amely ezt követően az ESP partícióra települ.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egyesített kernelképfájl (Unified Kernel Image) telepítése. Az uki előre elkészült a disztribúciós kernel szoftvercsomag által.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Elrendezések az rEFInd-vel
Egyszerű kernelképfájl telepítés rEFInd ikon használatával.
/boot/kernel-x.y.z-gentoo-dist /boot/kernel-x.y.z-gentoo-dist.png
Egyszerű kernelképfájl telepítése dracut által generált initramfs képfájllal és rEFInd ikon használatával.
/boot/initramfs-x.y.z-gentoo-dist.img /boot/kernel-x.y.z-gentoo-dist /boot/kernel-x.y.z-gentoo-dist.png
Egyszerű kernelképfájl telepítése rEFInd ikon használatával. Az initramfs képfájl előre elkészült a disztribúciós kernel szoftvercsomag által.
/boot/initramfs-x.y.z-gentoo-dist.img /boot/kernel-x.y.z-gentoo-dist /boot/kernel-x.y.z-gentoo-dist.png
Elrendezések egyesített kernelképfájlokkal
Egyesített kernelképfájl (Unified kernel image) telepítése rEFInd ikon használatával. Az uki a ukify segítségével került létrehozásra, majd telepítve lett az ESP partícióra.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Egyesített kernelképfájl (Unified Kernel Image) telepítése rEFInd ikon használatával. Az uki a dracut segítségével létre lett hozva, majd települt az ESP partícióra.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Egyesített kernelképfájl (Unified Kernel Image) telepítése rEFInd ikon használatával. Az uki a ukify segítségével létre lett hozva, magában foglal egy dracut által generált initramfs képfájlt, majd az ESP partícióra rá lett telepítve.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Egyesített kernelképfájl (Unified Kernel Image) telepítése rEFInd ikon használatával. Az uki előre el lett készítve a disztribúciós kernel szoftvercsomag által.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Elrendezések GRUB/systemd-boot/rEFInd nélkül (más bootloaderek)
Egyszerű kernelképfájl telepítése.
/boot/kernel-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítés, dracut által generált initramfs képfájllal.
/boot/initramfs-x.y.z-gentoo-dist.img /boot/kernel-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítése. Az initramfs képfájl előre el lett készítve a disztribúciós kernel szoftvercsomag által.
/boot/initramfs-x.y.z-gentoo-dist.img /boot/kernel-x.y.z-gentoo-dist
Elrendezések egységes kernelképfájlokkal
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki képfájlt az ukify generálta le, majd az ESP partícióra lett telepítve.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki képfájlt a dracut generálta le, majd az ESP partícióra lett telepítve.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki képfájlt az ukify generálta le, és tartalmaz egy, a dracut által legenerált initramfs képfájlt, majd az ESP partícióra lett telepítve.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki az disztribúciós kernel szoftvercsomag által lett létrehozva.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Hagyományos installkernel (USE=-systemd)
Elrendezések a GRUB-bal
Egyszerű kernelképfájl telepítése.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/grub/grub.cfg /boot/vmlinuz-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítése a dracut által generált initramfs képfájllal.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/grub/grub.cfg /boot/initramfs-x.y.z-gentoo-dist.img /boot/vmlinuz-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítése. Az initramfs képfájl a disztribúciós kernel szoftvercsomag által lett létrehozva.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/grub/grub.cfg /boot/initramfs-x.y.z-gentoo-dist.img /boot/vmlinuz-x.y.z-gentoo-dist
Elrendezések egységes kernelképfájlokkal
Egységes kernelképfájl telepítése. A dracut által generált uki képfájllal (uki nem hatásos, mivel nincs egységes kernelképfájl).
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl telepítése. Az uki képfájlt az ukify generálta le, majd az ESP partícióra lett átmásolva.
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki képfájl az ukify generálta le, és tartalmaz egy, a dracut által generált initramfs képfájl, majd az ESP partícióra lett átmásolva.
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl telepítése. Az uki az disztribúciós kernel szoftvercsomag által lett létrehozva, majd az ESP partícióra lett átmásolva.
/boot/grub/grub.cfg /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Elrendezések rEFInd-del
Egyszerű kernelképfájl telepítése, rEFInd-hez tartozó ikonnal.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/vmlinuz-x.y.z-gentoo-dist /boot/vmlinuz-x.y.z-gentoo-dist.png
Egyszerű kernelképfájl telepítése. A dracut által generált initramfs képfájllal és az rEFInd-hez tartozó ikonnal.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/initramfs-x.y.z-gentoo-dist.img /boot/vmlinuz-x.y.z-gentoo-dist /boot/vmlinuz-x.y.z-gentoo-dist.png
Egyszerű kernelképfájl telepítése rEFInd-hez tartozó ikonnal. Az initramfs képfájl a disztribúciós kernel szoftvercsomag által előre létre lett hozva.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/initramfs-x.y.z-gentoo-dist.img /boot/vmlinuz-x.y.z-gentoo-dist /boot/vmlinuz-x.y.z-gentoo-dist.png
Elrendezések egységes kernelképfájlokkal
Egységes kernelképfájl telepítése, a dracut által létrehozott initramfs képfájllal.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Egységes kernelképfájl (Unified Kernel Image) telepítése rEFInd-hez tartozó ikonnal. Az uki képfájlt az ukify hozta létre, majd az ESP partícióra lett átmásolva.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Egységes kernelképfájl telepítése rEFInd-hez tartozó ikonnal. Az uki képfájlt az ukify hozta létre, és tartalmaz egy, a dracut által létrehozott initramfs képfájlt, majd az ESP partícióra lett átmásolva.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Egységes kernelképfájl (Unified Kernel Image) telepítése rEFInd-hez tartozó ikonnal. Az uki képfájlt az disztribúciós kernel szoftvercsomag előre létrehozta, majd az ESP partícióra lett átmásolva.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi /${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.png
Elrendezések GRUB/systemd-boot/rEFInd nélküli (egyéb bootloaderek)
Egyszerű kernelképfájl telepítése.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/vmlinuz-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítése, a dracut által létrehozott initramfs képfájllal.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/initramfs-x.y.z-gentoo-dist.img /boot/vmlinuz-x.y.z-gentoo-dist
Egyszerű kernelképfájl telepítése. Az initramfs képfájlt az disztribúciós kernel szoftvercsomag létrehozta előre.
/boot/System.map-x.y.z-gentoo-dist /boot/config-x.y.z-gentoo-dist /boot/initramfs-x.y.z-gentoo-dist.img /boot/vmlinuz-x.y.z-gentoo-dist
Elrendezések egységes kernelképfájlokkal
Egységes kernelképfájl telepítése, a dracut által létrehozott uki képfájllal.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki képfájlt az ukify hozta létre, majd az ESP partícióra lett átmásolva.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki képfájlt az ukify hozta létre, és tartalmaz egy, a dracut által létrehozott initramfs képfájlt, majd az ESP partícióra lett átmásolva.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
Egységes kernelképfájl (Unified Kernel Image) telepítése. Az uki képfájl a disztribúciós kernel szoftvercsomag által lett létrehozva, majd az ESP partícióra lett átmásolva.
/${ESP}/EFI/Linux/gentoo-x.y.z-gentoo-dist.efi
További olvasnivaló a témában
- GRUB — egy multiboot másodlagos operációsrendszer-betöltő (bootloader) szoftver. A legtöbb rendszerarchitektúrán képes a bináris futtatható kernelképfájl betöltésére különféle fájlrendszereken.
- systemd-boot — a minimal UEFI boot manager.
- EFI stub
- initramfs — is used to prepare Linux systems during boot before the init process starts.
- Project:Distribution_Kernel — maintains sys-kernel/*-kernel packages.