Se for o formato 0.90
superblock, você poderá usar apenas um membro diretamente (no modo somente leitura, se desejar). Isso lhe dá acesso aos seus dados e então você pode criar um novo RAID-1 novo com apenas o outro disco, copiar seus dados e depois adicionar o disco original ao RAID.
Se for algo diferente (como 1.2
metadata), primeiro você terá que encontrar o deslocamento da partição real antes de poder montá-la. Por exemplo, se é LVM você obtém o deslocamento assim:
# grep -a -b --only-matching LEVELONE /dev/disk
1049088:LABELONE
Substrato 512, pois o primeiro setor em um PV é gratuito; se realmente fosse 0.90
ou 1.0
metadata, o grep deveria mostrar 512: em vez disso, o que significa um deslocamento real de 0
; se você conseguir algo maior, seu RAID estava usando outro formato.
Nesse caso, você pode criar um dispositivo de loop com o deslocamento correto:
# losetup -f --show --read-only --offset $((1049088-512)) /dev/disk
/dev/loop0
# file -s /dev/loop0
LVM2 ...
E esse deve ser seu PV e vgscan
/ vgchange -a y
deve cuidar do resto.
Quanto a mdadm --create
, isso pode ser feito se você souber o que está fazendo. Você só precisa ser muito, muito cuidadoso com isso. É apenas um último recurso.
Se o deslocamento for 0
, certifique-se de usar 0.90
metadata (se tiver certeza de que é o que estava usando); Se o deslocamento for outra coisa, certifique-se de que mdadm --create
use o mesmo deslocamento novamente. Geralmente, isso não ocorre porque os padrões de mdadm
mudam com o tempo. Então, especifique-o diretamente na linha de comando usando --data-offset
.
Além disso, crie-o apenas com um disco. Deixe o outro disco como missing
. Essa é uma maneira melhor de fazer isso do que --assume-clean
, já que você pode primeiro verificar se a criação funcionou ou não (os dados do /dev/md?
device usable?) E depois ter o outro disco sincronizado corretamente.