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:
add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE ...]
add KERNEL-VERSION $BOOT/MACHINE-ID/KERNEL-VERSION/ KERNEL-IMAGE [INITRD-FILE ...]
Three default plugins execute the following operations in this case:
If the entry directory $BOOT/MACHINE-ID/KERNEL-VERSION/ does not exist, this plugin does nothing.
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:
THE $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.
The following options are understood:
If --verbose is used, $KERNEL_INSTALL_VERBOSE=1 will be set for the plugins. They may output additional logs in this case.
If every executable returns 0 or 77, 0 is returned, and a non-zero failure code otherwise.
- Boot Loader Specification