On Monday April 17, molle.bestefich@xxxxxxxxx wrote: > Neil Brown wrote: > > use --assemble --force > > # mdadm --assemble --force /dev/md1 > mdadm: forcing event count in /dev/sda1(0) from 163362 upto 163368 > mdadm: /dev/md1 has been started with 5 drives (out of 6). > > Oops, only 5 drives, but I know data is OK on all 6 drives. > > I also know that there are bad blocks on more than 1 drive. So I want > MD to recover from the other drives in those cases, which I won't be > able to with only 5 drives. > > In other words, checking/repairing with only 5 drives will lead to > data corruption. > > I'll stop and try again, listing all 6 drives by hand: > > # mdadm --stop /dev/md1 > # mdadm --assemble /dev/md1 --force /dev/sda1 /dev/sdb1 /dev/sdc1 > /dev/sdd1 /dev/sde1 /dev/sdf1 > mdadm: /dev/md1 has been started with 5 drives (out of 6). > > Ugh. Didn't work. Bug? > > How do I force MD to raise the event counter on sdb1 and accept it > into the array as-is, so I can avoid bad-block induced data > corruption? For that, you have to recreate the array. Make sure you get the chunksize, parity algorithm, and order correct, but something like mdadm -C /dev/md1 --assume-clean /dev/sda1 /dev/sdb1 /dev/sdc1 \ /dev/sdd1 /dev/sde1 /dev/sdf1 and then echo check > /sys/block/md1/md/sync_action and see what cat /sys/block/md1/md/mismatch_count reports at the end. Then maybe 'echo repair > ....' NeilBrown - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html