本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
kernel-install — 在 /boot 中添加或删除内核与 initrd 镜像
kernel-install
COMMAND KERNEL-VERSION
KERNEL-IMAGE
[INITRD-FILE
...]
kernel-install 用于在 /boot
中添加或删除内核与 initrd 镜像。
kernel-install 将会执行
/usr/lib/kernel/install.d/
与 /etc/kernel/install.d/
目录下的可执行文件。
所有可执行文件,无论它位于哪个目录,都统一按照文件名的字典顺序依次执行。
因为
/etc/kernel/install.d/
目录下的文件会取代
/usr/lib/kernel/install.d/
目录下的同名文件,
所以,如果系统管理员想要屏蔽 /usr/lib/kernel/install.d/
目录中的某个可执行文件,那么最佳做法是在 /etc/kernel/install.d/
目录中创建一个指向 /dev/null
的同名符号链接。
注意,可执行文件必须以 ".install
" 作为后缀名,否则将被忽略。
这些可执行文件在执行成功后必须返回 0
。
如果返回 77
则表示彻底终止整个操作,
也就是所有字典顺序上的后续可执行文件都将被跳过。
可以使用的命令如下:
KERNEL-VERSION
KERNEL-IMAGE
[INITRD-FILE
...]¶KERNEL-VERSION
是内核版本字符串、KERNEL-IMAGE
是内核镜像文件的路径。
kernel-install 将会创建
/boot/
目录,并在调用 MACHINE-ID
/KERNEL-VERSION
//usr/lib/kernel/install.d/*.install
与
/etc/kernel/install.d/*.install
插件时向它们传递如下参数:
addKERNEL-VERSION
/boot/
MACHINE-ID
/KERNEL-VERSION
/KERNEL-IMAGE
[INITRD-FILE
...]
有两个默认的插件将会被调用,并执行下列操作:
50-depmod.install
将会以
KERNEL-VERSION
为参数调用
depmod(8) 工具(创建内核模块之间依赖关系的描述文件)。
90-loaderentry.install
将会:(1)把 KERNEL-IMAGE
复制到
/boot/
、
(2)把 MACHINE-ID
/KERNEL-VERSION
/linuxINITRD-FILE
(若存在)
复制到
/boot/
、
(3)按照 Boot Loader Specification 规范创建一个
MACHINE-ID
/KERNEL_VERSION
/INITRD-FILE
/boot/loader/entries/
启动项描述文件,启动项标题将被设为
MACHINE-ID
-KERNEL-VERSION
.conf/etc/os-release
或 /usr/lib/os-release
(如果前一个不存在)
中 PRETTY_NAME
值(若不存在则使用"Linux KERNEL-VERSION
")。
KERNEL-VERSION
¶KERNEL-VERSION
是内核版本字符串。该命令在调用
/usr/lib/kernel/install.d/*.install
与
/etc/kernel/install.d/*.install
插件时向它们传递如下参数:
removeKERNEL-VERSION
/boot/
MACHINE-ID
/KERNEL-VERSION
/
然后 kernel-install 将会完整删除整个
/boot/
目录及其内容。MACHINE-ID
/KERNEL-VERSION
/
有两个默认的插件将会被调用,并执行下列操作:
50-depmod.install
将会删除由 depmod 命令为该内核生成的文件。
90-loaderentry.install
将会删除
/boot/loader/entries/
文件。MACHINE-ID
-KERNEL-VERSION
.conf
/usr/lib/kernel/install.d/*.install
/etc/kernel/install.d/*.install
¶可执行插件(一般都是脚本)
/etc/kernel/cmdline
/proc/cmdline
¶将会被 90-loaderentry.install
插件读取。
/etc/kernel/cmdline
记录了内核引导选项。
如果该文件不存在,则使用 /proc/cmdline
文件。
/etc/kernel/tries
¶如果该文件存在,那么 90-loaderentry.install
插件将会从中读取一个整数值。
在生成启动项描述文件时,该整数将被嵌入文件名称中(也就是
/boot/loader/entries/
)。
对于实现了启动计数机制的
systemd-boot(7)
引导管理器来说,是很有意义的。MACHINE-ID
-KERNEL-VERSION
+TRIES
.conf
/etc/machine-id
¶记录了本系统的 MACHINE-ID
/etc/os-release
/usr/lib/os-release
¶记录了用作启动选项标题的 PRETTY_NAME