一个简单的问题:initramfs 如何知道如何在启动时组装 mdadm RAID 阵列?
我的问题:我启动我的服务器并得到:
Gave up waiting for root device.
ALERT! /dev/disk/by-uuid/[UUID] does not exist. Dropping to a shell!
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为 /dev/md0(即 /boot,RAID 1)和 /dev/md1(即 /,RAID 5)未正确组装。我得到的是 /dev/md0 根本没有组装。/dev/md1 已组装,但不是使用 /dev/sda2、/dev/sdb2、/dev/sdc2 和 /dev/sdd2,而是使用 /dev/sda、/dev/sdb、/dev/sdc、/开发/ SD。
要解决此问题并启动我的服务器,我会执行以下操作:
$(initramfs) mdadm --stop /dev/md1
$(initramfs) mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
$(initramfs) mdadm --assemble /dev/md1 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
$(initramfs) exit
Run Code Online (Sandbox Code Playgroud)
它可以正常启动并且一切正常。现在我只需要 RAID 阵列在启动时正确组装,所以我不必手动组装它们。我检查了 /etc/mdadm/mdadm.conf 并且该文件中列出的两个数组的 UUID 与$ mdadm --detail /dev/md[0,1].
其他详细信息:Ubuntu 10.10、GRUB2、mdadm 2.6.7.1
更新:我觉得这与超级块有关。$ mdadm --examine /dev/sda输出相同的东西 …