我有两个问题,我认为它们是相关的。一个问题已经存在多年,在多个版本的 Ubuntu 中都存在(至少从 11.10 到 12.04),另一个问题则是在我更新内核后才出现的。
首先是第一个问题,这个问题已经存在好几年了。在正常启动过程中,系统似乎会挂在“紫色”屏幕上,但实际上它只是在紫色屏幕后面的 initramfs 提示符下。我通常输入“exit”,然后启动会按计划继续,在一两秒内加载到 Ubuntu。我一直怀疑这个挂起是由于我几年前新手设置的 RAID 阵列。出了点问题,我删除了阵列并重新开始,第二次一切正常。但是,这就是这个问题开始发生的时间。我已经忍受了,因为我每年只重启几次电脑。我可以忍受每年输入几次“exit”......
第二个问题,我更新到了最新的内核(我讨厌这样做,因为它总是给我带来麻烦,但我内心的修补匠坚持要我获得最新的更新...),现在在第一个错误之后我输入 exit,然后系统挂起并显示无数警告,但我觉得这些警告都与实际问题无关,因为它们都与挂载 /dev/ 无关米/1(即使它以 /dev/ 开始)md1当我创建它时,该阵列现在称为 /dev/米/1)。如果我更改 /etc/fstab 以注释掉有关挂载 /dev/ 的行米/1一切都将正常启动。
一旦 Ubuntu 启动,我必须停止 /dev/md1(那是不是一个拼写错误),然后mdadm --assemble --scan
将正确启动 /dev/米/1。然后我编辑 /etc/fstab,以便 /dev/md/1 成为要挂载的设备,然后运行mount -a
我找不到为什么 /dev/md1 可以启动而 /dev/md/1 没有启动。
我不知道如何找到以前启动的日志,否则我会把我在启动期间看到的警告放在...
为了启动 Ubuntu OK,我进入恢复 shell,将文件系统重新挂载为读/写,编辑 /etc/fstab 以删除 /dev/md/1 挂载,然后继续启动。
答案1
https://superuser.com/questions/454864/mdadm-ubuntu-12-04-fails-to-assemble-raid6-during-boot 该链接给了我所需的答案。由于三个驱动器位于外围 SAS 卡上,因此当 mdadm 搜索阵列时,驱动器尚未加载。
我sleep 15
这样添加:
degraded_arrays()
{
sleep 15
mdadm --misc --scan --detail --test >/dev/null 2>&1
return $((! $?))
}
按照/usr/share/initramfs-tools/scripts/mdadm-functions
链接建议的方式,然后更新 initramfs,现在它成功启动,阵列已正确启动和安装。