Linux系统下kernel-install命令详解

kernel-install是一个用于在/boot中添加或删除内核与initrd镜像的工具。它会执行一系列可执行插件,如50-depmod.install和90-loaderentry.install,进行内核依赖更新和启动项配置。通过`add`命令添加内核,`remove`命令移除。插件执行成功返回0,返回77则终止后续操作。内核版本、镜像文件路径等信息是命令的关键参数。
摘要由CSDN通过智能技术生成

简介

kernel-install — 在 /boot 中添加或删除内核与 initrd 镜像

参数使用

kernel-install COMMAND KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE…]
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 则表示彻底终止整个操作, 也就是所有字典顺序上的后续可执行文件都将被跳过。

命令详解

可以使用的命令如下:

add 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 插件时向它们传递如下参数:

add KERNEL-VERSION /boot/MACHINE-ID/KERNEL-VERSION/ KERNEL-IMAGE [INITRD-FILE …]

有两个默认的插件将会被调用,并执行下列操作:
50-depmod.install 将会以 KERNEL-VERSION 为参数调用 depmod(8) 工具(创建内核模块之间依赖关系的描述文件)。
90-loaderentry.install 将会:
(1)把 KERNEL-IMAGE 复制到 /boot/MACHINE-ID/KERNEL-VERSION/linux;
(2)把 INITRD-FILE(若存在) 复制到 /boot/MACHINE-ID/KERNEL_VERSION/INITRD-FILE ;
(3)按照 Boot Loader Specification 规范创建一个 /boot/loader/entries/MACHINE-ID-KERNEL-VERSION.conf 启动项描述文件,启动项标题将被设为 /etc/os-release 或 /usr/lib/os-release(如果前一个不存在) 中 PRETTY_NAME 值(若不存在则使用"Linux KERNEL-VERSION")。

实例操作

kernel-install add 3.10.0 /boot/vmlinuz-3.10.0

#remove KERNEL-VERSION

KERNEL-VERSION 是内核版本字符串。该命令在调用 /usr/lib/kernel/install.d/.install 与 /etc/kernel/install.d/.install 插件时向它们传递如下参数:

remove KERNEL-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 文件。

退出状态

如果每一个可执行插件都返回 0 或 77 ,那么返回 0 表示成功;否则返回非零值表示失败。

文件

/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/MACHINE-ID-KERNEL-VERSION+TRIES.conf)。 对于实现了启动计数机制的 systemd-boot(7) 引导管理器来说,是很有意义的。
/etc/machine-id

记录了本系统的 MACHINE-ID
/etc/os-release /usr/lib/os-release

记录了用作启动选项标题的 PRETTY_NAME

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值