Comment 8 for bug 136252

After updating to 9.04, I experienced a similar problem.

I have three md devices: md0 (/dev/sd{a,b}1, swap), md1 (/dev/sd{a,b}2, root),
and md4 (/dev/sd{a,b}3, home). On boot, mdadm would incorrectly detect that
/dev/sda was an md device and create it. Upon inspection (using mdadm -E),
/dev/sda, /dev/sdb, /dev/sda3, and /dev/sdb3 all had the same super block.
Zeroing the /dev/sda and /dev/sdb ones resulted in also zeroing the /dev/sda3
and /dev/sdb3 ones (which suggests that the /dev/sda3 superblock was being
detected as the /dev/sda one).

I changed my /etc/mdadm/mdadm.conf to have

  DEVICE /dev/sd??*

rather than

  DEVICE partitions

and the system booted fine.

While searching for this problem, I found that some people reported that
mdadm --incremental would not create their arrays properly whereas
mdadm -As worked fine. I extracted the initrd (kernel 2.6.28-11-generic)
and found that this is indeed how the arrays are being built. I didn't check
whether 8.10 uses --incremental or --assemble, but perhaps this is a starting
point for further investigation of this issue.