首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dracut -f显示“找不到模块”和nvme错误消息

dracut -f显示“找不到模块”和nvme错误消息
EN

Unix & Linux用户
提问于 2021-07-04 08:10:15
回答 1查看 2.9K关注 0票数 1

运行dracut -f <pathToInitRamFs> <kernelVersion>向initramfs添加一些自定义驱动程序将显示来自nvme命令的错误消息。

此外,它无法将那些自定义驱动程序复制到initramfs中,例如

代码语言:javascript
复制
dracut-install: Failed to find module 'DtPcie' /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/DtPcie.ko

即使根文件系统树中确实存在该文件:

代码语言:javascript
复制
# ls -l /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/Dta.ko
-rw-r--r-- 1 root root 56015744 Jul  6 13:03 /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/Dta.ko

lsinitrd确认initramfs不包含Dta.ko驱动程序(实际上也不包含整个drivers/misc子树):

代码语言:javascript
复制
# lsinitrd /boot/initramfs-4.18.0-147.el8.x86_64.img | grep Dta
# (nothing)
# lsinitrd /boot/initramfs-4.18.0-147.el8.x86_64.img | grep misc
# (nothing)

原始错误消息

代码语言:javascript
复制
dracut -f /boot/initramfs-4.18.0-147.el8.x86_64.img 4.18.0-147.el8.x86_64
nvme-1.9.dirty
usage: nvme <command> [<device>] [<args>]

The '<device>' may be either an NVMe character device (ex: /dev/nvme0) or an
nvme block device (ex: /dev/nvme0n1).

The following are all implemented sub-commands:
  list                  List all NVMe devices and namespaces on machine
  list-subsys           List nvme subsystems
  id-ctrl               Send NVMe Identify Controller
  etc etc etc

See 'nvme <plugin> help' for more information on a plugin

dracut-install: Failed to find module 'DtPcie' /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/DtPcie.ko
dracut-install: Failed to find module 'Dta' /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/Dta.ko
dracut-install: Failed to find module 'Dtu' /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/Dtu.ko
dracut-install: Failed to find module 'LXV4L2D_PL330B' /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/LXV4L2D_PL330B.ko

这与使用任何所需的参数单独键入nvme的输出是相同的。

除了使用上面的命令重新构建initramfs之外,我没有使用dracut做任何事情。但这条错误信息正在发出。

我需要那些模块在initramfs中,而且我以前从未见过这个dracut错误。我该怎么解决呢?

系统信息: Centos 8.1

代码语言:javascript
复制
# uname -a
Linux 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

# yum list installed | grep dracut
dracut.x86_64                        049-27.git20190906.el8                 @anaconda
dracut-config-rescue.x86_64          049-27.git20190906.el8                 @anaconda
dracut-network.x86_64                049-27.git20190906.el8                 @anaconda
dracut-squash.x86_64                 049-27.git20190906.el8                 @anaconda
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-07-06 06:00:24

可以在/etc/dracut.conf.d/myModules.conf的dracut配置文件中手动指定缺少的模块。

代码语言:javascript
复制
add_drivers+="Dta Dtu DtPcie"

(不要在+=周围留一个空间)

此外,在使用dracut重新构建initramfs之前,请确保运行depmod -a

这并不修复nvme命令中的错误。

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

https://unix.stackexchange.com/questions/656929

复制
相关文章

相似问题

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