Advertências usuais se aplicam. Certifique-se de que seus dados foram armazenados em backup. Eu não sou responsável por qualquer perda de dados. Isso funcionou para mim. Certifique-se de testar sua matriz antes de colocar dados significativos nela. Certifique-se de que pode sobreviver a uma reinicialização e a alterações no nome do dispositivo, etc etc. etc.
Agora, para o que eu fiz.
Eu me deparei com o mesmo problema hoje. Depois de fazer algumas pesquisas, consegui consertar isso e obter um dispositivo de invasão estável.
Em dois discos que eu estava usando para minha matriz, criei uma partição usando o gdisk antes de criar o dispositivo RAID. Eu apaguei as partições usando o gdisk, mas quando eu criei o array eu recebi a mensagem informativa abaixo:
mdadm: partition table exists on /dev/disk/by-id/ata-ST4000VN000-1H4168_Z30254QX but will be lost or meaningless after creating array
Sempre que vejo esta mensagem quando reinicio, a matriz é perdida.
Imaginei usar a sugestão acima de Jim K e criar uma partição de ataque do Linux em cada unidade. Isso funcionou, mas a taxa de sincronização passou de 145 MB / s nas unidades brutas para 35 MB / s nas unidades particionadas. Eu provavelmente poderia ter jogado com parâmetros de ajuste, mas por que eu deveria fazer isso?
Eu fui em uma missão para descobrir como nuke a tabela de partição do disco.
A correção ...
Primeiro, certifique-se de que seu dispositivo de ataque esteja parado e, em seguida, neutralize a assinatura do ataque de unidade.
mdadm --stop /dev/md<number>
mdadm --zero-superblock /dev/sd<x> (do this for all your raid disks)
Execute o blkid e veja se algum dos dispositivos de ataque aparece. Se eles fizerem.
executar:
dd if=/dev/zero of=/dev/sd<x> bs=512 count=1
Isto irá, esperançosamente, eliminar as tabelas de partições. Execute blkid novamente para certificar-se de que nenhum disco usado para o dispositivo de ataque esteja listado.
No meu caso, o gpt tinha um rótulo LVM com backup em um disco. Eu limpei isso usando lvremove, vgremove e finalmente pvremove.
Blkid correu limpo desta vez.
No entanto, quando tentei criar o array novamente, recebi um erro sobre um dispositivo de invasão existente, então fiz um dd mais uma vez. Depois disso, a matriz criada sem avisos, como eu listei acima.
Eu recriou o array como era originalmente, usei disk / by-id em vez de sd. Depois que o array foi recriado, a partição de teste que eu havia criado no array voltou intacta.
A matriz agora sobrevive a reinicializações e muda para / dev / sd de quando a matriz foi originalmente criada. Espero que isso ajude os outros ..