软件 Raid0 无法在 fstab 中成功挂载

软件 Raid0 无法在 fstab 中成功挂载

我已经创建了一个 Raid0,它按预期工作。阵列文件创建于/dev/md0。我希望通过在文件末尾添加此行来自动安装它/etc/fstab

/dev/md0 /mnt/storage ext4 noatime,commit=60,data=writeback,nodiratime,journal_async_commit,nouser_xattr 0 0

并且在末尾有以下一行/etc/mdadm/mdadm.conf

ARRAY /dev/md0 metadata=1.2 name=lil-RIKO:lil-RIKO UUID=6016d5e4:6e42cb97:6b2a8e6e:098c1982

在启动时,我看到 /mnt/storage 正在等待挂载,并提供两个选项:跳过...或挂载...我忘了它说了什么。我等了太久,以至于觉得出了什么问题。我进入了“维护模式”,这是一个 root shell,然后我快速检查了文件的存在。文件不在那里,只有 /dev/md127。我尝试挂载该文件,但它抱怨找不到超级块。我在删除文件后/dev/md0手动挂载了 raid ,然后继续启动。下次重启时,我遇到了同样的问题。mdadm --assemble /md0/dev/md127mdadm --stop /dev/md*

为什么 raid 没有自动挂载?启动时没有 /dev/md0,所以我可以手动挂载它。

EDIT1:我已设法通过移除磁盘将其“合并”为 /dev/md127,问题仍然存在,但是当我发出此信息时,cat /proc/mdstat我得到了以下信息:

md127 : inactive sdc[1](S) sdb[0](S)
      7830528 blocks super 1.2

这意味着(我认为)突袭尚未激活。但是当我重新连接它时,它像这样激活:

md127 : active raid0 sdc1[1] sdb1[0]
      7830528 blocks super 1.2 512k chunks

这次到底出了什么问题?

答案1

update-initramfs您是否记得在组装阵列后运行md0?如果没有,请尝试停止并重新组装阵列,然后再次执行此操作,即

sudo mdadm --stop /dev/md127
sudo mdadm --assemble /dev/md0
sudo update-initramfs -u

这应该使初始根文件系统在启动时“意识到”该阵列

答案2

希望您已经找到答案;如果没有,我刚刚已经解决了这个问题,简短的答案是在 /etc/mdadm/mdadm.conf 中编辑您的阵列定义;基本上删除除 /dev/md* 和 UUID= 信息之外的所有内容(删除元数据、名称等)。重新启动后,您的阵列应该不再存在 md127、md126 等问题。

因此,根据上面的内容,更改

ARRAY /dev/md0 metadata=1.2 name=lil-RIKO:lil-RIKO UUID=6016d5e4:6e42cb97:6b2a8e6e

ARRAY /dev/md0 UUID=6016d5e4:6e42cb97:6b2a8e6e

答案3

我遇到了类似的问题,在 fstab 中挂载 md0 阵列失败,并显示“尝试挂载 /mnt/md0 时遇到严重错误”(或类似信息)。我为此折腾了一个小时,但还是无法正常工作。检查了 UUID、/proc/mdstat、mdadm.conf 等,一切似乎都正常。

在 fstab 中添加了 nobootwait 选项,因此它不会锁定启动过程(无头服务器)

对我来说这看起来像是一种竞争条件,因为启动后手动发出 mount 命令可以正常工作。

对我有用的解决方法:

编辑 rc.local,在 exit 0 前添加以下行

睡眠 10 && mount -t auto /dev/md0 /mnt/md0

副作用是挂载点在 10 秒后出现,但我可以忍受。如果没有 sleep 命令,它就不起作用。

希望这对某人有帮助。

相关内容