mdadm 启动错误,逐步启动 raid 阵列 Ubuntu SErver 14.04

mdadm 启动错误,逐步启动 raid 阵列 Ubuntu SErver 14.04

我使用 Ubuntu 14.04 为 Samba 构建了一个小型服务器,我有一个 SSD 驱动器(ubuntu 安装在其上)和 2 个 3TB SATA 磁盘,sata 磁盘通过 mdadm 组合成 Raid 1。

现在有时候(不是每次,我认为这可能与异常关机有关)系统会在启动过程中挂起:

incrementally starting raid arrays
mdadm: Create user root not found 
mdadm: create group disk not found 
incrementally started raid arrays

这 4 行一直在重复。这真的很奇怪,因为启动卷(ssd)没有配置为 raid,这应该不会影响它?

重要编辑:如果我按下 ctrl + alt + del ,服务器将重新启动并正常启动,如果我mdadm --detail /dev/md0 在启动后查看 raid dev,一切看起来都很好。

我不是 Linux 专业人士,也没有在互联网上找到与这些错误相关的任何内容,所以现在我有点困惑,也许有人知道问题可能是什么或者一些高级的故障排除建议(日志文件等)?

感谢阅读问候 Stefan

答案1

也有这种情况。在我的环境中:2x SAS HDD 配置为 raid10。

问题是mpt2sas.ko未加载,因此mdadm看不到任何磁盘。这又是由打包错误引起的:当 apt 删除不需要的 wlan 包(如 crda)时,它也会自动删除linux-image-extra-$VERSION实际上拥有 的包mpt2sas.ko

为了确保模块在 raid 模块之前加载,我还做了

echo mpt2sas >>/etc/initramfs-tools/modules

答案2

在我的计算机上(Ubuntu trusty),这是由于在 /boot 下安装了较新的内核(xenial 4.4.0 系列)并默认使用而导致的。

我通过启动旧内核版本然后运行来解决了这个问题:

update-initramfs -u
update-grub

答案3

终于“修复”了错误。简短版本:Transcend SSD(TS128GSSD25S-M)与 ASRock B85M Pro4 主板的组合导致了错误。使用 clonezilla 将系统克隆到三星 840 Evo 后,我现在可以无问题地启动 30 次。

深入问题报告:但为什么 mdadm 会出现完全不相关的 raid 阵列问题?:在创建 raid 阵列时(或者可能是默认?我不知道具体情况),mdadm 将 raid 初始化脚本放入 initramfs。此脚本检查 rootfs 是否已安装,如果 rootfs(在我的 SSD 上)未安装,它会跳转到函数 mountroot_fail

message "Incrementally starting RAID arrays..."
if mdadm --incremental --run --scan; then
message "Incrementally started RAID arrays."
return 0

这导致了令人困惑的输出。从 initramfs 中删除这些脚本后,我遇到了真正的问题:

放弃等待 root 设备。常见问题:

  • 启动参数(cat /proc/cmdline)
    • 检查 rootdelay=(系统是否等待足够长的时间?)
    • 检查 root=(系统是否等待正确的设备?)
  • 缺少模块 (cat /proc/modules; ls /dev)

    ALERT! /dev/disk/by-uuid/01234567-89ab-cdef-0123-456789abcdef does not exist. Dropping to a shell!
    BusyBox v1.13.3 (Ubuntu 1:1.13.3-1ubuntu11) built-in shell (ash)
    Enter 'help' for a list of built-in commands.
    (initramfs) 
    

由于错误不是持续存在的,我考虑尝试不同的 SSD,并且 BAM 可以正常工作。

答案4

我的情况是,我使用的是 3.x 内核,后来升级到了 4.4.x。启动 3.x 内核修复了这个问题,之后我删除了 4.4,肯定是它自带的 initramfs 存在不兼容或问题。

相关内容