我的问题:我启动服务器并得到:
Gave up waiting for root device. ALERT! /dev/disk/by-uuid/[UUID] does not exist. Dropping to a shell!
发生这种情况是因为/ 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,/开发/ SDD.
为了解决这个问题并启动我的服务器我做:
$(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
它启动正常,一切正常.现在我只需要在启动时正确组装RAID阵列,这样我就不必手动组装它们了.我检查了/etc/mdadm/mdadm.conf,该文件中列出的两个数组的UUID与$mdadm –detail / dev / md [0,1]中的UUID相匹配.
其他细节:Ubuntu 10.10,GRUB2,mdadm 2.6.7.1
更新:我觉得它与超级块有关. $mdadm –examine / dev / sda输出与$mdadm –examine / dev / sda2相同的内容. $mdadm –examine / dev / sda1似乎没问题,因为它输出有关/ dev / md0的信息.我不知道这是不是问题,但它似乎适合/ dev / md1汇编/ dev / sd [abcd]而不是/ dev / sd [abcd] 2.
我尝试将/ dev / sd [abcd]上的超级块归零.这也从/ dev / sd [abcd] 2中删除了超级块,并阻止我完全组装/ dev / md1.我不得不$mdadm – 创建它来取回它.这也使超级块恢复原状.
当系统与阵列组合时,执行以下命令来更新mdadm配置.您可能需要仔细检查它以防万一.
mdadm --detail --scan > /etc/mdadm/mdadm.conf
完成后,使用以下命令更新initramfs:
update-initramfs
如果这始终失败,则可能会拍摄超级块(用于组装阵列的元数据).您可能需要检查每个驱动器及其分区以进行验证.更糟糕的情况是,通过mdadm将超级块清零并重新创建.