Ubuntu 18.04升级至20.04后RAID1 LVM启动时出现/dev/md1设备等待超时错误
看起来你遇到的问题是系统启动时尝试挂载一个不存在的RAID设备/dev/md1——虽然fstab里加了nofail参数让系统能继续运行(所以你能正常SSH登录),但控制台会卡在超时报错的界面。结合你给出的信息分析:
/proc/mdstat里只有md0在正常运行,完全没有md1的踪迹;- 但
/etc/fstab和/etc/mdadm/mdadm.conf里还保留着md1的配置条目,这就是启动报错的核心原因。
下面是一步步的解决办法:
临时消除启动报错
先让系统启动时不再盯着不存在的md1,解决控制台卡住的问题:
编辑fstab配置文件,注释掉
md1的挂载项:sudo nano /etc/fstab找到这一行:
/dev/md1 /mnt/md1 ext4 defaults,nofail,discard 0 0在开头加上
#把它注释掉,变成:# /dev/md1 /mnt/md1 ext4 defaults,nofail,discard 0 0按
Ctrl+O保存,Ctrl+X退出。更新initramfs(启动初始化镜像),让新配置生效:
sudo update-initramfs -u
做完这两步,下次重启就不会再弹出/dev/md1超时的错误了。
排查md1消失的原因并彻底解决
接下来你需要确认md1的真实状态:
先扫描所有磁盘的RAID超级块,看看是否有
md1的残留信息:mdadm --examine --scan如果能找到
md1的信息,命令会输出对应的装配指令,你可以按照提示尝试重新装配md1。如果上面的命令找不到
md1的信息,说明这个RAID阵列要么已经被删除,要么组成它的磁盘分区已经损坏/被重新分配了。这种情况下,你需要清理残留配置:- 编辑mdadm配置文件,删除
md1的条目:
找到这一行并删除:sudo nano /etc/mdadm/mdadm.conf
保存退出后,再次更新initramfs:ARRAY /dev/md1 metadata=1.2 name=mypc:1 UUID=472411d9:f517c8d8:0d6c26da:15a53b24sudo update-initramfs -u
- 编辑mdadm配置文件,删除
如果你确定
md1是之前正常使用的阵列,想要尝试恢复,可以逐个检查磁盘分区的RAID信息:mdadm --examine /dev/sda1 /dev/sda2 /dev/sdb1 /dev/sdb2看看有没有
md1的超级块信息。如果找到,用类似下面的命令重新装配(替换成对应的分区):mdadm --assemble /dev/md1 /dev/sdX /dev/sdY装配成功后,先检查文件系统完整性:
sudo fsck /dev/md1确认没问题后,再取消
/etc/fstab里md1的注释,重新挂载:sudo mount /mnt/md1
问题根源分析
大概率是Ubuntu升级过程中,RAID的配置没有被正确迁移;或者你之前已经移除了md1阵列,但没有及时清理fstab和mdadm.conf里的残留配置,导致系统启动时尝试加载一个不存在的设备,从而触发超时错误。
备注:内容来源于stack exchange,提问作者CyborgDroid

