我使用 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 存在不兼容或问题。