0

0

initramfs 缺少驱动导致根分区挂载失败的 dracut --add 补救方法

舞夢輝影

舞夢輝影

发布时间:2026-01-21 17:23:31

|

232人浏览过

|

来源于php中文网

原创

当initramfs缺少存储或文件系统驱动时,系统会卡在“dracut-initqueue timeout”或报“Unable to find root device”,需用dracut -f --force-drivers注入缺失模块(如nvme、dm-mod、btrfs等),并更新GRUB配置。

initramfs 缺少驱动导致根分区挂载失败的 dracut --add 补救方法

当 initramfs 中缺少必要的存储或文件系统驱动(如 NVMe、RAID、LVM、Btrfs、ZFS 等),系统启动时会卡在“dracut-initqueue timeout”或直接报错“Unable to find root device”,无法挂载根分区。此时可借助 dracut --add 在已启动的系统中重建 initramfs 并注入缺失模块。

确认缺失的驱动类型

先判断是哪类驱动未被包含:

  • NVMe/SCSI/SATA 控制器驱动:如 nvmeahcihpsampt3sas
  • 逻辑层驱动:如 dm-mod(Device Mapper)、dm-raidraid1raid10
  • LVM/Btrfs/ZFS 支持:如 lvm2btrfszfs(需对应内核模块 + userspace 工具
  • 加密模块:如 dm-cryptaesni_intelsha256_generic

可通过 lsmod | grep -E 'nvme|raid|dm|btrfs|zfs|crypt'find /lib/modules/$(uname -r) -name '*.ko*' | grep -i 'nvme\|raid\|btrfs' 辅助定位。

使用 dracut --add 手动添加驱动模块

--add 本身不直接加内核模块,而是用于添加自定义 dracut 模块目录(含 module-setup.sh)。但更常用且直接的方式是用 --force-drivers--include 注入驱动:

  • 强制包含内核模块(推荐):
    dracut -f --force-drivers "nvme ahci dm-mod dm-raid btrfs"
  • 若模块名不明确,可先查路径再 include:
    modinfo nvme | grep ^filename → 得到 /lib/modules/5.15.0-xx-generic/kernel/drivers/nvme/host/nvme.ko.xz,然后:
    dracut -f --include /lib/modules/$(uname -r)/kernel/drivers/nvme/host/nvme.ko.xz lib/modules/nvme.ko.xz
  • 确保 LVM/加密支持启用:
    dracut -f --regenerate-all --force(前提是 lvm2cryptsetup 已安装,且 /etc/dracut.conf.d/ 中未禁用 add_dracutmodules+="lvm crypt"

验证并更新引导配置

重建后检查 initramfs 是否包含目标模块:

造梦阁AI
造梦阁AI

AI小说推文一键成片,你的故事值得被看见

下载
  • 解压查看:
    mkdir /tmp/initramfs && cd /tmp/initramfs && zcat /boot/initramfs-$(uname -r).img | cpio -id
    find . -name '*nvme*.ko*' -o -name '*dm-mod*.ko*'
  • 确认 /etc/default/grubGRUB_CMDLINE_LINUX 包含必要参数,例如:
    rd.md=1 rd.lvm=1 rd.luks=1 rd.dm=1(对应 RAID/LVM/LUKS/DeviceMapper)
  • 更新 grub:
    sudo update-grub(Debian/Ubuntu)或 sudo grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS/Fedora)

进阶:制作自定义 dracut 模块(适用于特殊硬件或补丁驱动)

若需加载第三方或编译的 ko 文件(如某款新 RAID 卡的 out-of-tree 驱动):

  • 创建模块目录:
    sudo mkdir -p /usr/lib/dracut/modules.d/99myraid
  • 写入 module-setup.sh
    echo -e '#!/bin/bash\ncheck() { return 0; }\ndepends() { return 0; }\ninstall() { inst /path/to/myraid.ko; }' | sudo tee /usr/lib/dracut/modules.d/99myraid/module-setup.sh
    sudo chmod +x /usr/lib/dracut/modules.d/99myraid/module-setup.sh
  • 启用该模块:
    dracut -f --regenerate-all --force --modules "99myraid"

注意:模块名前缀数字影响加载顺序,99 表示较晚加载,适合依赖其他基础模块的场景。

实际修复中,多数情况只需 dracut -f --force-drivers 加上对应模块名并更新 grub 即可恢复启动。关键是准确定位缺失驱动,避免遗漏依赖链中的中间模块(如启用 dm-raid 前需确保 raid1raid10 已存在)。

相关文章

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

220

2023.12.07

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

808

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

412

2023.12.28

ubuntu启动黑屏解决方法
ubuntu启动黑屏解决方法

ubuntu启动黑屏解决方法:检查是否是电源问题、检查内存是否接触不良、检查显卡问题等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

657

2023.12.28

为什么ubuntu有网络连接但不能上网
为什么ubuntu有网络连接但不能上网

ubuntu有网络连接但不能上网的原因:1、dns配置问题;2、代理服务器设置问题;3、网络防火墙设置问题;4、路由器或调制解调器设置问题;5、网络驱动程序问题;6、网络配置文件问题;7、其他问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

452

2024.09.05

ubuntu安装golang
ubuntu安装golang

本专题整合了ubuntu安装golang所有方法汇总,阅读下面的文章了解更多详细操作。

106

2025.12.13

centos
centos

PHP中文网为大家提供centos相关信息,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统,PHP中文网提供centos相关文章,以及安装教程。

431

2023.06.16

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

808

2023.10.27

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号