3.10. 防止在系统引导时自动载入内核模块
您可以通过使用相应的命令在 modprobe
配置文件中列出模块,来防止系统在引导过程中自动载入内核模块。
先决条件
-
此流程中的命令需要 root 权限。使用
su -
切换到 root 用户,或在命令前使用sudo
。 -
kmod
软件包已安装。 - 确定您当前的系统配置不需要您计划拒绝的内核模块。
流程
使用
lsmod
命令列出载入到当前运行的内核的模块:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在输出中,识别您要防止加载的模块。
或者,识别您要防止在
/lib/modules/<KERNEL-VERSION>/kernel/<SUBSYSTEM>/
目录中加载的而未加载的内核模块,例如:ls /lib/modules/6.12.0-55.9.1.el10_0.x86_64/kernel/crypto/
$ ls /lib/modules/6.12.0-55.9.1.el10_0.x86_64/kernel/crypto/ ansi_cprng.ko.xz chacha20poly1305.ko.xz md4.ko.xz serpent_generic.ko.xz anubis.ko.xz cmac.ko.xz…
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个配置文件作为 denylist :
touch /etc/modprobe.d/denylist.conf
# touch /etc/modprobe.d/denylist.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您选择的文本编辑器中,使用
blacklist
配置命令将您要从自动加载到内核中排除的模块的名称组合在一起,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因为
blacklist
命令不会阻止模块作为不在 denylist 中的另一个内核模块的依赖项加载,所以您还必须定义install
行。在这种情况下,系统运行/bin/false
,而不是安装模块。以哈希符号开头的行是注释,您可以用来使文件更易读。注意在输入内核模块的名称时,不要将
.ko.xz
扩展附加到名称的末尾。内核模块名称没有扩展名,它们对应的文件有。在重建前,创建当前初始 RAM 磁盘镜像的一个备份副本:
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,创建与您要阻止内核模块自动载入的内核版本对应的初始 RAM 磁盘镜像的一个备份副本:
cp /boot/initramfs-<VERSION>.img /boot/initramfs-<VERSION>.img.bak.$(date +%m-%d-%H%M%S)
# cp /boot/initramfs-<VERSION>.img /boot/initramfs-<VERSION>.img.bak.$(date +%m-%d-%H%M%S)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
生成一个新的初始 RAM 磁盘镜像以应用更改:
dracut -f -v
# dracut -f -v
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您为与您系统当前使用的内核版本不同的系统构建初始 RAM 磁盘镜像,请指定目标
initramfs
和内核版本:dracut -f -v /boot/initramfs-<TARGET-VERSION>.img <CORRESPONDING-TARGET-KERNEL-VERSION>
# dracut -f -v /boot/initramfs-<TARGET-VERSION>.img <CORRESPONDING-TARGET-KERNEL-VERSION>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重启系统:
reboot
$ reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要此流程中描述的更改将在重启后生效并保留。如果您在 denylist 中错误地列出了关键内核模块,您可以将系统切换到不稳定或无法正常工作的状态。