I had a server that booted with a degraded array every time, because there was a USB drive attached to it, that messed up the auto detection. I solved it by putting this in mdadm.conf:
# This is to try to solve the problem that the array always boots as degraded when I boot the server with a USB disk attached. # http://serverfault.com/questions/722360/debian-server-has-degraded-mdam-array-on-every-boot/ DEVICE /dev/disk/by-id/ata-*
I still don’t know what went wrong, though. It can plainly see what drivse should be in the array.