mdadm启动错误,增量启动raidarraysUbuntu SErver 14.04

我使用Ubuntu 14.04为Samba构build了一个小型服务器,我有一个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)没有configuration为RAID,这不应该影响它?

重要的编辑:如果我按Ctrl + Alt + Del,服务器重新启动,并正常启动,如果我看在开机后的RAID开发mdadm --detail /dev/md0 ,一切看起来不错。

我不是一个Linux专业人员,并没有在互联网上find任何有关这些错误,所以现在我是一个littel卡住,也许有人有一个线索,可能是什么问题或一些高级的故障排除build议(日志文件等) ?

感谢阅读方面的问候Stefan

也有这个。 在我的环境中:2个configuration为raid10的SAS硬盘。

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

为了确保模块在raid模块之前被加载,我也做了一个

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

最后“修复”错误。 短版本:创见SSD(TS128GSSD25S-M)与华擎B85M Pro4主板结合导致错误。 用clonezilla克隆到Samsung 840 Evo后,我现在启动了30次,没有任何问题。

在深层问题报告:但为什么是mdadm显示与totaly无关的RAIDarrays问题? :那么在创buildRAIDarrays时(或者默认情况下,我不知道)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删除这些脚本后,我碰到了真正的问题:

为根设备打起精神。 常见问题:

  • 引导参数(cat / proc / cmdline)
    • 检查rootdelay =(系统是否等待足够长的时间?)
    • 检查root =(系统是否在等待正确的设备?)
  • 缺less模块(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工作。

对我来说,解决scheme缺less/ etc / initramfs-tools / modules中的“dm-mod”,“dm-snapshot”和“dm-mirror”条目。 我花了相当长的时间来解决这个问题,因为错误信息是关于“mdadm”和raid – 所以我们应该怎么猜测lvm是问题。

我的设置: sda -> sda1 (0xfd linux raid autodetect, 500MB), sda2 (0xfd linux raid autodetect, 250G)同样适用于sdb

  • sda1 + sdb1 --> /dev/md0 (mdadm) "/boot"
  • sda2 + sdb2 --> /dev/md1 (mdadm) --> lvm volume for "swap" and "/"

我没有把“/ boot”放入LVM,以避免首先使用grub / lvm进行hazzle。 但它看起来像我刚刚陷入了grub / lvm / raid的另一个tarpit 🙁

我想这个问题是,grub正确地挂载了initramfs,然后无法挂载/ (因为缺lesslvm模块),它试图初始化一些raid设备。

incrementally starting raid arrays有点误导,因为它可以是任何缺less模块,禁止/挂载。 另请参阅上文关于缺lessmpt2sas模块的文章。

另外,我select了dm_模块并不是必须的,因为它们是针对dmraid的 – 这是错误的:它们也是LVM所必需的。 在我的情况下,我做了一个从dmraid切换回好的mdadm,因为dmraid(fakeraid)导致了问题(一个目录刚刚消失)。

最后但并非最不重要的,我想知道,我可以添加dm-moddm-snapshot and dm-mirror to / etc / modules and / etc / initramfs-tools / modules, altough there are not really and这个名字altough there are not really and .ko文件。 必须是某种模块别名。

在我的机器上(Ubuntu可信赖),这是由于在/ boot下安装了一个较新的(xenial 4.4.0系列)内核,并在默认情况下使用。

我通过引导旧的内核版本解决了这个问题,然后运行:

 update-initramfs -u update-grub 

我的情况是,我正在使用3.x内核并升级到4.4.x. 引导3.x内核解决了这个问题,我从4.4版本中删除了,肯定有一些不兼容的问题,或者与它一起使用的initramfs问题。