Linux硬盘控制器从SCSI切换为NVME后系统启动失败
报错提示
VMware平台上Rocky 9.5虚拟机,虚拟机迁移到NVME硬盘,系统可正常启动;将硬盘控制器修改为NVME控制器后,系统无法启动,提示如下错误。
日志中反复出现的关键信息是:
dracut-initqueue: timeout, still waiting for following initqueue hooks:
...
Warning: /dev/mapper/rl-root does not exist
Warning: /dev/rl/root does not exist
Warning: /dev/rl/swap does not exist
这表明系统在启动过程中,dracut(用于构建 initramfs 的工具)无法找到或挂载根文件系统(/dev/mapper/rl-root)和交换分区(/dev/rl/swap)。这是导致启动失败的根本原因。
分析
这是一个非常典型且常见的Linux系统引导问题,核心原因在于 NVMe控制器驱动与SCSI控制器驱动在内核启动初期的加载顺序、初始化时机以及对设备的识别方式存在根本性差异。
简单来说:系统启动时,内核需要在初始化阶段就识别并挂载根文件系统。NVMe驱动(特别是较新的内核)在初始化时可能无法立即识别或正确处理某些NVMe设备(尤其是那些在SCSI层被识别为“块设备”的设备),导致根文件系统无法挂载,从而无法启动。而SCSI控制器驱动则更“宽容”或更早地兼容了这些设备。
解决方案
使用Rocky 9.5光盘引导系统进入救援模式,使用dracut -f命令重建initramfs。
1. 通过光盘启动,选择 Troubleshooting,选择 Rescue a Rocky Linux system,进入救援模式;
2. 救援模式下,重建initramfs
在救援模式下,按 1 切换到光盘内部
# chroot /mnt/sysroot
# cd boot/
备份文件:
# cp initramfs-5.14.0-503.14.1.el9_5.x86_64.img initramfs-5.14.0-503.14.1.el9_5.x86_64.img_bak
重新生成一个通用的 initramfs 镜像
# dracut -f
退出重启
# exit
# reboot
3. 系统使用NVME控制器可以正常启动
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作