Soluzione 1:
Questa informazione è probabilmente troppo tardi per aiutare l'OP, ma forse aiuterà qualcun altro.
Il primo comando cancella i super blocchi e il secondo comando crea un nuovo array ma presuppone che i dispositivi siano puliti. Ho appena eseguito questo e tutto sembra essere OK. Consiglierei sicuramente un backup prima di farlo. Non avevo dati da perdere e quindi nessuna integrità da controllare. Volevo solo evitare un'altra risincronizzazione di 4 ore.
$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
--level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90
Soluzione 2:
La creazione di un array con metadati presunti e incoerenti come suggerito sopra ha certamente il potenziale per danneggiare i dati esistenti, poiché i blocchi di metadati 0.90 e 1.2 differiscono non solo per le dimensioni ma anche per la posizione.
potrebbe funzionare per 0,90 <-> 1,0, che è un'eccezione.
https://raid.wiki.kernel.org/index.php/RAID_superblock_formats
Soluzione 3:
Il wiki di GRUB conferma:
Inoltre, (a partire dalla 1.96+20080724) GRUB può essere avviato solo da RAID che utilizza un superblocco di metadati della versione 0.90 (ovvero uno creato con l'opzione --metadata=0.90 di mdadm).
Curiosamente, la pagina man di mdadm dice
-e , --metadata=
Dichiara lo stile del superblocco (metadati raid) da utilizzare. Il valore predefinito è 0.90 per --create e per indovinare per altre operazioni.
Ricontrollerei con mdadm -Q -D <device>
per essere certi.
Successivamente, quale livello RAID stai eseguendo? Lo scenario migliore a cui riesco a pensare per un mirror (RAID 1) sarebbe
- Fai backup
- Smonta l'array 0
- Rimuovi il dispositivo A dall'array 0 di
n
dispositivi - Superblocco zero sul dispositivo A
- Crea l'array 1 utilizzando il dispositivo A e
n-1
spares, usando esplicitamente il vecchio formato superblock - Ripeti per la restante B fino a
n-1
dispositivi - (Facoltativo) rinumerare l'array
... ma controlla assolutamente che devi assolutamente andare fino in fondo!