Ubuntu 22.04裸金属服务器添加RAID10数据盘后卡在btrfs加载界面无法启动
Ubuntu 22.04裸金属服务器添加RAID10数据盘后卡在btrfs加载界面无法启动
看起来你遇到了个挺棘手的启动难题——折腾5天还没搞定,太闹心了!我先帮你梳理下核心问题,再一步步给你排查方案:
先看你当前配置里的明显问题
从你贴的mdadm.conf和lsblk输出能发现一个关键错误:
- 你的RAID10数据盘实际是
/dev/md127,但mdadm.conf里却写了ARRAY /dev/md/md0,UUID虽然对得上,但设备名完全不匹配,这会导致系统启动时找不到正确的RAID设备,直接卡住。 - 另外
mdadm.conf里重复定义了md2和md3,这也可能干扰RAID设备的识别。
恢复模式下的具体修复步骤
因为你能进入恢复模式,咱们就从这里下手:
1. 修正mdadm.conf的RAID配置
- 先执行命令获取当前所有RAID设备的正确配置:
这个命令会输出类似这样的内容(重点看你的RAID10条目):mdadm --detail --scanARRAY /dev/md127 metadata=1.2 name=ns3229089:md0 UUID=a38b6d22:2e7220cb:79f5ce7d:e0c3d63a ARRAY /dev/md/md2 metadata=1.2 name=md2 UUID=109fefd8:aa46fdd6:bddb613e:892bce00 ARRAY /dev/md/md3 metadata=1.2 name=md3 UUID=950bfa3c:f52d5cfd:9f9c1435:0d85a63f - 编辑
/etc/mdadm/mdadm.conf:- 删除重复的
md2、md3条目,只保留一组正确的 - 把错误的
ARRAY /dev/md/md0条目替换成上面命令输出的/dev/md127那行
- 删除重复的
- 保存后更新initramfs,让新配置生效:
update-initramfs -u -k all
2. 调整fstab的挂载参数
- 先临时注释掉
fstab里/db的挂载行,然后尝试正常启动系统。如果能顺利进入系统,说明问题出在挂载数据盘的环节。 - 确认
/db的UUID是否正确:
对比输出的UUID和blkid /dev/md127fstab里的是否完全一致,避免手敲错误。 - 给
/db的挂载选项加上nofail,这样即使RAID设备没准备好,系统也不会卡住,而是继续启动:UUID=257b2715-613a-44c7-8744-7c159764c09a /db ext4 defaults,nofail 0 0
3. 彻底解决btrfs加载卡住的问题
- 虽然你已经黑了btrfs模块,但要确保initramfs里的配置也同步更新了(刚才执行的
update-initramfs已经处理了这部分)。 - 恢复GRUB里的默认启动参数,再加上
btrfs.mount=0强制禁用btrfs挂载:
编辑/etc/default/grub,把GRUB_CMDLINE_LINUX改成:
然后更新GRUB:GRUB_CMDLINE_LINUX="nomodeset iommu=pt console=tty0 console=ttyS0,115200n8 btrfs.mount=0"update-grub
4. 验证RAID设备状态
启动系统后,执行mdadm --detail /dev/md127和mount命令,确认RAID10设备正常,/db也成功挂载。
总结
大概率是mdadm.conf里的RAID设备名配置错误,加上fstab没有nofail参数导致启动时系统等待无法识别的RAID设备,进而卡在btrfs加载环节。按照上面的步骤修复后,应该就能正常启动了。
备注:内容来源于stack exchange,提问作者Sasho Jankovski
相关产品推荐
相关产品推荐

