首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ubuntu工具中实现`omit_drivers+=`效应?

如何在ubuntu工具中实现`omit_drivers+=`效应?
EN

Ask Ubuntu用户
提问于 2022-07-21 19:19:12
回答 1查看 403关注 0票数 0

我想防止一些司机在mkinitramfs期间被放入ramdisk。在fedora或arch中,有一些配置文件,我可以将类似于omit_drivers+=driver-a driver-b的内容放在其中,以避免某些模块。然后,我不需要在内核/驱动程序更新之后重新构建ramdisk。

我怎样才能在ubuntu实现这一点呢?我只找到通过initramfs.conf或/etc/initramfs-tools/模块添加额外模块的选项。但是我怎样才能把一些模块列入黑名单呢?

为了避免混淆:我不想黑名单的驱动程序,我实际上需要加载驱动程序后启动。我只是不想把模块放进ramdisk。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-09-30 21:58:45

在initramfs-tools中,似乎没有此dracut选项的等效设置。一种方法可以是使用自定义hook脚本删除内核模块。

下面是一个非常简单的示例,其中我从initramfs中删除了e1000.koe1000e.ko内核模块。

  1. 确认模块最初存在于initramfs中。
代码语言:javascript
复制
root@ubuntu:~# lsinitramfs /boot/initrd.img-$(uname -r) | grep e1000
usr/lib/modules/5.15.0-48-generic/kernel/drivers/net/ethernet/intel/e1000
usr/lib/modules/5.15.0-48-generic/kernel/drivers/net/ethernet/intel/e1000/e1000.ko
usr/lib/modules/5.15.0-48-generic/kernel/drivers/net/ethernet/intel/e1000e
usr/lib/modules/5.15.0-48-generic/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
  1. 创建一个hook脚本来删除模块并重新构建initramfs。
代码语言:javascript
复制
install -m 0755 /dev/null /etc/initramfs-tools/hooks/omit
cat <<'EOF' > /etc/initramfs-tools/hooks/omit
#!/bin/sh
PREREQ=""
prereqs()
{
   echo "$PREREQ"
}

case $1 in
prereqs)
   prereqs
   exit 0
   ;;
esac

. /usr/share/initramfs-tools/hook-functions
# Begin real processing below this line

OMIT_DRIVERS="e1000.ko e1000e.ko"
for i in ${OMIT_DRIVERS}; do
   find ${DESTDIR} -name ${i} -delete
done
EOF
update-initramfs -c -k $(uname -r)
  1. 确认重建的initramfs中没有包含这些模块。
代码语言:javascript
复制
root@ubuntu:~# lsinitramfs /boot/initrd.img-$(uname -r) | grep e1000
usr/lib/modules/5.15.0-48-generic/kernel/drivers/net/ethernet/intel/e1000
usr/lib/modules/5.15.0-48-generic/kernel/drivers/net/ethernet/intel/e1000e

hook脚本可能要灵活得多。我的示例的内容主要是基于man -7 initramfs-工具中的示例。

MODULES选项在initramfs.conf中也可能很有用。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1419837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档