KERNEL-INSTALL(8)                               KERNEL-INSTALL(8)

     NAME
          kernel-install - Add and remove kernel and initramfs images
          to and from /boot

     SYNOPSIS
          kernel-install COMMAND [OPTIONS...] KERNEL-VERSION
                         KERNEL-IMAGE [INITRD-FILE...]

     DESCRIPTION
          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).

     COMMANDS
          The following commands are understood:

          add 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:

                  add KERNEL-VERSION $BOOT/MACHINE-ID/KERNEL-VERSION/ KERNEL-IMAGE [INITRD-FILE ...]

              Three default plugins execute the following operations
              in this case:

              +o   00-entry-directory.install creates the directory

     Page 1                     systemd 247          (printed 5/25/22)

     KERNEL-INSTALL(8)                               KERNEL-INSTALL(8)

                  $BOOT/MACHINE-ID/KERNEL-VERSION/ if
                  $BOOT/MACHINE-ID/ already exists.

              +o   50-depmod.install runs depmod(8) for the
                  KERNEL-VERSION.

              +o   90-loaderentry.install copies KERNEL-IMAGE to
                  $BOOT/MACHINE-ID/KERNEL-VERSION/linux. If an
                  INITRD-FILE is provided, it also copies INITRD-FILE
                  to $BOOT/MACHINE-ID/KERNEL_VERSION/INITRD-FILE. It
                  also creates a boot loader entry according to the
                  m[blue]Boot Loader Specificationm[][1] in
                  $BOOT/loader/entries/MACHINE-ID-KERNEL-VERSION.conf.
                  The title of the entry is the PRETTY_NAME parameter
                  specified in /etc/os-release or /usr/lib/os-release
                  (if the former is missing), or "Linux
                  KERNEL-VERSION", if unset.

                  If the entry directory
                  $BOOT/MACHINE-ID/KERNEL-VERSION/ does not exist,
                  this plugin does nothing.

          remove 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:

                  remove KERNEL-VERSION $BOOT/MACHINE-ID/KERNEL-VERSION/

              Afterwards, kernel-install removes the directory
              $BOOT/MACHINE-ID/KERNEL-VERSION/ and its contents.

              Two default plugins execute the following operations in
              this case:

              +o   50-depmod.install removes the files generated by
                  depmod for this kernel again.

              +o   90-loaderentry.install removes the file
                  $BOOT/loader/entries/MACHINE-ID-KERNEL-VERSION.conf.

     THE FI$BOOTFR PARTITION
          The partition where the kernels and m[blue]Boot Loader
          Specificationm[][1] 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.

     OPTIONS

     Page 2                     systemd 247          (printed 5/25/22)

     KERNEL-INSTALL(8)                               KERNEL-INSTALL(8)

          The following options are understood:

          -v, --verbose
              Output additional information about operations being
              performed.

          -h, --help
              Print a short help text and exit.

     ENVIRONMENT VARIABLES
          If --verbose is used, $KERNEL_INSTALL_VERBOSE=1 will be set
          for the plugins. They may output additional logs in this
          case.

     EXIT STATUS
          If every executable returns 0 or 77, 0 is returned, and a
          non-zero failure code otherwise.

     FILES
          /usr/lib/kernel/install.d/*.install
          /etc/kernel/install.d/*.install
              Drop-in files which are executed by kernel-install.

          /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, /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/MACHINE-ID-KERNEL-VERSION+TRIES.conf.
              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.

          /etc/machine-id
              The content of this file specifies the machine
              identification MACHINE-ID. If it cannot read
              /etc/machine-id, kernel-install will use "Linux" as the
              machine ID instead.

          /etc/os-release /usr/lib/os-release
              The content of the file specifies the operating system
              title PRETTY_NAME.

     SEE ALSO
          machine-id(5), os-release(5), depmod(8), systemd-boot(7),
          m[blue]Boot Loader Specificationm[][1]



     Page 3                     systemd 247          (printed 5/25/22)

     KERNEL-INSTALL(8)                               KERNEL-INSTALL(8)

     NOTES
           1. Boot Loader Specification
              https://systemd.io/BOOT_LOADER_SPECIFICATION

     Page 4                     systemd 247          (printed 5/25/22)