Re: "Failed to assemble all arrays" during initramfs
mdadm error messages could be misleading.
First you should check if array is correctly assembled (/proc/mdstat).
If so I think some filesystem/device mapper/lvm/crypto modules are missing from your initramfs.
Do you encrypt your array or use lvm?