Encontrei a resposta nas entranhas do link : acontece que há um ramo de mdadm
que permite compensações de dados personalizadas. Para obtê-lo:
git clone -b data_offset git://neil.brown.name/mdadm
cd mdadm
make
Isso adiciona a capacidade de definir o deslocamento de dados em uma base por dispositivo, anexando o ID do dispositivo com a: e o deslocamento. Por exemplo:
./mdadm --create /dev/md2 --level=5 -raid-devices=3 --assume-clean \
/dev/sdb3:89088 /dev/sdd1:1024 /dev/sdc3:131072
Eu tive que dividir o deslocamento por 2, como é em K e não em setores. Eu acho que eu poderia ter usado
./mdadm --create /dev/md2 --level=5 -raid-devices=3 --assume-clean \
/dev/sdb3:178176s /dev/sdd1:2048s /dev/sdc3:262144s
em vez disso, mas eu não verifiquei isso.
De qualquer forma, isso construiu a matriz com o tamanho correto e consegui recuperar alguns dos dados dela. Resultado!