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

胖浩酱_6654

胖浩酱_6654

2026-01-21

512人浏览

原创

当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 控制器驱动:如 nvme、ahci、hpsa、mpt3sas
  • 逻辑层驱动:如 dm-mod(Device Mapper)、dm-raid、raid1、raid10
  • LVM/Btrfs/ZFS 支持:如 lvm2、btrfs、zfs(需对应内核模块 + userspace 工具)
  • 加密模块:如 dm-crypt、aesni_intel、sha256_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(前提是 lvm2 和 cryptsetup 已安装,且 /etc/dracut.conf.d/ 中未禁用 add_dracutmodules+="lvm crypt")

验证并更新引导配置

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

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 解压查看:
    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/grub 中 GRUB_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 前需确保 raid1 或 raid10 已存在)。

相关文章

驱动精灵
驱动精灵

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

下载

相关标签:

linux centos ubuntu

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

相关专题

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

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

2023.12.07

357

5

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

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

2023.10.27

6961

23

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

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

2023.12.28

2141

8

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

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

2023.12.28

1890

6

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

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

2024.09.05

1041

6

ubuntu安装golang
ubuntu安装golang

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

2025.12.13

359

13

Linux如何安装Ubuntu并完成基础系统优化教程
Linux如何安装Ubuntu并完成基础系统优化教程

访问Ubuntu官网或国内镜像站下载ISO镜像,利用Rufus或Etcher工具制作USB启动盘。重启电脑进入BIOS设置U盘引导,按提示完成分区与账户设置以安装系统。安装完毕后,首要任务是将软件源更换为国内镜像以加速下载,接着在终端执行更新命令升级系统组件,并安装显卡驱动及常用开发工具,至此即可完成基础环境搭建与优化。

2026.03.31

124

6

Ubuntu系统安装与基础配置
Ubuntu系统安装与基础配置

本指南详解Ubuntu系统安装全流程:从制作启动盘、分区规划到驱动配置,手把手带你完成系统部署。涵盖软件源优化、常用工具安装及桌面个性化设置,助你快速搭建稳定高效的Linux开发环境,零基础也能轻松上手。

2026.04.15

146

6

Ubuntu日常操作与高效使用
Ubuntu日常操作与高效使用

本指南聚焦Ubuntu日常操作与效率提升,深入解析终端命令、APT软件管理及权限控制等核心技能。从文件管理到开发环境搭建,再到网络配置与数据备份,全方位助你摆脱鼠标依赖,构建流畅的Linux工作流,让系统操作更加得心应手。

2026.04.17

87

6

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习