Centos
dracut -f 顯示“找不到模組”和 nvme 錯誤消息
執行以將一些自定義驅動程序添加到 initramfs 會顯示來自命令
dracut -f <pathToInitRamFs> <kernelVersion>
的錯誤消息。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
可以通過在 dracut 配置文件中手動指定缺少的模組來包含它們
/etc/dracut.conf.d/myModules.conf
add_drivers+="Dta Dtu DtPcie"
(不要在 += 周圍加空格)
此外,請確保
depmod -a
在使用 dracut 重建 initramfs 之前執行。這不會修復
nvme
命令中的錯誤。