1KERNEL-INSTALL(8) kernel-install KERNEL-INSTALL(8)
2
3
4
6 kernel-install - Add and remove kernel and initramfs images to and from
7 /boot
8
10 kernel-install COMMAND [OPTIONS...] KERNEL-VERSION KERNEL-IMAGE
11 [INITRD-FILE...]
12
14 kernel-install is used to install and remove kernel and initramfs
15 images to and from the boot loader partition, referred to as $BOOT
16 here. It will usually be one of /boot, /efi, or /boot/efi, see below.
17
18 kernel-install will execute the files located in the directory
19 /usr/lib/kernel/install.d/ and the local administration directory
20 /etc/kernel/install.d/. All files are collectively sorted and executed
21 in lexical order, regardless of the directory in which they live.
22 However, files with identical filenames replace each other. Files in
23 /etc/kernel/install.d/ take precedence over files with the same name in
24 /usr/lib/kernel/install.d/. This can be used to override a
25 system-supplied executables with a local file if needed; a symbolic
26 link in /etc/kernel/install.d/ with the same name as an executable in
27 /usr/lib/kernel/install.d/, pointing to /dev/null, disables the
28 executable entirely. Executables must have the extension ".install";
29 other extensions are ignored.
30
31 An executable should return 0 on success. It may also return 77 to
32 cause the whole operation to terminate (executables later in lexical
33 order will be skipped).
34
36 The following commands are understood:
37
38 add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE ...]
39 This command expects a kernel version string and a path to a kernel
40 image file as arguments. kernel-install calls the executables from
41 /usr/lib/kernel/install.d/*.install and
42 /etc/kernel/install.d/*.install with the following arguments:
43
44 add KERNEL-VERSION $BOOT/MACHINE-ID/KERNEL-VERSION/ KERNEL-IMAGE [INITRD-FILE ...]
45
46 Three default plugins execute the following operations in this
47 case:
48
49 · 00-entry-directory.install creates the directory
50 $BOOT/MACHINE-ID/KERNEL-VERSION/ if $BOOT/MACHINE-ID/ already
51 exists.
52
53 · 50-depmod.install runs depmod(8) for the KERNEL-VERSION.
54
55 · 90-loaderentry.install copies KERNEL-IMAGE to
56 $BOOT/MACHINE-ID/KERNEL-VERSION/linux. If an INITRD-FILE is
57 provided, it also copies INITRD-FILE to
58 $BOOT/MACHINE-ID/KERNEL_VERSION/INITRD-FILE. It also creates a
59 boot loader entry according to the Boot Loader Specification[1]
60 in $BOOT/loader/entries/MACHINE-ID-KERNEL-VERSION.conf. The
61 title of the entry is the PRETTY_NAME parameter specified in
62 /etc/os-release or /usr/lib/os-release (if the former is
63 missing), or "Linux KERNEL-VERSION", if unset.
64
65 If the entry directory $BOOT/MACHINE-ID/KERNEL-VERSION/ does
66 not exist, this plugin does nothing.
67
68 remove KERNEL-VERSION
69 This command expects a kernel version string as single argument.
70 This calls executables from /usr/lib/kernel/install.d/*.install and
71 /etc/kernel/install.d/*.install with the following arguments:
72
73 remove KERNEL-VERSION $BOOT/MACHINE-ID/KERNEL-VERSION/
74
75 Afterwards, kernel-install removes the directory
76 $BOOT/MACHINE-ID/KERNEL-VERSION/ and its contents.
77
78 Two default plugins execute the following operations in this case:
79
80 · 50-depmod.install removes the files generated by depmod for
81 this kernel again.
82
83 · 90-loaderentry.install removes the file
84 $BOOT/loader/entries/MACHINE-ID-KERNEL-VERSION.conf.
85
87 The partition where the kernels and Boot Loader Specification[1]
88 snippets are located is called $BOOT. kernel-install determines the
89 location of this partition by checking /efi/, /boot/, and /boot/efi in
90 turn. The first location where $BOOT/loader/entries/ or
91 $BOOT/$MACHINE_ID/ exists is used.
92
94 The following options are understood:
95
96 -v, --verbose
97 Output additional information about operations being performed.
98
99 -h, --help
100 Print a short help text and exit.
101
103 If --verbose is used, $KERNEL_INSTALL_VERBOSE=1 will be set for the
104 plugins. They may output additional logs in this case.
105
107 If every executable returns 0 or 77, 0 is returned, and a non-zero
108 failure code otherwise.
109
111 /usr/lib/kernel/install.d/*.install /etc/kernel/install.d/*.install
112 Drop-in files which are executed by kernel-install.
113
114 /etc/kernel/cmdline /proc/cmdline
115 Read by 90-loaderentry.install. The content of the file
116 /etc/kernel/cmdline specifies the kernel command line to use. If
117 that file does not exist, /proc/cmdline is used.
118
119 /etc/kernel/tries
120 Read by 90-loaderentry.install. If this file exists a numeric value
121 is read from it and the naming of the generated entry file is
122 slightly altered to include it as
123 $BOOT/loader/entries/MACHINE-ID-KERNEL-VERSION+TRIES.conf. This is
124 useful for boot loaders such as systemd-boot(7) which implement
125 boot attempt counting with a counter embedded in the entry file
126 name.
127
128 /etc/machine-id
129 The content of the file specifies the machine identification
130 MACHINE-ID.
131
132 /etc/os-release /usr/lib/os-release
133 The content of the file specifies the operating system title
134 PRETTY_NAME.
135
137 machine-id(5), os-release(5), depmod(8), systemd-boot(7), Boot Loader
138 Specification[1]
139
141 1. Boot Loader Specification
142 https://systemd.io/BOOT_LOADER_SPECIFICATION
143
144
145
146systemd 241 KERNEL-INSTALL(8)