运行dracut -f <pathToInitRamFs> <kernelVersion>
以将一些自定义驱动程序添加到 initramfs 会显示nvme
命令中的错误消息。
此外,它无法将这些自定义驱动程序复制到 initramfs 中,并显示
dracut-install: Failed to find module 'DtPcie' /lib/modules/4.18.0-147.el8.x86_64//kernel/drivers/misc/DtPcie.ko
即使该文件确实存在于根文件系统树中:
# 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
子树:
# 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)
原始错误消息
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
# 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
答案1
可以通过在 dracut 配置文件中手动指定缺少的模块来包含它们,网址为/etc/dracut.conf.d/myModules.conf
add_drivers+="Dta Dtu DtPcie"
(不要在 += 周围添加空格)
depmod -a
另外,请确保在使用 dracut 重建 initramfs 之前运行。
这不会修复nvme
命令中的错误。