rpm必知100问:安装内核rpm包会自动修改grub引导项吗?
问题
rpm -qp --scripts kernel-5.10.134-17.an8.x86_64.rpm 没有找到post script,那么它是怎么触发grub更新呢?
线索
通过yum install kernel-5.10.134-17.an8.x86_64 安装内核时,发现它同时依赖多个rpm包:
- kernel-core
- kernel-modules
- kernel-modules-extra
- kernel-modules-internal
结果
其中涉及到grub的有两个:
- kernel-core
[root@localhost test]# rpm -q --scripts kernel-core
postinstall scriptlet (using /bin/sh):
...snip...
/bin/kernel-install add 5.10.134-17.an8.x86_64 /lib/modules/5.10.134-17.an8.x86_64/vmlinuz || exit $?
grubby --update-kernel /boot/vmlinuz-5.10.134-17.an8.x86_64 --args=" cgroup.memory=nokmem crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M kfence.sample_interval=100 kfence.booting_max=0-2G:0,2G-32G:2M,32G-:32M preempt=none"
- kernel-modules
[root@localhost test]# rpm -q --scripts kernel-modules
postinstall scriptlet (using /bin/sh):
/sbin/depmod -a 5.10.134-16.3.an8.x86_64
postuninstall scriptlet (using /bin/sh):
/sbin/depmod -a 5.10.134-16.3.an8.x86_64
posttrans scriptlet (using /bin/sh):
/bin/kernel-install add 5.10.134-16.3.an8.x86_64 /lib/modules/5.10.134-16.3.an8.x86_64/vmlinuz || exit $?
grubby --update-kernel /boot/vmlinuz-5.10.134-16.3.an8.x86_64 --args="cgroup.memory=nokmem crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M"
postinstall scriptlet (using /bin/sh):
/sbin/depmod -a 5.10.134-18.an8.x86_64
postuninstall scriptlet (using /bin/sh):
/sbin/depmod -a 5.10.134-18.an8.x86_64
posttrans scriptlet (using /bin/sh):
/bin/kernel-install add 5.10.134-18.an8.x86_64 /lib/modules/5.10.134-18.an8.x86_64/vmlinuz || exit $?
grubby --update-kernel /boot/vmlinuz-5.10.134-18.an8.x86_64 --args=" cgroup.memory=nokmem crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-376G:384M,376G-:448M kfence.sample_interval=100 kfence.booting_max=0-2G:0,2G-32G:2M,32G-:32M preempt=none"
postinstall scriptlet (using /bin/sh):
/sbin/depmod -a 5.10.134-17.an8.x86_64
postuninstall scriptlet (using /bin/sh):
/sbin/depmod -a 5.10.134-17.an8.x86_64
posttrans scriptlet (using /bin/sh):
/bin/kernel-install add 5.10.134-17.an8.x86_64 /lib/modules/5.10.134-17.an8.x86_64/vmlinuz || exit $?
grubby --update-kernel /boot/vmlinuz-5.10.134-17.an8.x86_64 --args=" cgroup.memory=nokmem crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M kfence.sample_interval=100 kfence.booting_max=0-2G:0,2G-32G:2M,32G-:32M preempt=none"
完整安装过程:
[root@localhost test]# yum install kernel-5.10.134-17.an8.x86_64
AnolisOS-8 - Kernel 5.10 145 kB/s | 4.3 kB 00:00
依赖关系解决。
===============================================================================================================================================
软件包 架构 版本 仓库 大小
===============================================================================================================================================
安装:
kernel x86_64 5.10.134-17.an8 kernel-5.10 713 k
安装依赖关系:
kernel-core x86_64 5.10.134-17.an8 kernel-5.10 30 M
kernel-modules x86_64 5.10.134-17.an8 kernel-5.10 22 M
kernel-modules-extra x86_64 5.10.134-17.an8 kernel-5.10 1.2 M
kernel-modules-internal x86_64 5.10.134-17.an8 kernel-5.10 827 k
移除:
kernel x86_64 5.10.134-16.2.an8 @anaconda 0
kernel-core x86_64 5.10.134-16.2.an8 @anaconda 139 M
kernel-modules x86_64 5.10.134-16.2.an8 @anaconda 98 M
kernel-modules-extra x86_64 5.10.134-16.2.an8 @anaconda 2.3 M
kernel-modules-internal x86_64 5.10.134-16.2.an8 @anaconda 575 k
事务概要
===============================================================================================================================================
安装 5 软件包
移除 5 软件包
总下载:54 M
确定吗?[y/N]: y
下载软件包:
(1/5): kernel-5.10.134-17.an8.x86_64.rpm 990 kB/s | 713 kB 00:00
(2/5): kernel-modules-extra-5.10.134-17.an8.x86_64.rpm 1.0 MB/s | 1.2 MB 00:01
(3/5): kernel-modules-internal-5.10.134-17.an8.x86_64.rpm 1.0 MB/s | 827 kB 00:00
(4/5): kernel-modules-5.10.134-17.an8.x86_64.rpm 1.6 MB/s | 22 MB 00:13
(5/5): kernel-core-5.10.134-17.an8.x86_64.rpm 1.9 MB/s | 30 MB 00:15
-----------------------------------------------------------------------------------------------------------------------------------------------
总计 3.4 MB/s | 54 MB 00:15
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : kernel-core-5.10.134-17.an8.x86_64 1/10
运行脚本: kernel-core-5.10.134-17.an8.x86_64 1/10
安装 : kernel-modules-5.10.134-17.an8.x86_64 2/10
运行脚本: kernel-modules-5.10.134-17.an8.x86_64 2/10
安装 : kernel-modules-extra-5.10.134-17.an8.x86_64 3/10
运行脚本: kernel-modules-extra-5.10.134-17.an8.x86_64 3/10
安装 : kernel-modules-internal-5.10.134-17.an8.x86_64 4/10
运行脚本: kernel-modules-internal-5.10.134-17.an8.x86_64 4/10
安装 : kernel-5.10.134-17.an8.x86_64 5/10
运行脚本: kernel-5.10.134-17.an8.x86_64 5/10
删除 : kernel-5.10.134-16.2.an8.x86_64 6/10
运行脚本: kernel-5.10.134-16.2.an8.x86_64 6/10
删除 : kernel-modules-extra-5.10.134-16.2.an8.x86_64 7/10
运行脚本: kernel-modules-extra-5.10.134-16.2.an8.x86_64 7/10
删除 : kernel-modules-internal-5.10.134-16.2.an8.x86_64 8/10
运行脚本: kernel-modules-internal-5.10.134-16.2.an8.x86_64 8/10
删除 : kernel-modules-5.10.134-16.2.an8.x86_64 9/10
运行脚本: kernel-modules-5.10.134-16.2.an8.x86_64 9/10
运行脚本: kernel-core-5.10.134-16.2.an8.x86_64 10/10
删除 : kernel-core-5.10.134-16.2.an8.x86_64 10/10
运行脚本: kernel-core-5.10.134-16.2.an8.x86_64 10/10
运行脚本: kernel-core-5.10.134-17.an8.x86_64 10/10
运行脚本: kernel-modules-5.10.134-17.an8.x86_64 10/10
运行脚本: kernel-core-5.10.134-16.2.an8.x86_64 10/10
验证 : kernel-5.10.134-17.an8.x86_64 1/10
验证 : kernel-core-5.10.134-17.an8.x86_64 2/10
验证 : kernel-modules-5.10.134-17.an8.x86_64 3/10
验证 : kernel-modules-extra-5.10.134-17.an8.x86_64 4/10
验证 : kernel-modules-internal-5.10.134-17.an8.x86_64 5/10
验证 : kernel-5.10.134-16.2.an8.x86_64 6/10
验证 : kernel-core-5.10.134-16.2.an8.x86_64 7/10
验证 : kernel-modules-5.10.134-16.2.an8.x86_64 8/10
验证 : kernel-modules-extra-5.10.134-16.2.an8.x86_64 9/10
验证 : kernel-modules-internal-5.10.134-16.2.an8.x86_64 10/10
已安装:
kernel-5.10.134-17.an8.x86_64 kernel-core-5.10.134-17.an8.x86_64 kernel-modules-5.10.134-17.an8.x86_64
kernel-modules-extra-5.10.134-17.an8.x86_64 kernel-modules-internal-5.10.134-17.an8.x86_64
已移除:
kernel-5.10.134-16.2.an8.x86_64 kernel-core-5.10.134-16.2.an8.x86_64 kernel-modules-5.10.134-16.2.an8.x86_64
kernel-modules-extra-5.10.134-16.2.an8.x86_64 kernel-modules-internal-5.10.134-16.2.an8.x86_64
完毕!