mdadm: breaks boot due to "is not ready yet or not present" error

This is so damn frustrating :-| I've spent like 20 hours on this nice error, and seems like dozens of people over Internet too, and no clear solution yet.

I have non-system RAID-5 of 5 disks, and it's fine. But during boot up it says that "/dev/md0 is not ready yet or not present" and asks to press 'S'. Very nice for Ubuntu Server - I have to bring monitor and keyboard to go next.

After this system boots and it's all fine. md0 device works, /proc/mdstat is fine. When I do mount -a - it mounts this array without errors and works fine.


As a dumb and shameful workaround I added noauto in /etc/fstab, and did mounting in /etc/rc.local - it works fine then.

Any hints how to make it work properly?


fstab:

UUID=3588dfed-47ae-4c32-9855-2d69df713b86 /var/bigfatdisk ext4 noauto,noatime,data=writeback,barrier=0,nobh,commit=5 0 0

mdadm config: It is autogenerated:

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR CENSORED

# definitions of existing MD arrays
ARRAY /dev/md/0 metadata=1.2 bitmap=/var/md0_intent UUID=efccbeb6:a0a65cd6:470dcdf3:62781188 name=LBox2:0

# This file was auto-generated on Mon, 10 Jan 2011 04:06:55 +0200
# by mkconf 3.1.2-2

Partitions:

root@LBox2:/home/px# cat /proc/partitions
major minor  #blocks  name

   8        0  976762584 sda
   8        1  976562483 sda1
   8        2     131072 sda2
   8       16  976762584 sdb
   8       17  976562483 sdb1
   8       18     131072 sdb2
   8       32   78150744 sdc
   8       33   74919096 sdc1
   8       34          1 sdc2
   8       37    3229033 sdc5
   8       48  976762584 sdd
   8       49  976562483 sdd1
   8       50     131072 sdd2
   8       64  976762584 sde
   8       65  976655593 sde1
   8       80  976762584 sdf
   8       81  976655593 sdf1
   9        0 2929683456 md0

mdstat:

root@LBox2:/home/px# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[5] sdf1[2] sdb1[1]
      2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
      bitmap: 0/8 pages [0KB], 65536KB chunk, file: /var/md0_intent

unused devices: <none>

I had the same issue on occasion on my headless server, and resolved it by appending the nobootwait option in /etc/fstab:

/dev/md0    /mnt/raid   ext4    defaults,noatime,nobootwait 0   0

It tells the boot process to not wait for the RAID, but the RAID is always available by the time I can ssh into the box. In principle it's not all that different from what you are already doing, but you don't need to spread the mount logic over two different files.

There is a bug report on system hanging at boot unless nobootwait is the last mount option, but this was presumably fixed around the time of the 10.10 release.

See also How do I avoid the “S to Skip” message on boot.


You are trying to start or mount /dev/md0 automatically, but it seems, that you have a different name for the raid in your mdadm.conf:

...existing MD arrays
ARRAY /dev**/md/0** metadata=1.2 bitmap=/var/md0_intent 
UUID=efccbeb6:a0a65cd6:470dcdf3:62781188 name=LBox2:0

Rename the array to md0 instead of md/0.

Use the assemble scriptline with: --name=md0 --update=name