In my experience, a RAID5 array where two drives get marked as failed has required creating a new array. This is obviously risky and you need to make sure you have everything setup correctly before any writes or a resync occurs. Thus if someone else can suggest away to get it going without creating a new array you should probably try that first :)
But what I would do is stop the old array (
mdadm --stop /dev/md0), and create a new array in a degraded state. HOWEVER the command I've given here assumes that the drive position hasn't changed, you need to know which disk goes where as the order is critical:
mdadm --verbose --create /dev/md1 --level=5 --raid-devices=6 /dev/sdb /dev/sdc /dev/sdd /dev/sde missing /dev/sdg
It should give you a warning the drives are part of another array, make sure the timestamps are identical (if not stop and try with the other failed drive missing instead).
This is enough to get the array started, so check the partition layout is what you expect with fdisk -l /dev/md1, then mount the file system read only (
mount -r /dev/md1) to check your data. If it's corrupted I would try again with /dev/sdc missing, i.e.:
mdadm --verbose --create /dev/md1 --level=5 --raid-devices=6 --chunk=64 /dev/sdb missing /dev/sdd /dev/sde /dev/sdf /dev/sdg
(if your chunk size is not the default of 64K you need to specify that with
Once you're happy that your data's intact, add the last drive back in and it'll resync:
mdadm -a /dev/md1 /dev/sdf
I have created a degraded RAID5 array with the drives in the wrong order before and it didn't destroy the data but YMMV.