kernel-install — Add and remove kernel and initramfs images to and from /boot
kernel-install   COMMAND  [OPTIONS...]  KERNEL-VERSION   KERNEL-IMAGE  [INITRD-FILE...]
kernel-install is used to install and remove kernel and initramfs images to and
    from the boot loader partition, referred to as $BOOT here. It will usually be one of
    /boot/, /efi/, or /boot/efi/, see below.
    
kernel-install will execute the files
    located in the directory /usr/lib/kernel/install.d/
    and the local administration directory /etc/kernel/install.d/.
    All files are collectively sorted and executed in lexical order, regardless of the directory in
    which they live. However, files with identical filenames replace each other.
    Files in /etc/kernel/install.d/ take precedence over files with the same name
    in /usr/lib/kernel/install.d/. This can be used to override a system-supplied
    executables with a local file if needed; a symbolic link in /etc/kernel/install.d/
    with the same name as an executable in /usr/lib/kernel/install.d/,
    pointing to /dev/null, disables the executable entirely. Executables must have the
    extension ".install"; other extensions are ignored.
An executable should return 0 on success. It may also
    return 77 to cause the whole operation to terminate
    (executables later in lexical order will be skipped).
The following commands are understood:
KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE ...]¶This command expects a kernel version string and a path to a kernel image file as
          arguments. kernel-install calls the executables from
          /usr/lib/kernel/install.d/*.install and
          /etc/kernel/install.d/*.install with the following arguments:
          
addKERNEL-VERSION$BOOT/MACHINE-ID/KERNEL-VERSION/KERNEL-IMAGE[INITRD-FILE...]
Two default plugins execute the following operations in this case:
kernel-install creates
            $BOOT/,
            if enabled (see MACHINE-ID/KERNEL-VERSION$KERNEL_INSTALL_LAYOUT=).
50-depmod.install runs
            depmod(8) for the
            KERNEL-VERSION.
90-loaderentry.install
            copies KERNEL-IMAGE to
            $BOOT/.
            If MACHINE-ID/KERNEL-VERSION/linuxINITRD-FILEs are provided, it also copies them to
            $BOOT/.
            It also creates a boot loader entry according to the Boot Loader Specification in
            MACHINE-ID/KERNEL_VERSION/INITRD-FILE$BOOT/loader/entries/.
            The title of the entry is the MACHINE-ID-KERNEL-VERSION.confPRETTY_NAME parameter specified in
            /etc/os-release or /usr/lib/os-release (if the former is
            missing), or "Linux KERNEL-VERSION", if unset.
If $KERNEL_INSTALL_LAYOUT= is not "bls", this plugin does nothing.
KERNEL-VERSION¶This command expects a kernel version string as single argument. This calls executables from
          /usr/lib/kernel/install.d/*.install and
          /etc/kernel/install.d/*.install with the following arguments:
          
removeKERNEL-VERSION$BOOT/MACHINE-ID/KERNEL-VERSION/
Afterwards, kernel-install removes the directory
          $BOOT/
          and its contents.MACHINE-ID/KERNEL-VERSION/
Two default plugins execute the following operations in this case:
50-depmod.install removes the files generated by depmod for this kernel again.
90-loaderentry.install removes the file
            $BOOT/loader/entries/.MACHINE-ID-KERNEL-VERSION.conf
kernel-install removes
            $BOOT/,
            if enabled (see MACHINE-ID/KERNEL-VERSION$KERNEL_INSTALL_LAYOUT=).
$BOOT partition¶The partition where the kernels and Boot
    Loader Specification snippets are located is called $BOOT.
    kernel-install determines the location of this partition by checking
    /efi/, /boot/, and /boot/efi/
    in turn. The first location where $BOOT/loader/entries/ or
    $BOOT/$MACHINE_ID/ exists is used.
If --verbose is used, $KERNEL_INSTALL_VERBOSE=1 will be set for
    the plugins. They may output additional logs in this case.
If MACHINE_ID= is set and not empty, it will be used as MACHINE-ID,
    overriding any automatic detection attempts.  The value must be a valid machine ID (32 hexadecimal characters).
KERNEL_INSTALL_MACHINE_ID= is set for the plugins to the desired MACHINE-ID –
    either 32 hexadecimal characters or the special value "Default".
KERNEL_INSTALL_BOOT_ROOT= is set for the plugins to the root directory (mount point, usually) of the hierarchy
    where boot-loader entries, kernel images, and associated resources should be placed. Can be overridden by setting BOOT_ROOT=.
KERNEL_INSTALL_LAYOUT=bls|other|... specifies the installation layout.
    Defaults to bls if $BOOT/ exists, or MACHINE-IDother otherwise.
    Additional layout names may be defined by convention. If a plugin uses a special layout,
    it's encouraged to declare its own layout name and configure layout= in install.conf upon initial installation.
Standard Boot Loader Specification layout,
          compatible with systemd-boot(7): entries in
          $BOOT/loader/entries/,
          kernel and initrds under MACHINE-ID-KERNEL-VERSION[+TRIES].conf$BOOT/MACHINE-ID/KERNEL-VERSION/
Provided by 90-loaderentry.install.
Some other layout not understood natively by kernel-install.
If every executable returns 0 or 77, 0 is returned, and a non-zero failure code otherwise.
/usr/lib/kernel/install.d/*.install
          /etc/kernel/install.d/*.install
        ¶Drop-in files which are executed by kernel-install.
/usr/lib/kernel/cmdline
          /etc/kernel/cmdline
          /proc/cmdline
        ¶Read by 90-loaderentry.install. The content of the file
            /etc/kernel/cmdline specifies the kernel command line to use.  If that file does not
            exist, /usr/lib/kernel/cmdline is used.  If that also does not exist,
            /proc/cmdline is used.
/etc/kernel/tries
        ¶Read by 90-loaderentry.install. If this file exists a numeric value is read from
            it and the naming of the generated entry file is slightly altered to include it as
            $BOOT/loader/entries/. This
            is useful for boot loaders such as
            systemd-boot(7) which
            implement boot attempt counting with a counter embedded in the entry file name.MACHINE-ID-KERNEL-VERSION+TRIES.conf
/etc/machine-id
        ¶The content of this file specifies the machine identification
            MACHINE-ID. If /etc/machine-id
            cannot be read or is temporary (backed by a file on tmpfs),
            kernel-install will use "Default" instead.
/etc/machine-info
        ¶If this file contains the KERNEL_INSTALL_MACHINE_ID variable,
            kernel-install will use it as MACHINE-ID instead of
            the contents of /etc/machine-id. If the variable is not found in
            /etc/machine-info, kernel-install will try to save the
            machine ID it uses to install to $BOOT to this file.
/etc/os-release
          /usr/lib/os-release
        ¶Read by 90-loaderentry.install.
            If available, PRETTY_NAME is read from these files and used as the title of the boot menu entry.
            Otherwise, "Linux " will be used.KERNEL-VERSION
/usr/lib/kernel/install.conf
          /etc/kernel/install.conf
        ¶Configuration options for kernel-install,
            as a series of KEY=VALUE assignments,
            compatible with shell syntax.
            See the Environment variables section for supported keys.