kernel-install

systemd
Developer Harald Hoyer harald@redhat.com
kernel-install 8
kernel-install Add and remove kernel and initramfs images to and from /boot
`kernel-install` COMMAND KERNEL-VERSION KERNEL-IMAGE

## Description

`kernel-install` is used to install and remove kernel and initramfs images to and from `/boot`.

`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`

  `kernel-install` creates the directory `/boot/MACHINE-ID/KERNEL-VERSION/` and calls executables from `/usr/lib/kernel/install.d/*.install` and `/etc/kernel/install.d/*.install` with the arguments

      add KERNEL-VERSION \
          /boot/MACHINE-ID/KERNEL-VERSION/ KERNEL-IMAGE

  The kernel-install plugin `50-depmod.install` runs depmod for the KERNEL-VERSION.

  The kernel-install plugin `90-loaderentry.install` copies KERNEL-IMAGE to `/boot/MACHINE-ID/KERNEL-VERSION/linux`. It also creates a boot loader entry according to the boot loader specification 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 file `initrd` is found next to the `linux` file, the initrd will be added to the configuration.

`remove KERNEL-VERSION`

  Calls executables from `/usr/lib/kernel/install.d/*.install` and `/etc/kernel/install.d/*.install` with the arguments

      remove KERNEL-VERSION /boot/MACHINE-ID/KERNEL-VERSION/

  `kernel-install` removes the entire directory `/boot/MACHINE-ID/KERNEL-VERSION/` afterwards.

  The kernel-install plugin `90-loaderentry.install` removes the file `/boot/loader/entries/MACHINE-ID-KERNEL-VERSION.conf`.

## 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`

  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/machine-id`

  The content of the file specifies the machine identification MACHINE-ID.

`/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, Boot loader specification