当在Ubuntu下使用软Raid(不是系统盘)后,如果软Raid出现降级情况,重启服务器会导致启动不起来:
启动不起来的原因是因为,启动时会出现提示“do you wish to start the degraded RAID(Y/N)“,但这个提示会很快超时,当你没有及时按“Y”时,就是导致机器启动不起来。 当然,如果你在虚拟机中使用了软Raid,当软Raid出现降级,重启虚拟机也会出现上面的相同的问题。 解决的方法是:
1. 编辑文件/etc/initramfs-tools/conf.d/mdadm
2. 改变其中的"BOOT\_DEGRADED=false" 为 "BOOT\_DEGRADED=true"
3. 然后 sudo update-initramfs -u
这时启动后,就会出现一个降级的软Raid:
- root@ubuntu01:~# cat /proc/mdstat
- Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
- md127 : active (auto-read-only) raid1 sdb[0]
- 130944 blocks super 1.2 [2/1] [U_]
- unused devices: <none>
如果你想启动时就不要自动把软Raid设备识别出来,需要改ubuntu中内核启动脚本。需要编辑 sudo vi /usr/share/initramfs-tools/hooks/mdadm,如果你的ubuntu是13.04,则大约修改的行是89行:
- 88 if /usr/share/mdadm/mkconf > $tmpfile; then
- 89 cp -p $tmpfile $DESTMDADMCONF
- 90 else
- 91 warn "failed to auto-generate temporary mdadm.conf file."
- 92 fi
需要做的是把89行的内容注释掉,基本的意思在内核的启动过程中就是不生成软Raid的配置文件,这样就不会识别出了。修改后的内容如下:
- 88 if /usr/share/mdadm/mkconf > $tmpfile; then
- 89 #cp -p $tmpfile $DESTMDADMCONF
- 90 echo Disable mdadm boot auto assemble by osdba 2013.06.28
- 91 else
- 92 warn "failed to auto-generate temporary mdadm.conf file."
- 93 fi
然后执行下面命令让配置生成到/boot/initrd.img.XXXX的启动文件中:
- sudo update-initramfs -u
以后再启动ubuntu,就不会自动重组软Raid了。
当然注意:如果你的启动硬盘是在软Raid上,则不要做上面的操作。因为这样做后,因为操作系统不识别软Raid,也会导致在软Raid上的操作系统无法启动。